Hello, I think idet duplicately counts and offsets accuracy of progressive frames, as repoert in ticket #7565. If this is corret, the below patch can fix it.
ponpon diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c index 02ae2edcb9..8c355ee2f9 100644 --- a/libavfilter/vf_idet.c +++ b/libavfilter/vf_idet.c @@ -285,12 +285,14 @@ static int filter_frame(AVFilterLink *link, AVFrame *picref) if (idet->cur->interlaced_frame) { idet->cur->interlaced_frame = 0; filter(ctx); - if (idet->last_type == PROGRESSIVE) { - idet->interlaced_flag_accuracy --; - idet->analyze_interlaced_flag --; - } else if (idet->last_type != UNDETERMINED) { - idet->interlaced_flag_accuracy ++; - idet->analyze_interlaced_flag --; + if (idet->last_type != UNDETERMINED) { + if (idet->last_type == PROGRESSIVE) { + idet->interlaced_flag_accuracy --; + idet->analyze_interlaced_flag --; + } else { + idet->interlaced_flag_accuracy ++; + idet->analyze_interlaced_flag --; + } } if (idet->analyze_interlaced_flag == 1) { ff_filter_frame(ctx->outputs[0], av_frame_clone(idet->cur)); _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel