[FFmpeg-cvslog] avcodec/mpeg12dec: fix support for interlaced mpeg2 with missing last slice

Michael Niedermayer git at videolan.org
Sun Aug 10 23:33:03 CEST 2014


ffmpeg | branch: release/2.3 | Michael Niedermayer <michaelni at gmx.at> | Fri Aug  1 21:10:43 2014 +0200| [d6173ae341fabacf05608ceb7470d24befdbdc68] | committer: Michael Niedermayer

avcodec/mpeg12dec: fix support for interlaced mpeg2 with missing last slice

Fixes Ticket3809

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit f95298c913899207344d668a6d5624cb2d2e480c)

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d6173ae341fabacf05608ceb7470d24befdbdc68
---

 libavcodec/mpeg12dec.c |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index fcc1d4c..0eecb7d 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);
         }



More information about the ffmpeg-cvslog mailing list