[FFmpeg-devel] [PATCH]lavfi/deshake: Check alignment before calling asm init function

Michael Niedermayer michael at niedermayer.cc
Thu Mar 15 00:50:55 EET 2018


On Sat, Mar 10, 2018 at 08:50:08PM +0100, Carl Eugen Hoyos wrote:
> Hi!
> 
> Attached patch fixes ticket #7078 for me.
> 
> Please comment, Carl Eugen

>  vf_deshake.c |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 9f4517eae88416277aeb5bd5b677159914e9c451  0001-lavfi-deshake-Check-alignment-before-calling-asm-ini.patch
> From 75ead282c3aa3c214d37e766690e2edd037307c0 Mon Sep 17 00:00:00 2001
> From: Carl Eugen Hoyos <cehoyos at ag.or.at>
> Date: Sat, 10 Mar 2018 20:46:21 +0100
> Subject: [PATCH] lavfi/deshake: Check alignment before calling asm init
>  function.
> 
> Do this for every frame to make sure dynamic filters do not
> cause crashes.
> 
> Fixes ticket #7078.
> ---
>  libavfilter/vf_deshake.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c
> index fb4eb35..75e9990 100644
> --- a/libavfilter/vf_deshake.c
> +++ b/libavfilter/vf_deshake.c
> @@ -342,10 +342,6 @@ static av_cold int init(AVFilterContext *ctx)
>  {
>      DeshakeContext *deshake = ctx->priv;
>  
> -    deshake->sad = av_pixelutils_get_sad_fn(4, 4, 1, deshake); // 16x16, 2nd source unaligned
> -    if (!deshake->sad)
> -        return AVERROR(EINVAL);
> -
>      deshake->refcount = 20; // XXX: add to options?
>      deshake->blocksize /= 2;
>      deshake->blocksize = av_clip(deshake->blocksize, 4, 128);
> @@ -432,6 +428,10 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
>      }
>      av_frame_copy_props(out, in);
>  
> +    deshake->sad = av_pixelutils_get_sad_fn(4, 4, !((unsigned long)in->data[0] & 15), deshake); // 16x16, 2nd source unaligned
> +    if (!deshake->sad)
> +        return AVERROR(EINVAL);

does this need to check linesize too ?

no more comments from me

thx

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When the tyrant has disposed of foreign enemies by conquest or treaty, and
there is nothing more to fear from them, then he is always stirring up
some war or other, in order that the people may require a leader. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180314/d3bd4ad4/attachment.sig>


More information about the ffmpeg-devel mailing list