OSDN Git Service

Fix mpeg4 padding bug detection with more than 128bit trash and slices.
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 1 Jul 2011 00:51:10 +0000 (02:51 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 1 Jul 2011 01:04:46 +0000 (03:04 +0200)
Fixes ticket302
The second hunk is from anatoly

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/h263dec.c
libavcodec/mpeg4videodec.c

index f079557..7b42046 100644 (file)
@@ -269,7 +269,7 @@ static int decode_slice(MpegEncContext *s){
     if(      s->codec_id==CODEC_ID_MPEG4
        &&   (s->workaround_bugs&FF_BUG_AUTODETECT)
        &&    get_bits_left(&s->gb) >=0
-       &&    get_bits_left(&s->gb) < 48
+       &&    get_bits_left(&s->gb) < 137
 //       &&   !s->resync_marker
        &&   !s->data_partitioning){
 
index 6b7b4bf..7cc30c2 100644 (file)
@@ -113,7 +113,7 @@ static inline int mpeg4_is_resync(MpegEncContext *s){
     int bits_count= get_bits_count(&s->gb);
     int v= show_bits(&s->gb, 16);
 
-    if(s->workaround_bugs&FF_BUG_NO_PADDING){
+    if(s->workaround_bugs&FF_BUG_NO_PADDING && !s->resync_marker){
         return 0;
     }