From patchwork Sat Jan 4 10:23:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 17190 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 B8BD9448953 for ; Sat, 4 Jan 2020 12:23:36 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 91CEA68AAF0; Sat, 4 Jan 2020 12:23:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpbg.qq.com (smtpbg510.qq.com [203.205.250.17]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A75868AAF0 for ; Sat, 4 Jan 2020 12:23:28 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1578133405; bh=P0FFGuwOVlRMrL0aFosllSE8s9qUV+MaKt5mTrVqhCM=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=DJvBuTD13B6n1WA1UuL1/vqEAs2qN2iwwpV6paWVBorBBLxuMsN6N4EcTbnA1J2Tr tVZiwD8Vsm1Ah/VmrNAvjTUS7+kKZAkyuWQmv+FQq3JgyCs7q7cZCcJ9Lb3SQnCUie b6Wzea4Q/H3IYJtSqWPJiVbW3q/mTVLCuXqQ5zCc= X-QQ-mid: esmtp5t1578133403tw6z93mff Received: from ZHILIZHAO-MB1.tencent.com (unknown [14.17.22.54]) by esmtp4.qq.com (ESMTP) with id ; Sat, 04 Jan 2020 18:23:22 +0800 (CST) X-QQ-SSF: 01000000000000N0WH4000000000002 X-QQ-FEAT: KRrdw+DKNNRzmJnhIIW/bsRKf3dHhxXDp4x1N+fWL4cmeLOqw/Lz1KDsSEaZB PS34m4Tyzj76XAXmVan0yeSiKRv7cOltmc1soSYgUb7RtMRWotBXQYQbsHg7kwWID6l/yam 9hdnBZdm7o5MnyNrzS6HJYF8j7VIBUIay4FWnlxW5ssSqoTdj1v6P7Hg8WyrMOVd7WvF9Ir lt5HtZQQYhj8+5wFXdWCIxVliJCETwEINfylkXdEP1yyPNvPkp0k1UZf88+RmAVDXbg9nPc FXsK9ei3wzodiEbWtUmrrPl3t5hvF0JoJqYg== X-QQ-GoodBg: 0 From: quinkblack@foxmail.com To: ffmpeg-devel@ffmpeg.org Date: Sat, 4 Jan 2020 18:23:15 +0800 Message-Id: <20200104102316.80671-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: esmtp:foxmail.com:bgweb:bgweb2 Subject: [FFmpeg-devel] [PATCH 1/2] avfilter/vf_gblur: fix divide by zero 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Zhao Zhili ./ffmpeg -i ~/Pictures/test.jpg -vf 'gblur=sigma=0' -f null - ... src/libavfilter/vf_gblur.c:260:59: runtime error: division by zero src/libavfilter/vf_gblur.c:261:26: runtime error: division by zero --- libavfilter/vf_gblur.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libavfilter/vf_gblur.c b/libavfilter/vf_gblur.c index 2e587f6a0a..e057937fb7 100644 --- a/libavfilter/vf_gblur.c +++ b/libavfilter/vf_gblur.c @@ -37,11 +37,17 @@ #define OFFSET(x) offsetof(GBlurContext, x) #define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_RUNTIME_PARAM +/* Consider the three-sigma rule, for minimum radius of 1 sigma should not + * be smaller than 1/3. Relax it to 0.25 if the user want to try. + */ +#define SIGMA_MIN 0.25 +#define SIGMA_MAX 1024.0 + static const AVOption gblur_options[] = { - { "sigma", "set sigma", OFFSET(sigma), AV_OPT_TYPE_FLOAT, {.dbl=0.5}, 0.0, 1024, FLAGS }, + { "sigma", "set sigma", OFFSET(sigma), AV_OPT_TYPE_FLOAT, {.dbl=0.5}, SIGMA_MIN, SIGMA_MAX, FLAGS }, { "steps", "set number of steps", OFFSET(steps), AV_OPT_TYPE_INT, {.i64=1}, 1, 6, FLAGS }, { "planes", "set planes to filter", OFFSET(planes), AV_OPT_TYPE_INT, {.i64=0xF}, 0, 0xF, FLAGS }, - { "sigmaV", "set vertical sigma", OFFSET(sigmaV), AV_OPT_TYPE_FLOAT, {.dbl=-1}, -1, 1024, FLAGS }, + { "sigmaV", "set vertical sigma", OFFSET(sigmaV), AV_OPT_TYPE_FLOAT, {.dbl=-1}, -1, SIGMA_MAX, FLAGS }, { NULL } }; @@ -244,7 +250,7 @@ static int config_input(AVFilterLink *inlink) if (!s->buffer) return AVERROR(ENOMEM); - if (s->sigmaV < 0) { + if (s->sigmaV < SIGMA_MIN) { s->sigmaV = s->sigma; } ff_gblur_init(s); From patchwork Sat Jan 4 10:23:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 17191 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 ACD8E448953 for ; Sat, 4 Jan 2020 12:23:37 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8AF1E68AD2A; Sat, 4 Jan 2020 12:23:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8CC9D68AB6F for ; Sat, 4 Jan 2020 12:23:29 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1578133405; bh=IWDqYfaPhInQjfPKmBBuUBR930d+yLSnu6aCxkLgO5s=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=y+0YGlDK12eG/NI0xDlhOzdwNH277Qxnv8Gne06Mtl+WH5zFqKYYATCecXG63/acG 5BMRLqwNGYFfLnLY3PFLPc/5BCHXODUlsDDAZBg0Qk14DhHGV8C5TdL8ZFhNoWX6RW bUwIX5wIwGGWjbjGi2NFZno5mBxHFFYWSUrupcZc= X-QQ-mid: esmtp5t1578133404tnnhdkk62 Received: from ZHILIZHAO-MB1.tencent.com (unknown [14.17.22.54]) by esmtp4.qq.com (ESMTP) with id ; Sat, 04 Jan 2020 18:23:24 +0800 (CST) X-QQ-SSF: 01000000000000N0WH4000000000002 X-QQ-FEAT: w845sYfzZMJ2gwFIdXER4Uf2seIgXd6GmL6OxjEUs1+p76z8C2YJyvHYtLTrK a4+MyK8TrVuGClNYq8aH2yMawSnNQLC+GfeRfEml3rTTnGQyLgk8d6/YIqBiWeWN/HPrf03 PwAAtEF4mjoqLrNcrSjJCkDnfaRg/Rwh0nuIJEENK0ceknFsqUTLjXZY7SqixAJxYSyZQZC JoAyAfE3UD8THDCjJg1+1PNLnkBdvRSVa5tl+fHv+MfwJ89y3FqFw1WV50XWfrnfplzrGdv AA55dl7XgF0IRcwfEw5NIbMvX8PyV+kiJqCA== X-QQ-GoodBg: 0 From: quinkblack@foxmail.com To: ffmpeg-devel@ffmpeg.org Date: Sat, 4 Jan 2020 18:23:16 +0800 Message-Id: <20200104102316.80671-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20200104102316.80671-1-quinkblack@foxmail.com> References: <20200104102316.80671-1-quinkblack@foxmail.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: esmtp:foxmail.com:bgforeign:bgforeign12 X-QQ-Bgrelay: 1 Subject: [FFmpeg-devel] [PATCH 2/2] avfilter/vf_gblur: remove unnecessary check 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Zhao Zhili --- libavfilter/vf_gblur.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libavfilter/vf_gblur.c b/libavfilter/vf_gblur.c index e057937fb7..0d7d5438d1 100644 --- a/libavfilter/vf_gblur.c +++ b/libavfilter/vf_gblur.c @@ -189,9 +189,6 @@ static void gaussianiir2d(AVFilterContext *ctx, int plane) const int nb_threads = ff_filter_get_nb_threads(ctx); ThreadData td; - if (s->sigma <= 0 || s->steps < 0) - return; - td.width = width; td.height = height; ctx->internal->execute(ctx, filter_horizontally, &td, NULL, FFMIN(height, nb_threads)); @@ -301,7 +298,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) uint16_t *dst16 = (uint16_t *)out->data[plane]; int y, x; - if (!s->sigma || !(s->planes & (1 << plane))) { + if (!(s->planes & (1 << plane))) { if (out != in) av_image_copy_plane(out->data[plane], out->linesize[plane], in->data[plane], in->linesize[plane],