[FFmpeg-devel] [PATCH] avfilter/dnn_detect: fail on filter if mandatory anchor option is missing
Guo, Yejun
yejun.guo at intel.com
Mon Mar 3 13:29:58 EET 2025
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of Chen,
> Wenbin
> Sent: Thursday, February 27, 2025 10:41 AM
> To: FFmpeg development discussions and patches <ffmpeg-
> devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH] avfilter/dnn_detect: fail on filter if
> mandatory anchor option is missing
>
> > 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/
Will push with this link removed.
> >
> > 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".
> _______________________________________________
> 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