Commit af991d8f authored by michael's avatar michael

fix decoding of takethat.mp3


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@7812 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent ce43a739
...@@ -1747,9 +1747,9 @@ static int huffman_decode(MPADecodeContext *s, GranuleDef *g, ...@@ -1747,9 +1747,9 @@ static int huffman_decode(MPADecodeContext *s, GranuleDef *g,
s_index+=4; s_index+=4;
} }
/* skip extension bits */ /* skip extension bits */
bits_left = end_pos - get_bits_count(&s->gb); bits_left = end_pos2 - get_bits_count(&s->gb);
//av_log(NULL, AV_LOG_ERROR, "left:%d buf:%p\n", bits_left, s->in_gb.buffer); //av_log(NULL, AV_LOG_ERROR, "left:%d buf:%p\n", bits_left, s->in_gb.buffer);
if (bits_left < 0 || bits_left > 500) { if (bits_left < 0/* || bits_left > 500*/) {
av_log(NULL, AV_LOG_ERROR, "bits_left=%d\n", bits_left); av_log(NULL, AV_LOG_ERROR, "bits_left=%d\n", bits_left);
s_index=0; s_index=0;
}else if(bits_left > 0 && s->error_resilience >= FF_ER_AGGRESSIVE){ }else if(bits_left > 0 && s->error_resilience >= FF_ER_AGGRESSIVE){
...@@ -1759,6 +1759,14 @@ static int huffman_decode(MPADecodeContext *s, GranuleDef *g, ...@@ -1759,6 +1759,14 @@ static int huffman_decode(MPADecodeContext *s, GranuleDef *g,
memset(&g->sb_hybrid[s_index], 0, sizeof(*g->sb_hybrid)*(576 - s_index)); memset(&g->sb_hybrid[s_index], 0, sizeof(*g->sb_hybrid)*(576 - s_index));
skip_bits_long(&s->gb, bits_left); skip_bits_long(&s->gb, bits_left);
i= get_bits_count(&s->gb);
if(s->in_gb.buffer && i >= s->gb.size_in_bits){
s->gb= s->in_gb;
s->in_gb.buffer=NULL;
assert((get_bits_count(&s->gb) & 7) == 0);
skip_bits_long(&s->gb, i - end_pos);
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment