[FFmpeg-devel] [PATCH] avfilter/dnn_detect: fail on filter if mandatory anchor option is missing

Chen, Wenbin wenbin.chen at intel.com
Thu Feb 27 04:41:00 EET 2025


> It prevents the filter of running in case such option is missing,
> failing early, during init() instead of simply logging an error
> during runtime.
> 
> It depends on this other change:
> 
> https://patchwork.ffmpeg.org/project/ffmpeg/patch/6c4d8098-bb57-4f7c-
> b86b-9221492b7ced at gmail.com/
> 
> Signed-off-by: Leandro Santiago <leandrosansilva at gmail.com>
> ---
>  libavfilter/vf_dnn_detect.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/libavfilter/vf_dnn_detect.c b/libavfilter/vf_dnn_detect.c
> index cd70c64e98..bc9a1777ff 100644
> --- a/libavfilter/vf_dnn_detect.c
> +++ b/libavfilter/vf_dnn_detect.c
> @@ -173,11 +173,6 @@ static int dnn_detect_parse_yolo_output(AVFrame
> *frame, DNNData *output, int out
>          return AVERROR(EINVAL);
>      }
> 
> -    if (!anchors) {
> -        av_log(filter_ctx, AV_LOG_ERROR, "anchors is not set\n");
> -        return AVERROR(EINVAL);
> -    }
> -
>      if (output[output_index].dims[1] * output[output_index].dims[2] *
>              output[output_index].dims[3] % (box_size * cell_w * cell_h)) {
>          av_log(filter_ctx, AV_LOG_ERROR, "wrong cell_w, cell_h or
> nb_classes\n");
> @@ -656,6 +651,14 @@ static av_cold int dnn_detect_init(AVFilterContext
> *context)
>      DnnDetectContext *ctx = context->priv;
>      DnnContext *dnn_ctx = &ctx->dnnctx;
>      int ret;
> +    int using_yolo = (ctx->model_type == DDMT_YOLOV3 ||
> +                      ctx->model_type == DDMT_YOLOV4 ||
> +                      ctx->model_type == DDMT_YOLOV1V2);
> +
> +    if (using_yolo && !ctx->anchors) {
> +        av_log(ctx, AV_LOG_ERROR, "anchors is not set while being required for
> YOLO models\n");
> +        return AVERROR(EINVAL);
> +    }
> 
>      ret = ff_dnn_init(&ctx->dnnctx, DFT_ANALYTICS_DETECT, context);
>      if (ret < 0)
> --
> 2.48.1
>
LGTM. Thanks

Wenbin
 
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list