From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 854134E832 for ; Sat, 12 Jul 2025 09:23:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 384E768EFE9; Sat, 12 Jul 2025 12:22:54 +0300 (EEST) Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 05F8468EE1D for ; Sat, 12 Jul 2025 12:22:44 +0300 (EEST) Received: from haasn.dev (unknown [10.30.1.1]) by haasn.dev (Postfix) with UTF8SMTP id 64F63405F4; Sat, 12 Jul 2025 11:22:44 +0200 (CEST) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Sat, 12 Jul 2025 11:22:40 +0200 Message-ID: <20250712092243.29138-1-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] avfilter/scene_sad: pass true depth to ff_scene_sad_get_fn() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Niklas Haas Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Niklas Haas I need to be able to distinguish between 10/12/14 and 16 bit depths, for overflow reasons. --- libavfilter/f_select.c | 2 +- libavfilter/scene_sad.c | 5 ++--- libavfilter/vf_framerate.c | 2 +- libavfilter/vf_freezedetect.c | 2 +- libavfilter/vf_identity.c | 2 +- libavfilter/vf_minterpolate.c | 2 +- libavfilter/vf_scdet.c | 2 +- libavfilter/x86/scene_sad_init.c | 2 +- 8 files changed, 9 insertions(+), 10 deletions(-) diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c index a5609ec178..46208a7b76 100644 --- a/libavfilter/f_select.c +++ b/libavfilter/f_select.c @@ -272,7 +272,7 @@ static int config_input(AVFilterLink *inlink) inlink->type == AVMEDIA_TYPE_AUDIO ? inlink->sample_rate : NAN; if (CONFIG_SELECT_FILTER && select->do_scene_detect) { - select->sad = ff_scene_sad_get_fn(select->bitdepth == 8 ? 8 : 16); + select->sad = ff_scene_sad_get_fn(select->bitdepth); if (!select->sad) return AVERROR(EINVAL); } diff --git a/libavfilter/scene_sad.c b/libavfilter/scene_sad.c index caf911eb5d..05dd97e055 100644 --- a/libavfilter/scene_sad.c +++ b/libavfilter/scene_sad.c @@ -63,11 +63,10 @@ ff_scene_sad_fn ff_scene_sad_get_fn(int depth) sad = ff_scene_sad_get_fn_x86(depth); #endif if (!sad) { - if (depth == 8) + if (depth <= 8) sad = ff_scene_sad_c; - if (depth == 16) + else if (depth <= 16) sad = ff_scene_sad16_c; } return sad; } - diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c index 9976db8d93..a6598f97bb 100644 --- a/libavfilter/vf_framerate.c +++ b/libavfilter/vf_framerate.c @@ -282,7 +282,7 @@ static int config_input(AVFilterLink *inlink) s->bitdepth = pix_desc->comp[0].depth; - s->sad = ff_scene_sad_get_fn(s->bitdepth == 8 ? 8 : 16); + s->sad = ff_scene_sad_get_fn(s->bitdepth); if (!s->sad) return AVERROR(EINVAL); diff --git a/libavfilter/vf_freezedetect.c b/libavfilter/vf_freezedetect.c index ce67eed3ae..465a2e640b 100644 --- a/libavfilter/vf_freezedetect.c +++ b/libavfilter/vf_freezedetect.c @@ -103,7 +103,7 @@ static int config_input(AVFilterLink *inlink) s->height[plane] = inlink->h >> ((plane == 1 || plane == 2) ? pix_desc->log2_chroma_h : 0); } - s->sad = ff_scene_sad_get_fn(s->bitdepth == 8 ? 8 : 16); + s->sad = ff_scene_sad_get_fn(s->bitdepth); if (!s->sad) return AVERROR(EINVAL); diff --git a/libavfilter/vf_identity.c b/libavfilter/vf_identity.c index fc44bfaea0..6a94a92355 100644 --- a/libavfilter/vf_identity.c +++ b/libavfilter/vf_identity.c @@ -304,7 +304,7 @@ static int config_input_ref(AVFilterLink *inlink) s->filter_slice = !s->is_msad ? compute_images_identity : compute_images_msad; s->filter_line = desc->comp[0].depth > 8 ? identity_line_16bit : identity_line_8bit; - s->sad = ff_scene_sad_get_fn(desc->comp[0].depth <= 8 ? 8 : 16); + s->sad = ff_scene_sad_get_fn(desc->comp[0].depth); if (!s->sad) return AVERROR(EINVAL); diff --git a/libavfilter/vf_minterpolate.c b/libavfilter/vf_minterpolate.c index 93d331f2ff..d034783bc5 100644 --- a/libavfilter/vf_minterpolate.c +++ b/libavfilter/vf_minterpolate.c @@ -387,7 +387,7 @@ static int config_input(AVFilterLink *inlink) } if (mi_ctx->scd_method == SCD_METHOD_FDIFF) { - mi_ctx->sad = ff_scene_sad_get_fn(mi_ctx->bitdepth == 8 ? 8 : 16); + mi_ctx->sad = ff_scene_sad_get_fn(mi_ctx->bitdepth); if (!mi_ctx->sad) return AVERROR(EINVAL); } diff --git a/libavfilter/vf_scdet.c b/libavfilter/vf_scdet.c index 1568a0a496..8aa2f0a73b 100644 --- a/libavfilter/vf_scdet.c +++ b/libavfilter/vf_scdet.c @@ -91,7 +91,7 @@ static int config_input(AVFilterLink *inlink) s->height[plane] = inlink->h >> ((plane == 1 || plane == 2) ? desc->log2_chroma_h : 0); } - s->sad = ff_scene_sad_get_fn(s->bitdepth == 8 ? 8 : 16); + s->sad = ff_scene_sad_get_fn(s->bitdepth); if (!s->sad) return AVERROR(EINVAL); diff --git a/libavfilter/x86/scene_sad_init.c b/libavfilter/x86/scene_sad_init.c index 2c3729ceee..4a4c40195f 100644 --- a/libavfilter/x86/scene_sad_init.c +++ b/libavfilter/x86/scene_sad_init.c @@ -47,7 +47,7 @@ ff_scene_sad_fn ff_scene_sad_get_fn_x86(int depth) { #if HAVE_X86ASM int cpu_flags = av_get_cpu_flags(); - if (depth == 8) { + if (depth <= 8) { #if HAVE_AVX2_EXTERNAL if (EXTERNAL_AVX2_FAST(cpu_flags)) return scene_sad_avx2; -- 2.49.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".