[alsa-devel] [PATCH alsa-lib] pcm: rate: Don't return negative frame count on success in rewind
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. 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
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
participants (3)
-
Andrew Eikum -
Raymond Yau -
Takashi Iwai