[FFmpeg-devel] [PATCH 1/2] swresample/resample_template: flip order of operations in swri_resample_linear() for 32bit

Ronald S. Bultje rsbultje at gmail.com
Sun Jun 29 20:28:02 CEST 2014


Hi,


On Sun, Jun 29, 2014 at 8:53 AM, Michael Niedermayer <michaelni at gmx.at>
wrote:

> Fixes integer overflow
>
> Found-by: BBB
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
>  libswresample/resample_template.c |    4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/libswresample/resample_template.c
> b/libswresample/resample_template.c
> index db208e3..3d566d0 100644
> --- a/libswresample/resample_template.c
> +++ b/libswresample/resample_template.c
> @@ -174,7 +174,11 @@ int RENAME(swri_resample_linear)(ResampleContext *c,
>              v2  += src[sample_index + i] * (FELEM2)filter[i +
> c->filter_alloc];
>          }
>  #endif
> +#ifdef FELEML
>          val += (v2 - val) * (FELEML) frac / c->src_incr;
> +#else
> +        val += (v2 - val) / c->src_incr * frac;
> +#endif
>          OUT(dst[dst_index], val);


I bet you were intending to remove this line in the same commit:

#    define FELEML int64_t

I guess this is OK, at least short-term it fixes the issue. Long-term, I'd
like something slightly more simd-friendly but I'll do that separately...

Thanks!
Ronald


More information about the ffmpeg-devel mailing list