Stop the PCM playback channel and discard the contents of its queue (plugin-aware)


#include <sys/asoundlib.h>

int snd_pcm_plugin_playback_drain( 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 with qcc to link against this library.


The snd_pcm_plugin_playback_drain() function stops the PCM playback channel associated with handle and causes it to discard all audio data in its buffers. This happens immediately, even if the channel's current state has been set to SND_PCM_STATUS_SUSPENDED or SND_PCM_STATUS_PAUSED by audio concurrency management policies in place.

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


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


The state of handle is invalid, an invalid channel was provided as input, an invalid state change occurred, or the PCM device state isn't ready. You can call snd_pcm_channel_status() to check if the state change was invalid.


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.

This function is the plugin-aware version of snd_pcm_playback_drain() . 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.