From patchwork Sat Mar 10 19:50:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 7894 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.181.170 with SMTP id m39csp44919jaj; Sat, 10 Mar 2018 11:56:15 -0800 (PST) X-Google-Smtp-Source: AG47ELuwQFT+sHeM1uGBXdq7Qlpfe9d2RQPOzAeDvNVAxgd3dvaevC0gq+A3zowDkirltrtJTTeL X-Received: by 10.28.17.77 with SMTP id 74mr1752225wmr.67.1520711775851; Sat, 10 Mar 2018 11:56:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520711775; cv=none; d=google.com; s=arc-20160816; b=aNpLkCu6Q+Ds1/6fNJ4B+K4d/9sXPXA7vbl+9bmrginnRj+JHdsbRWp5PFoTj1hNVO x2KrGqrrIz+wOgy6aqx6qFlEbLaOPu6qDjfyGMKUCu1+oIR3GWD040msBYboAKOzMq2a xL5NklsfZ4U0J1daHVAfYv8zZ3AUZvbSS1ZGO3LNlK9DU5V6qkXu2uUKEUc4xYswFlVg LcCJFXcMXB7U81428XTyXAF/aXzZA9/OID0XlIEKQhIVKuolfiXZu4M1AoZjv6F2fU2Z oepWI1YrvzV1a5bilEnVGjzzlHsMiECUxp1BPzsaKGUu8ypVClNa0hzm00se2YZECeSV iYBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:mime-version:dkim-signature:delivered-to :arc-authentication-results; bh=Gr1ACCXJfVE47srbY/ixB6Ug0Dg3Kor2HenVH/U5m8w=; b=RiCQtsAZgdWJl2gjeNSQPqAQ9u89/adJ1Wx7cTATKAmA6eILtidy9glSb+zu2X7hNh EiehVLn6duau0+9OYXZ5pqjG4lLPjYOHq046rZgaJPHDhXrMtcU09c906J7qHoiw57kG 6ssk8uxQPHWTgxfyxcNrCTH4ULkj5LBljI/6SqDctggP8ttlgTWn0zYuv2FOShPfCAPz Db+Sq/Pl139s+MSCydHxsWXgsfb38eRUfkiBriDLgnLwD357eunBGyp+wBLmuGOU4u9n 49EmCRTkr5jmUDBHZM1r8sHrXdx0NOfLz5Ki6+IACy+gShBwqg+Rx+4tqQ/xBOAaKkb8 te2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=MtkNgksF; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id i63si1152749wmh.100.2018.03.10.11.56.14; Sat, 10 Mar 2018 11:56:15 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=MtkNgksF; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D008068A69D; Sat, 10 Mar 2018 21:56:03 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io0-f173.google.com (mail-io0-f173.google.com [209.85.223.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 50EB368A3A3 for ; Sat, 10 Mar 2018 21:55:57 +0200 (EET) Received: by mail-io0-f173.google.com with SMTP id v10so504937iob.6 for ; Sat, 10 Mar 2018 11:56:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=iw0/Ksh8TRvPdnC8CfxRdFHWXycENiDBnK2s5RQ0dnc=; b=MtkNgksF7wu2OdHcAcMbXbnLw/e+mblGGmabc7FcpuNN8hQeqrgYnxnWlu9OMZmdIE exnAkSzRHdJcKoTPJf4cAkPz71JMp4TRkScjUZrj5g4SAbAIjJ0P7YM+VHl/nOj49+zb b2aI1hl4sy+JJSJ1D6OhS1vA7xC0t/B7iV+gT+ntuwapaMw0qla5JoFRSi/71YxL8AGC 3sVQv6bmaRPPYGqzmG/NckDjXz6FIuD8dzbQwT2lVQUljVJW7s5qhsunEd3Ky91IFjCq E6WW0boUKHApv6TNw2Wgyh19WeM84maZsaMJtwoiuiYoaf4Ik0VWVSIrtKbD0BFAVFOg BNuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=iw0/Ksh8TRvPdnC8CfxRdFHWXycENiDBnK2s5RQ0dnc=; b=rXTRkrsNDfDZQ+VWp81nD6nZwUmmtADaA0mXm1KL1YkGDlgpl8ZztCpX+0KQmeNbTz SHPz716qlvlkyw5IooPKhMcoMl2TokZY5VnNsNoFT7HenjbJH4sI7ArgEN+3yUw95MCj y1epm3Jv8iKwr8VH7TpBBh45FMbM7aHo9uoEVN/rr4oLqj/RDGa8Wc9jpwOpYcL0ixgD xhfDefPEMNV8QfIdQrrYq+Vn5agXTIgqkxI1P8KuaRL0V4UT69bDeNoiSi0JyUtqg179 m075P/lO4KfknuvODA3qFC0Mkfsimw4ev5WnaGdDxDqxwQKR5qQsCy2GJBVp1DMGtBn0 FLdg== X-Gm-Message-State: AElRT7FJdtTmfCBI+6yOiWCuPLMydg0WepRI3PFQBD2/m246BcREO9JZ DNofIwGi2AQvgyyKfQmuR8S4/unimzdUEqvHCZ0= X-Received: by 10.107.89.4 with SMTP id n4mr3274195iob.286.1520711429319; Sat, 10 Mar 2018 11:50:29 -0800 (PST) MIME-Version: 1.0 Received: by 10.2.3.28 with HTTP; Sat, 10 Mar 2018 11:50:08 -0800 (PST) From: Carl Eugen Hoyos Date: Sat, 10 Mar 2018 20:50:08 +0100 Message-ID: To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH]lavfi/deshake: Check alignment before calling asm init function X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi! Attached patch fixes ticket #7078 for me. Please comment, Carl Eugen From 75ead282c3aa3c214d37e766690e2edd037307c0 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos 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); + if (deshake->cx < 0 || deshake->cy < 0 || deshake->cw < 0 || deshake->ch < 0) { // Find the most likely global motion for the current frame find_motion(deshake, (deshake->ref == NULL) ? in->data[0] : deshake->ref->data[0], in->data[0], link->w, link->h, in->linesize[0], &t); -- 1.8.4.5