lavc/rawdec: set field order on decoded frame.
authorNicolas George <nicolas.george@normalesup.org>
Sat, 9 Mar 2013 19:21:10 +0000 (20:21 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 10 Mar 2013 00:41:49 +0000 (01:41 +0100)
libavcodec/rawdec.c

index 01ecf78..efd8020 100644 (file)
@@ -147,12 +147,6 @@ static av_cold int raw_init_decoder(AVCodecContext *avctx)
         avctx->codec_tag == MKTAG('W','R','A','W'))
         context->flip = 1;
 
-    if (avctx->field_order > AV_FIELD_PROGRESSIVE) { /*we have interlaced material flagged in container */
-        avctx->coded_frame->interlaced_frame = 1;
-        if (avctx->field_order == AV_FIELD_TT  || avctx->field_order == AV_FIELD_TB)
-            avctx->coded_frame->top_field_first = 1;
-    }
-
     if (avctx->codec_tag == AV_RL32("yuv2") &&
         avctx->pix_fmt   == AV_PIX_FMT_YUYV422)
         context->is_yuv2 = 1;
@@ -325,6 +319,12 @@ static int raw_decode(AVCodecContext *avctx, void *data, int *got_frame,
         }
     }
 
+    if (avctx->field_order > AV_FIELD_PROGRESSIVE) { /* we have interlaced material flagged in container */
+        frame->interlaced_frame = 1;
+        if (avctx->field_order == AV_FIELD_TT || avctx->field_order == AV_FIELD_TB)
+            frame->top_field_first = 1;
+    }
+
     *got_frame = 1;
     return buf_size;
 }