aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim.Nicholson <tim.nicholson@bbc.co.uk>2013-08-02 23:31:40 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2013-08-02 23:31:40 +0200
commitae4c912bcecb5048611c4491a818d489ec828f59 (patch)
tree3961cf967ed75d06ad931f8d3cdde17c691432c7
parent401f6a7126fe26eb486a0d99393485abd2ef5ade (diff)
downloadffmpeg-ae4c912bcecb5048611c4491a818d489ec828f59.tar.gz
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@ag.or.at>
-rw-r--r--libavcodec/ffv1dec.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index 17b894645f..2fe511ebd8 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);