mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-03 09:01:52 -05:00
start pcm when draining in prepared state
For consistency with hw pcms, dmix/dshare pcms are started when draining in the prepared state with a non-empty buffer.
This commit is contained in:
parent
da5fa1e15c
commit
c92969845d
2 changed files with 6 additions and 0 deletions
|
|
@ -595,6 +595,9 @@ static int snd_pcm_dmix_drain(snd_pcm_t *pcm)
|
|||
stop_threshold = pcm->stop_threshold;
|
||||
if (pcm->stop_threshold > pcm->buffer_size)
|
||||
pcm->stop_threshold = pcm->buffer_size;
|
||||
if (dmix->state == SND_PCM_STATE_PREPARED &&
|
||||
snd_pcm_mmap_playback_hw_avail(pcm) > 0)
|
||||
snd_pcm_dmix_start(pcm);
|
||||
while (dmix->state == SND_PCM_STATE_RUNNING) {
|
||||
err = snd_pcm_dmix_sync_ptr(pcm);
|
||||
if (err < 0)
|
||||
|
|
|
|||
|
|
@ -326,6 +326,9 @@ static int snd_pcm_dshare_drain(snd_pcm_t *pcm)
|
|||
stop_threshold = pcm->stop_threshold;
|
||||
if (pcm->stop_threshold > pcm->buffer_size)
|
||||
pcm->stop_threshold = pcm->buffer_size;
|
||||
if (dshare->state == SND_PCM_STATE_PREPARED &&
|
||||
snd_pcm_mmap_playback_hw_avail(pcm) > 0)
|
||||
snd_pcm_dshare_start(pcm);
|
||||
while (dshare->state == SND_PCM_STATE_RUNNING) {
|
||||
err = snd_pcm_dshare_sync_ptr(pcm);
|
||||
if (err < 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue