summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/h263.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/h263.c b/libavcodec/h263.c
index d6da47ad48..316751269a 100644
--- a/libavcodec/h263.c
+++ b/libavcodec/h263.c
@@ -2499,6 +2499,11 @@ static int mpeg4_decode_video_packet_header(MpegEncContext *s)
fprintf(stderr, "illegal mb_num in video packet (%d %d) \n", mb_num, s->mb_num);
return -1;
}
+ if(s->pict_type == B_TYPE){
+ while(s->next_picture.mbskip_table[ mb_num ]) mb_num++;
+ if(mb_num >= s->mb_num) return -1; // slice contains just skiped MBs which where allready decoded
+ }
+
s->mb_x= mb_num % s->mb_width;
s->mb_y= mb_num / s->mb_width;