From f43c14d0467f8095b31babcd337e3547852a82a0 Mon Sep 17 00:00:00 2001 From: Masaki Tanaka Date: Tue, 9 Apr 2013 16:43:08 +0900 Subject: [PATCH 1/2] mpegvideo_parser: Set field_order. Signed-off-by: Anton Khirnov --- libavcodec/mpegvideo_parser.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/mpegvideo_parser.c b/libavcodec/mpegvideo_parser.c index 5364acf92a..3219c10977 100644 --- a/libavcodec/mpegvideo_parser.c +++ b/libavcodec/mpegvideo_parser.c @@ -114,6 +114,14 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s, s->repeat_pict = 2; } } + + if (!pc->progressive_sequence) { + if (top_field_first) + s->field_order = AV_FIELD_TT; + else + s->field_order = AV_FIELD_BB; + } else + s->field_order = AV_FIELD_PROGRESSIVE; } break; } From accde1bd8756936e1757b42fc9bad2eb5d192f8a Mon Sep 17 00:00:00 2001 From: Masaki Tanaka Date: Tue, 9 Apr 2013 16:44:40 +0900 Subject: [PATCH 2/2] vc1_parser: Set field_order. Signed-off-by: Anton Khirnov --- libavcodec/vc1_parser.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c index 5aa1248e77..a6363d9a90 100644 --- a/libavcodec/vc1_parser.c +++ b/libavcodec/vc1_parser.c @@ -88,6 +88,11 @@ static void vc1_extract_headers(AVCodecParserContext *s, AVCodecContext *avctx, } } + if (vpc->v.broadcast && vpc->v.interlace && !vpc->v.psf) + s->field_order = vpc->v.tff ? AV_FIELD_TT : AV_FIELD_BB; + else + s->field_order = AV_FIELD_PROGRESSIVE; + break; } }