[FFmpeg-devel] [PATCH] af_volume: fix integer clip
Carl Eugen Hoyos
ceffmpeg at gmail.com
Sun Jan 26 18:59:42 EET 2020
Am So., 26. Jan. 2020 um 17:13 Uhr schrieb Zhao Zhili <quinkblack at foxmail.com>:
>
> ---
> Or specify an upper limit on volume. What do you think?
>
> libavfilter/af_volume.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c
> index 213c57195a..029925cbfb 100644
> --- a/libavfilter/af_volume.c
> +++ b/libavfilter/af_volume.c
> @@ -200,7 +200,7 @@ static inline void scale_samples_s16(uint8_t *dst, const uint8_t *src,
> int16_t *smp_dst = (int16_t *)dst;
> const int16_t *smp_src = (const int16_t *)src;
> for (i = 0; i < nb_samples; i++)
> - smp_dst[i] = av_clip_int16(((int64_t)smp_src[i] * volume + 128) >> 8);
> + smp_dst[i] = (int16_t)av_clip64(((int64_t)smp_src[i] * volume + 128) >> 8, INT16_MIN, INT16_MAX);
The cast looks unnecessary and confusing but if a limit works, it is likely
simpler imo.
Carl Eugen
More information about the ffmpeg-devel
mailing list