Mercurial > libavcodec.hg
comparison mpegaudiodec.c @ 4468:5455cb5a759c libavcodec
fix decoding of takethat.mp3
author | michael |
---|---|
date | Sat, 03 Feb 2007 12:42:12 +0000 |
parents | aabfa0a58cb0 |
children | a2e82396193c |
comparison
equal
deleted
inserted
replaced
4467:a9f64d2a2e69 | 4468:5455cb5a759c |
---|---|
1745 g->sb_hybrid[pos] = v; | 1745 g->sb_hybrid[pos] = v; |
1746 } | 1746 } |
1747 s_index+=4; | 1747 s_index+=4; |
1748 } | 1748 } |
1749 /* skip extension bits */ | 1749 /* skip extension bits */ |
1750 bits_left = end_pos - get_bits_count(&s->gb); | 1750 bits_left = end_pos2 - get_bits_count(&s->gb); |
1751 //av_log(NULL, AV_LOG_ERROR, "left:%d buf:%p\n", bits_left, s->in_gb.buffer); | 1751 //av_log(NULL, AV_LOG_ERROR, "left:%d buf:%p\n", bits_left, s->in_gb.buffer); |
1752 if (bits_left < 0 || bits_left > 500) { | 1752 if (bits_left < 0/* || bits_left > 500*/) { |
1753 av_log(NULL, AV_LOG_ERROR, "bits_left=%d\n", bits_left); | 1753 av_log(NULL, AV_LOG_ERROR, "bits_left=%d\n", bits_left); |
1754 s_index=0; | 1754 s_index=0; |
1755 }else if(bits_left > 0 && s->error_resilience >= FF_ER_AGGRESSIVE){ | 1755 }else if(bits_left > 0 && s->error_resilience >= FF_ER_AGGRESSIVE){ |
1756 av_log(NULL, AV_LOG_ERROR, "bits_left=%d\n", bits_left); | 1756 av_log(NULL, AV_LOG_ERROR, "bits_left=%d\n", bits_left); |
1757 s_index=0; | 1757 s_index=0; |
1758 } | 1758 } |
1759 memset(&g->sb_hybrid[s_index], 0, sizeof(*g->sb_hybrid)*(576 - s_index)); | 1759 memset(&g->sb_hybrid[s_index], 0, sizeof(*g->sb_hybrid)*(576 - s_index)); |
1760 skip_bits_long(&s->gb, bits_left); | 1760 skip_bits_long(&s->gb, bits_left); |
1761 | |
1762 i= get_bits_count(&s->gb); | |
1763 if(s->in_gb.buffer && i >= s->gb.size_in_bits){ | |
1764 s->gb= s->in_gb; | |
1765 s->in_gb.buffer=NULL; | |
1766 assert((get_bits_count(&s->gb) & 7) == 0); | |
1767 skip_bits_long(&s->gb, i - end_pos); | |
1768 } | |
1761 | 1769 |
1762 return 0; | 1770 return 0; |
1763 } | 1771 } |
1764 | 1772 |
1765 /* Reorder short blocks from bitstream order to interleaved order. It | 1773 /* Reorder short blocks from bitstream order to interleaved order. It |