aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-07-01 02:51:10 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-07-01 03:04:46 +0200
commit9251942ca728e7807a2a95306415b27b36a8b8e7 (patch)
tree1d65d4646f8d2e057739734d73374052ab822399
parent315f0e3fd8dcbd1362276b7407dad2e97cccc4b7 (diff)
downloadffmpeg-9251942ca728e7807a2a95306415b27b36a8b8e7.tar.gz
Fix mpeg4 padding bug detection with more than 128bit trash and slices.
Fixes ticket302 The second hunk is from anatoly Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/h263dec.c2
-rw-r--r--libavcodec/mpeg4videodec.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index f079557759..7b42046843 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -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){
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 6b7b4bfbc0..7cc30c2bf5 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -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;
}