[alsa-devel] snd_pcm_sw_params_set_start_threshold() functionality
irfanks
irfan.shaikh at sasken.com
Mon Oct 29 13:28:50 CET 2012
Please let me know if my below understanding is correct :
snd_pcm_sw_params_set_start_threshold() explains :
"PCM is automatically started when playback frames available to PCM are
>= threshold or when requested capture frames are >= threshold"
PCM has below states :
SND_PCM_STATE_OPEN Open
SND_PCM_STATE_SETUP Setup installed
SND_PCM_STATE_PREPARED Ready to start
SND_PCM_STATE_RUNNING Running
SND_PCM_STATE_XRUN Stopped: underrun (playback) or
overrun (capture) detected
SND_PCM_STATE_DRAINING Draining: running (playback) or
stopped (capture)
SND_PCM_STATE_PAUSED Paused
SND_PCM_STATE_SUSPENDED Hardware is suspended
SND_PCM_STATE_DISCONNECTED Hardware is disconnected
When ever underrun occurs, PCM device state goes to XRUN state.
To bring back the PCM playback device to playback {Ready to start}, we
use snd_pcm_prepare().
*Thus snd_pcm_sw_params_set_start_threshold() should again
prebuffer(threshold) X periods of data {which we have set in software
params}, once again after the XRUN state is recovered.*
Thanks and regards,
Irfan
On 10/29/2012 04:50 PM, irfanks wrote:
> Hello,
>
> snd_pcm_sw_params_set_start_threshold() API description
> explains, "PCM is automatically started when playback frames available
> to PCM are >= threshold"
>
> I want to know, whether above pre-buffering(threshold)
> mechanism is only during the start of playback ?
> OR
> Also if my playback device goes to XRUN state, Again next
> time when i prepare my playback device using snd_pcm_prepare(). Again
> the prebuffering (threshold) will occur since i have set
> snd_pcm_sw_params_set_start_threshold() to N periods in software params.
>
>
> Best Regards,
> Thanks in advance,
> Irfan...
More information about the Alsa-devel
mailing list