avfilter/vf_yadif: detect telecine content
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 5 Jan 2015 22:55:59 +0000 (23:55 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 5 Jan 2015 23:31:37 +0000 (00:31 +0100)
Fixes: yadif with interlaced_flag_switch.mpeg

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavfilter/vf_yadif.c

index 8b951a4..ea72e62 100644 (file)
@@ -345,7 +345,11 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
     if (!yadif->prev)
         return 0;
 
-    if ((yadif->deint && !yadif->cur->interlaced_frame) || ctx->is_disabled) {
+    if ((yadif->deint && !yadif->cur->interlaced_frame) ||
+        ctx->is_disabled ||
+        (yadif->deint && !yadif->prev->interlaced_frame && yadif->prev->repeat_pict) ||
+        (yadif->deint && !yadif->next->interlaced_frame && yadif->next->repeat_pict)
+    ) {
         yadif->out  = av_frame_clone(yadif->cur);
         if (!yadif->out)
             return AVERROR(ENOMEM);