From 81d8bad786819d8358058fd716f94279c3ccc5eb Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 1 Aug 2014 21:10:43 +0200 Subject: [PATCH] avcodec/mpeg12dec: fix support for interlaced mpeg2 with missing last slice Fixes Ticket3809 Signed-off-by: Michael Niedermayer (cherry picked from commit f95298c913899207344d668a6d5624cb2d2e480c) Signed-off-by: Michael Niedermayer --- libavcodec/mpeg12dec.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 1f89830519..a464556aea 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1878,6 +1878,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); }