snd_pcm_channel_params()

Updated: April 19, 2023

Set a PCM channel's configurable parameters

Synopsis:

#include <sys/asoundlib.h>

int snd_pcm_channel_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_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);

Returns:

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

Errors:

Additional information for common error values:
-EINVAL
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.

Classification:

QNX Neutrino

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

Caveats:

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