Communicate pulldown flags to clients to fix VC-1 playback with pulldown content
authorAlexandre Colucci <alexandre@elgato.com>
Mon, 4 Apr 2011 13:20:10 +0000 (15:20 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 4 Apr 2011 13:35:03 +0000 (15:35 +0200)
The pulldown flags should be communicated to the client of the libavcodec library. Not doing so causes jerky playback with pulldown content. Note that this change requires the patch previously provided here: http://ffmpeg.org/pipermail/ffmpeg-devel/2011-April/110314.html

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

index c3b4b83..ae035a6 100644 (file)
@@ -3374,6 +3374,15 @@ static int vc1_decode_frame(AVCodecContext *avctx,
         goto err;
     }
 
+    s->current_picture_ptr->repeat_pict = 0;
+    if (v->rff){
+        s->current_picture_ptr->repeat_pict = 1;
+    }else if (v->rptfrm){
+        s->current_picture_ptr->repeat_pict = v->rptfrm * 2;
+    }
+
+    s->current_picture_ptr->top_field_first = v->tff;
+
     // for skipping the frame
     s->current_picture.pict_type= s->pict_type;
     s->current_picture.key_frame= s->pict_type == FF_I_TYPE;