From patchwork Tue Jun 12 09:53:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shlomi Fish X-Patchwork-Id: 9374 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:11c:0:0:0:0:0 with SMTP id c28-v6csp5227714jad; Tue, 12 Jun 2018 02:53:33 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIgpVxyROCEN1NTYN0lb9yXggtGyzMEPE+7CFtLxySSBN0d5EFZLoB6ukJ6srKxqG26AU+7 X-Received: by 2002:adf:c4d0:: with SMTP id o16-v6mr2097562wrf.173.1528797213562; Tue, 12 Jun 2018 02:53:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528797213; cv=none; d=google.com; s=arc-20160816; b=UgQWswPzw6om1cqeLHjLx+gdvv9quCMRJQPF7Ua8qujcoIsOag2SaRHKchK1tKtbqb VlumiznDc9u2i/5S4iD0vWKDTMmx/5I5onFH/yY++qkp92wQhrGDqw0Cc9aCTENHa/U0 kaYesYBpn+88t3Yt0nqzOMOtxHrVkb584SK4kasFxAPB4I4D7EJ/6DPrJ5PngvaXwyS8 RcCOx3o+SIggMtHLTDuJ0kRtIUPuIFZQHkcyP+/iFKf7s5UcVj5+er1nflZkYhLlpM0f zDkigk4KU1S+xyR0glVlaWOzWIlSw47HHdBhqbROyq1CVYmlC/bpQXt//ZY2Wt0n+5TR d7Gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:to:from:date :delivered-to:arc-authentication-results; bh=BmTu9cvEg5lFOPBv3oPfF86Jesfdm1CKqjLsrX7CuiQ=; b=qn9KEnnDlgM0TWsgBTVpYvQg0SWmg2+o8bczEqkj2f/yCu2wgutwGWI7zlg1SLAWjN PgDxZGR3JPfA0EeQMc094F979KS5DNgOkfQ9G4diuEpdDBmrhCWQdhcRbbwYR+8YLXRc gxjKGxTz87ktJDyHHIAyvIbyWQRO21Q+Ez8uVafwJthu9mjip/QuyEo0IU+4yIwRMEwp ZxhElx/fSWVCzBNvc1btA9ebfK/cbfAUmj+hsM6jXXzalP/SO+YXOaVIP71dC41ySoeJ pNAWEqhsrcx/oYiZdjEmTeHv7eKByUtL8nDyF9nrx6mIPETu8erPOrZ2l5+Tc+G07/lR +g2A== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b144-v6si12577wmd.211.2018.06.12.02.53.32; Tue, 12 Jun 2018 02:53:33 -0700 (PDT) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A645368AEED; Tue, 12 Jun 2018 12:52:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from gateway32.websitewelcome.com (gateway32.websitewelcome.com [192.185.145.111]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8207C68ADC1 for ; Tue, 12 Jun 2018 12:52:35 +0300 (EEST) Received: from cm13.websitewelcome.com (cm13.websitewelcome.com [100.42.49.6]) by gateway32.websitewelcome.com (Postfix) with ESMTP id E0F13D0AF7 for ; Tue, 12 Jun 2018 04:53:23 -0500 (CDT) Received: from gator4065.hostgator.com ([192.185.4.76]) by cmsmtp with SMTP id SfzPfsIN879N3SfzPfLMEy; Tue, 12 Jun 2018 04:53:23 -0500 X-Authority-Reason: nr=8 Received: from [77.127.25.161] (port=57420 helo=telaviv1.shlomifish.org) by gator4065.hostgator.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from ) id 1fSfzP-001Rbu-Cy; Tue, 12 Jun 2018 04:53:23 -0500 Received: from telaviv1.shlomifish.org (telaviv1.shlomifish.org [127.0.0.1]) by telaviv1.shlomifish.org (Postfix) with ESMTP id 2A38826007C; Tue, 12 Jun 2018 12:53:21 +0300 (IDT) Date: Tue, 12 Jun 2018 12:53:20 +0300 From: Shlomi Fish To: ffmpeg-devel@ffmpeg.org Message-ID: <20180612125320.3eb312fc@telaviv1.shlomifish.org> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-mageia-linux-gnu) MIME-Version: 1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator4065.hostgator.com X-AntiAbuse: Original Domain - ffmpeg.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - shlomifish.org X-BWhitelist: no X-Source-IP: 77.127.25.161 X-Source-L: No X-Exim-ID: 1fSfzP-001Rbu-Cy X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: (telaviv1.shlomifish.org) [77.127.25.161]:57420 X-Source-Auth: shlomif@shlomifish.org X-Email-Count: 3 X-Source-Cap: c2hsb21pZjtzaGxvbWlmO2dhdG9yNDA2NS5ob3N0Z2F0b3IuY29t X-Local-Domain: yes Subject: [FFmpeg-devel] Fw: [PATCH] Refactor two near-identical clauses. 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 Cc: Shlomi Fish Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This message did not arrive to the list after three submissions. Begin forwarded message: Date: Tue, 12 Jun 2018 12:42:52 +0300 From: Shlomi Fish To: ffmpeg-devel@ffmpeg.org Cc: Shlomi Fish Subject: [PATCH] Refactor two near-identical clauses. Placed under the Expat licence . All tests pass. --- libavfilter/vf_weave.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) + s->linesize[i], s->planeheight[i]); } out->pts = s->double_weave ? s->prev->pts : in->pts / 2; diff --git a/libavfilter/vf_weave.c b/libavfilter/vf_weave.c index 037f5d1cf2..be371201e1 100644 --- a/libavfilter/vf_weave.c +++ b/libavfilter/vf_weave.c @@ -23,6 +23,7 @@ #include "libavutil/pixdesc.h" #include "avfilter.h" #include "internal.h" +#include typedef struct WeaveContext { const AVClass *class; @@ -84,6 +85,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) AVFilterLink *outlink = ctx->outputs[0]; AVFrame *out; int i; + bool weave; + int field1, field2; if (!s->prev) { s->prev = in; @@ -98,26 +101,18 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } av_frame_copy_props(out, in); + weave = (s->double_weave && !(inlink->frame_count_out & 1)); + field1 = s->first_field * weave; + field2 = s->first_field * !weave; for (i = 0; i < s->nb_planes; i++) { - if (s->double_weave && !(inlink->frame_count_out & 1)) { - av_image_copy_plane(out->data[i] + out->linesize[i] * s->first_field, - out->linesize[i] * 2, - in->data[i], in->linesize[i], - s->linesize[i], s->planeheight[i]); - av_image_copy_plane(out->data[i] + out->linesize[i] * !s->first_field, - out->linesize[i] * 2, - s->prev->data[i], s->prev->linesize[i], - s->linesize[i], s->planeheight[i]); - } else { - av_image_copy_plane(out->data[i] + out->linesize[i] * !s->first_field, - out->linesize[i] * 2, - in->data[i], in->linesize[i], - s->linesize[i], s->planeheight[i]); - av_image_copy_plane(out->data[i] + out->linesize[i] * s->first_field, - out->linesize[i] * 2, - s->prev->data[i], s->prev->linesize[i], - s->linesize[i], s->planeheight[i]); - } + av_image_copy_plane(out->data[i] + out->linesize[i] * field1, + out->linesize[i] * 2, + in->data[i], in->linesize[i], + s->linesize[i], s->planeheight[i]); + av_image_copy_plane(out->data[i] + out->linesize[i] * field2, + out->linesize[i] * 2, + s->prev->data[i], s->prev->linesize[i],