diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-08-01 21:10:43 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-08-01 21:10:43 +0200 |
commit | f95298c913899207344d668a6d5624cb2d2e480c (patch) | |
tree | 282a8f5315168a38b995bd9a2866d9f65d1cd758 /libavcodec | |
parent | 7f852962dc6aa681a7c5107d17ad4da03c4fb2ce (diff) |
avcodec/mpeg12dec: fix support for interlaced mpeg2 with missing last slice
Fixes Ticket3809
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/mpeg12dec.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index e78c54942b..27bb6e0809 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1884,6 +1884,14 @@ static int mpeg_decode_slice(MpegEncContext *s, int mb_y, } else goto eos; } + if (s->mb_y >= ((s->height + 15) >> 4) && + s->progressive_frame && + !s->progressive_sequence && + get_bits_left(&s->gb) <= 8 && + get_bits_left(&s->gb) >= 0 && + s->mb_skip_run == -1 && + show_bits(&s->gb, 8) == 0) + goto eos; ff_init_block_index(s); } |