From patchwork Mon Sep 2 21:52:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 14848 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 4EAF5447C0F for ; Tue, 3 Sep 2019 00:52:56 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 260EB687F55; Tue, 3 Sep 2019 00:52:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E4F66687F2D for ; Tue, 3 Sep 2019 00:52:49 +0300 (EEST) X-QQ-mid: bizesmtp18t1567461163tdo7ok38 Received: from localhost (unknown [47.90.47.25]) by esmtp6.qq.com (ESMTP) with id ; Tue, 03 Sep 2019 05:52:43 +0800 (CST) X-QQ-SSF: 01100000008000K0ZQF1000A0000000 X-QQ-FEAT: PBPP9pE4eJH5rDwUwcEWwvWqAqJWpNgt5eV9JSSFeArl8LY8T9mOzYkXgUCSo wQeQhxh0dfw+/1jLEBl/8HIYVaGSSKVT9Bb8UFZ8AMnjUcKu5Wz5V78GHmrGjSk8djYz1N9 qDdLn+MHNou+iicopkWrMVRViwDOJeC0M83v1Rxxzl4SOHPuTsOIpnsdzTsC1qbS8Po+AmY ZeOtxfw9sZiDTvzKAERq+4iNq6r9T03SFSLnrhvZmeaAo6q5OaeYhcReA3GTbQFNJZSiBgS 3/cjKJLmQZuOIvEdac6C2un1KfRUPoNlGsNJxvFH1/FNNrnf3UaPGM/rM= X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Tue, 3 Sep 2019 05:52:41 +0800 Message-Id: <20190902215241.26732-1-lq@chinaffmpeg.org> X-Mailer: git-send-email 2.10.1.382.ga23ca1b.dirty X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgforeign:qybgforeign2 X-QQ-Bgrelay: 1 Subject: [FFmpeg-devel] [PATCH] avfilter/vf_delogo: add auto set the area inside of the frame 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: Steven Liu MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" when the area outside of the frame, then use expr should give user warning message and auto set to the area inside of the frame. Signed-off-by: Steven Liu --- libavfilter/vf_delogo.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c index 814575a36c..5521a29214 100644 --- a/libavfilter/vf_delogo.c +++ b/libavfilter/vf_delogo.c @@ -327,6 +327,20 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->w = av_expr_eval(s->w_pexpr, s->var_values, s); s->h = av_expr_eval(s->h_pexpr, s->var_values, s); + if (s->x + (s->band - 1) < 0 || s->x + s->w - (s->band*2 - 2) > inlink->w || + s->y + (s->band - 1) < 0 || s->y + s->h - (s->band*2 - 2) > inlink->h) { + av_log(s, AV_LOG_WARNING, "Logo area is outside of the frame," + "auto set the area inside of the frame\n"); + } + if (s->x + (s->band - 1) < 0) + s->x = s->band; + if (s->y + (s->band - 1) < 0) + s->y = s->band; + if (s->x + s->w - (s->band*2 - 2) > inlink->w) + s->x = inlink->w - s->w + (s->band*2 - 2); + if (s->y + s->h - (s->band*2 - 2) > inlink->h) + s->y = inlink->h - s->h + (s->band*2 - 2); + ret = config_input(inlink); if (ret < 0) { av_frame_free(&in);