Move "slice below image" check from mpeg_decode_slice to its caller.
Should fix issue1277. Originally committed as revision 20676 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -1673,10 +1673,7 @@ static int mpeg_decode_slice(Mpeg1Context *s1, int mb_y,
|
|||||||
s->resync_mb_x=
|
s->resync_mb_x=
|
||||||
s->resync_mb_y= -1;
|
s->resync_mb_y= -1;
|
||||||
|
|
||||||
if (mb_y >= s->mb_height){
|
assert(mb_y < s->mb_height);
|
||||||
av_log(s->avctx, AV_LOG_ERROR, "slice below image (%d >= %d)\n", mb_y, s->mb_height);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
init_get_bits(&s->gb, *buf, buf_size*8);
|
init_get_bits(&s->gb, *buf, buf_size*8);
|
||||||
|
|
||||||
@@ -2390,6 +2387,11 @@ static int decode_chunks(AVCodecContext *avctx,
|
|||||||
if(s2->picture_structure == PICT_BOTTOM_FIELD)
|
if(s2->picture_structure == PICT_BOTTOM_FIELD)
|
||||||
mb_y++;
|
mb_y++;
|
||||||
|
|
||||||
|
if (mb_y >= s2->mb_height){
|
||||||
|
av_log(s2->avctx, AV_LOG_ERROR, "slice below image (%d >= %d)\n", mb_y, s2->mb_height);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if(s2->last_picture_ptr==NULL){
|
if(s2->last_picture_ptr==NULL){
|
||||||
/* Skip B-frames if we do not have reference frames and gop is not closed */
|
/* Skip B-frames if we do not have reference frames and gop is not closed */
|
||||||
if(s2->pict_type==FF_B_TYPE){
|
if(s2->pict_type==FF_B_TYPE){
|
||||||
|
Reference in New Issue
Block a user