Correct assignment of interlaced_frame; was being set on output frames,
authorJeff Downs <heydowns@borg.com>
Mon, 5 Nov 2007 18:16:42 +0000 (18:16 +0000)
committerJeff Downs <heydowns@borg.com>
Mon, 5 Nov 2007 18:16:42 +0000 (18:16 +0000)
in display order, based on decoding information in decoding order. Now
set properly, immediately upon completion of decode.

Based on original patch from Reinhard Nissl,  rnisssl % gmx , de
Original Thread: [FFmpeg-devel] H.264 + PAFF: BBC HD recording shows
extreme interlacing artefacts, Thu, 01 Nov 2007 22:43:09

Originally committed as revision 10931 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h264.c

index 579c4b5..ec0cdcb 100644 (file)
@@ -7763,6 +7763,8 @@ static int decode_frame(AVCodecContext *avctx,
             *data_size = 0;
 
         } else {
+            cur->interlaced_frame = FIELD_OR_MBAFF_PICTURE;
+
         //FIXME do something with unavailable reference frames
 
 #if 0 //decode order
@@ -7845,7 +7847,6 @@ static int decode_frame(AVCodecContext *avctx,
     /* we substract 1 because it is added on utils.c    */
     avctx->frame_number = s->picture_number - 1;
 #endif
-    pict->interlaced_frame = FIELD_OR_MBAFF_PICTURE;
     return get_consumed_bytes(s, buf_index, buf_size);
 }
 #if 0