diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c index 70aae92228..3b1281e7a2 100644 --- a/libavfilter/vf_idet.c +++ b/libavfilter/vf_idet.c @@ -206,21 +206,6 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref) return ff_filter_frame(ctx->outputs[0], av_frame_clone(idet->cur)); } -static int request_frame(AVFilterLink *link) -{ - AVFilterContext *ctx = link->src; - IDETContext *idet = ctx->priv; - - do { - int ret; - - if ((ret = ff_request_frame(link->src->inputs[0]))) - return ret; - } while (!idet->cur); - - return 0; -} - static av_cold void uninit(AVFilterContext *ctx) { IDETContext *idet = ctx->priv; @@ -273,6 +258,12 @@ static int query_formats(AVFilterContext *ctx) return 0; } +static int config_output(AVFilterLink *outlink) +{ + outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; + return 0; +} + static av_cold int init(AVFilterContext *ctx) { IDETContext *idet = ctx->priv; @@ -299,7 +290,7 @@ static const AVFilterPad idet_outputs[] = { { .name = "default", .type = AVMEDIA_TYPE_VIDEO, - .request_frame = request_frame, + .config_props = config_output, }, { NULL } };