summaryrefslogtreecommitdiff
path: root/src/pcm/pcm_rate.c
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2023-05-02 16:56:49 +0200
committerJaroslav Kysela <perex@perex.cz>2023-05-03 15:59:15 +0200
commite2d9e411744dede5a71e04a107cdc0ab7c1d0ed9 (patch)
tree412e10ce1479c1a860ace74209dd91bd86dbdf30 /src/pcm/pcm_rate.c
parent1de6f99c7d058634b5550fa59c01f3b6546f830a (diff)
downloadalsa-lib-e2d9e411744dede5a71e04a107cdc0ab7c1d0ed9.tar.gz
pcm: improve handling for snd_pcm_wait()
The snd_pcm_wait() function is called also internally from the various plugins to wait for the drain with -1 and from i/o routines in pcm.c. Define two special negative timeout values to distinguish the drain and i/o wait and calculate the maximal timeout according the wait place. Fixes: https://github.com/alsa-project/alsa-lib/issues/228 Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'src/pcm/pcm_rate.c')
-rw-r--r--src/pcm/pcm_rate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
index c8076859..44d7e760 100644
--- a/src/pcm/pcm_rate.c
+++ b/src/pcm/pcm_rate.c
@@ -1146,7 +1146,7 @@ static int snd_pcm_rate_drain(snd_pcm_t *pcm)
snd_pcm_uframes_t psize, spsize;
int err;
- err = __snd_pcm_wait_in_lock(rate->gen.slave, -1);
+ err = __snd_pcm_wait_in_lock(rate->gen.slave, SND_PCM_WAIT_DRAIN);
if (err < 0)
break;
if (size > pcm->period_size) {