Signal the driver to ready the capture channel


#include <sys/asoundlib.h>

int snd_pcm_capture_prepare( snd_pcm_t *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().


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


The snd_pcm_capture_prepare() function prepares hardware to operate in a specified transfer direction. This call is responsible for all parts of the hardware's startup sequence that require additional initialization time, allowing the final "GO" (either from writes into the buffers or snd_pcm_channel_go()) to execute more quickly.

You can call this function in all states except SND_PCM_STATUS_NOTREADY (returns -EBADFD) and SND_PCM_STATUS_RUNNING state (returns -EBUSY). If the operation is successful (zero is returned), the driver state is changed to SND_PCM_STATUS_PREPARED.

Note: If your channel has overrun, you have to reprepare it before continuing. For an example, see waverec.c example in the appendix.


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


Listed below is additional information for common error values:
The state of handle is invalid or an invalid state change occurred. You can call snd_pcm_channel_status() to check if the state change was invalid.
The specified channel is running.


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.