libavcodec/mpegvideo_parser: improve detection of progressive mpeg2

Previously many progressive mpeg2video samples were detected as interlaced
by ffmpeg/ffprobe. For example, https://tmm1.s3.amazonaws.com/720p.ts

Before:

    Input #0, mpegts, from 'https://tmm1.s3.amazonaws.com/720p.ts':
      Duration: 00:00:08.62, start: 18974.073233, bitrate: 9734 kb/s
      Program 2
    	Stream #0:0[0x12eb]: Video: mpeg2video (Main), yuv420p(tv, bottom first), 1280x720 ...

After:

    Input #0, mpegts, from 'https://tmm1.s3.amazonaws.com/720p.ts':
      Duration: 00:00:08.62, start: 18974.073233, bitrate: 9734 kb/s
      Program 2
    	Stream #0:0[0x12eb]: Video: mpeg2video (Main), yuv420p(tv, progressive), 1280x720 ...

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Aman Gupta 2017-12-06 14:54:12 -08:00
parent 4280948702
commit 88e2dc7d04

View File

@ -131,7 +131,7 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
}
}
if (!pc->progressive_sequence) {
if (!pc->progressive_sequence && !progressive_frame) {
if (top_field_first)
s->field_order = AV_FIELD_TT;
else