Updated: April 19, 2023

Set a PCM channel's configurable parameters


#include <sys/asoundlib.h>

int snd_pcm_channel_params( 
       snd_pcm_t *handle, 
       snd_pcm_channel_params_t *params );


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().
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.


Use the -l asound option with qcc to link against this library.


The snd_pcm_channel_params() function sets up the transfer parameters according to the params structure.

You can call the function in SND_PCM_STATUS_NOTREADY (initial) and SND_PCM_STATUS_READY states; otherwise, snd_pcm_channel_params() returns -EBADFD.

If the parameters are valid (i.e., snd_pcm_channel_params() returns zero), the driver state is changed to SND_PCM_STATUS_READY.

Note: The ability to convert audio to match hardware capabilities (for example, voice conversion, rate conversion, type conversion, etc.) is enabled by default. As a result, this function behaves as snd_pcm_plugin_params(), unless you've disabled the conversion by calling:
snd_pcm_plugin_set_disable(handle, PLUGIN_CONVERSION);


EOK on success, a negative errno upon failure. The errno values are available in the errno.h file.


Additional information for common error values:
The state of handle is invalid, an invalid params was provided as input, or an invalid state change occurred. You can call snd_pcm_channel_status() to check if the state change was invalid and if you want to recover from the error.


QNX Neutrino

Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Read the Caveats


This function is not thread safe if handle (snd_pcm_t) is used across multiple threads.