snd_pcm_plugin_params()
Set the configurable parameters for a PCM channel (plugin-aware)
Synopsis:
#include <sys/asoundlib.h>
int snd_pcm_plugin_params( snd_pcm_t *handle,
snd_pcm_channel_params_t *params );
Arguments:
- handle
- The handle for the PCM device, which you must have opened by calling snd_pcm_open_name(), snd_pcm_open(), or snd_pcm_open_preferred().
- params
- A pointer to a snd_pcm_channel_params_t structure in which you've specified the PCM channel's configurable parameters. All members are write-only.
Library:
libasound.so
Use the -l asound option with qcc to link against this library.
Description:
The snd_pcm_plugin_params() function sets up the transfer parameters according to params.
You can call the function in SND_PCM_STATUS_NOTREADY (initial) and SND_PCM_STATUS_READY states; otherwise, snd_pcm_plugin_params() returns -EBADFD.
If the parameters are valid (i.e., snd_pcm_plugin_params() returns zero), the driver state is changed to SND_PCM_STATUS_READY.
PCM software mixerand
PCM input splitter.
Example calculations for requesting a fragment size that holds 16ms of data
Fragment size (in bytes) = (16000Hz * 2 bytes * 1 channels * 16ms) / 1000
= 512000 / 1000
= 512
App fragment period = 512 / (16000 * 2 * 1 / 1000) = 16ms libasound up conversions = 512 * (48000/16000 * 2/1) = 3072 bytes Playback fragment period = 3072 / (48000 * 2 * 2 / 1000) = 16ms
Returns:
EOK on success, a negative errno upon failure. The errno values are available in the errno.h file.
Errors:
- -EINVAL
- The state of handle is invalid, the format is unsupported, or an invalid state change occurred. You can call snd_pcm_channel_status() to check if the state change was invalid.
Classification:
QNX Neutrino
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | Yes |
| Thread | Yes |
Caveats:
This function is not thread safe if handle (snd_pcm_t) is used across multiple threads.
This function is the plugin-aware version of snd_pcm_channel_params() . It functions exactly the same way. However, make sure that you don't mix and match plugin- and nonplugin-aware functions in your application, or you may get undefined behavior and misleading results.
