Default is disabled. --- doc/filters.texi | 3 +++ libavfilter/vf_find_rect.c | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/doc/filters.texi b/doc/filters.texi index 64878e15da..5e35fa6467 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -12139,6 +12139,9 @@ Number of mipmaps, default is 3. @item xmin, ymin, xmax, ymax Specifies the rectangle in which to search. + +@item discard +Discard frames where object is not detected. Default is disabled. @end table @subsection Examples diff --git a/libavfilter/vf_find_rect.c b/libavfilter/vf_find_rect.c index ea3b7aeee5..f9129cc140 100644 --- a/libavfilter/vf_find_rect.c +++ b/libavfilter/vf_find_rect.c @@ -40,6 +40,7 @@ typedef struct FOCContext { AVFrame *obj_frame; AVFrame *needle_frame[MAX_MIPMAPS]; AVFrame *haystack_frame[MAX_MIPMAPS]; + int discard; } FOCContext; #define OFFSET(x) offsetof(FOCContext, x) @@ -52,6 +53,7 @@ static const AVOption find_rect_options[] = { { "ymin", "", OFFSET(ymin), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS }, { "xmax", "", OFFSET(xmax), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS }, { "ymax", "", OFFSET(ymax), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS }, + { "discard", "", OFFSET(discard), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, FLAGS }, { NULL } }; @@ -206,7 +208,12 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } if (best_score > foc->threshold) { - return ff_filter_frame(ctx->outputs[0], in); + if (foc->discard) { + av_frame_free(&in); + return 0; + } else { + return ff_filter_frame(ctx->outputs[0], in); + } } av_log(ctx, AV_LOG_INFO, "Found at n=%lld pts_time=%f x=%d y=%d with score=%f\n", -- 2.30.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".