[FFmpeg-cvslog] Forward interlaced field information from mov to ffv1 decoder.

Tim.Nicholson git at videolan.org
Sat Aug 3 00:55:36 CEST 2013


ffmpeg | branch: master | Tim.Nicholson <tim.nicholson at bbc.co.uk> | Fri Aug  2 23:31:40 2013 +0200| [ae4c912bcecb5048611c4491a818d489ec828f59] | committer: Carl Eugen Hoyos

Forward interlaced field information from mov to ffv1 decoder.

Only read the information for old ffv1, level/version 3 saves
the information in the bitstream.
Fixes a part of ticket #2190.

Signed-off-by: Carl Eugen Hoyos <cehoyos at ag.or.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ae4c912bcecb5048611c4491a818d489ec828f59
---

 libavcodec/ffv1dec.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index 17b8946..2fe511e 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -784,6 +784,13 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
 
     f->cur = p = f->picture.f;
 
+    if (f->version < 3 && avctx->field_order > AV_FIELD_PROGRESSIVE) {
+        /* we have interlaced material flagged in container */
+        p->interlaced_frame = 1;
+        if (avctx->field_order == AV_FIELD_TT || avctx->field_order == AV_FIELD_TB)
+            p->top_field_first = 1;
+    }
+
     f->avctx = avctx;
     ff_init_range_decoder(c, buf, buf_size);
     ff_build_rac_states(c, 0.05 * (1LL << 32), 256 - 8);



More information about the ffmpeg-cvslog mailing list