Message ID | 20140404182725.GQ24575@foghorn.codeweavers.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
2014-04-05 2:27 GMT+08:00 Andrew Eikum <aeikum@codeweavers.com>: > snd_pcm_rewind is documented to return <0 on failure and >=0 on > success. > does all resampler support rewind ? why do rate plugin assume all hardware support rewind ?
At Fri, 4 Apr 2014 13:27:25 -0500, Andrew Eikum wrote: > > snd_pcm_rewind is documented to return <0 on failure and >=0 on > success. > > Signed-off-by: Andrew Eikum <aeikum@codeweavers.com> Thanks, applied now. Takashi > --- > I checked all other rewind implementations, and this was the only one > that obviously had this bug. > > diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c > index 54a3e67..2eb4b1b 100644 > --- a/src/pcm/pcm_rate.c > +++ b/src/pcm/pcm_rate.c > @@ -702,7 +702,7 @@ static snd_pcm_sframes_t snd_pcm_rate_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t f > snd_atomic_write_begin(&rate->watom); > n = snd_pcm_rate_move_applptr(pcm, -frames); > snd_atomic_write_end(&rate->watom); > - return n; > + return n < 0 ? -n : n; > } > > static snd_pcm_sframes_t snd_pcm_rate_forward(snd_pcm_t *pcm, snd_pcm_uframes_t frames) > -- > 1.9.1 > > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel >
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c index 54a3e67..2eb4b1b 100644 --- a/src/pcm/pcm_rate.c +++ b/src/pcm/pcm_rate.c @@ -702,7 +702,7 @@ static snd_pcm_sframes_t snd_pcm_rate_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t f snd_atomic_write_begin(&rate->watom); n = snd_pcm_rate_move_applptr(pcm, -frames); snd_atomic_write_end(&rate->watom); - return n; + return n < 0 ? -n : n; } static snd_pcm_sframes_t snd_pcm_rate_forward(snd_pcm_t *pcm, snd_pcm_uframes_t frames)
snd_pcm_rewind is documented to return <0 on failure and >=0 on success. Signed-off-by: Andrew Eikum <aeikum@codeweavers.com> --- I checked all other rewind implementations, and this was the only one that obviously had this bug.