Discard all pending data in a PCM capture channel's queue and stop the channel


#include <sys/asoundlib.h>

int snd_pcm_capture_flush( 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_flush() function throws away all unprocessed data in the driver queue.

If the operation is successful (zero is returned), the channel's state is changed to SND_PCM_STATUS_READY, and the channel is stopped.

Note: This function isn't plugin-aware. It functions exactly the same way as snd_pcm_channel_flush(.., SND_PCM_CHANNEL_CAPTURE). 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.


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


The pcm device state isn't ready.
The operation was interrupted because of a system signal (such as a timer) or an error was returned asynchronously.
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.
An invalid channel was specified, or the data wasn't all flushed.


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.