Mercurial > libavcodec.hg
comparison vp3.c @ 8770:f14d50df103f libavcodec
VP3: Do not ignore error from read_huffman_tree().
author | alexc |
---|---|
date | Mon, 09 Feb 2009 01:39:33 +0000 |
parents | f973fff63599 |
children | 043574c5c153 |
comparison
equal
deleted
inserted
replaced
8769:6fc3497dc81f | 8770:f14d50df103f |
---|---|
2012 av_log(avctx, AV_LOG_ERROR, "huffman tree overflow\n"); | 2012 av_log(avctx, AV_LOG_ERROR, "huffman tree overflow\n"); |
2013 return -1; | 2013 return -1; |
2014 } | 2014 } |
2015 s->huff_code_size++; | 2015 s->huff_code_size++; |
2016 s->hbits <<= 1; | 2016 s->hbits <<= 1; |
2017 read_huffman_tree(avctx, gb); | 2017 if (read_huffman_tree(avctx, gb)) |
2018 return -1; | |
2018 s->hbits |= 1; | 2019 s->hbits |= 1; |
2019 read_huffman_tree(avctx, gb); | 2020 if (read_huffman_tree(avctx, gb)) |
2021 return -1; | |
2020 s->hbits >>= 1; | 2022 s->hbits >>= 1; |
2021 s->huff_code_size--; | 2023 s->huff_code_size--; |
2022 } | 2024 } |
2023 return 0; | 2025 return 0; |
2024 } | 2026 } |
2190 for (s->hti = 0; s->hti < 80; s->hti++) { | 2192 for (s->hti = 0; s->hti < 80; s->hti++) { |
2191 s->entries = 0; | 2193 s->entries = 0; |
2192 s->huff_code_size = 1; | 2194 s->huff_code_size = 1; |
2193 if (!get_bits1(gb)) { | 2195 if (!get_bits1(gb)) { |
2194 s->hbits = 0; | 2196 s->hbits = 0; |
2195 read_huffman_tree(avctx, gb); | 2197 if(read_huffman_tree(avctx, gb)) |
2198 return -1; | |
2196 s->hbits = 1; | 2199 s->hbits = 1; |
2197 read_huffman_tree(avctx, gb); | 2200 if(read_huffman_tree(avctx, gb)) |
2201 return -1; | |
2198 } | 2202 } |
2199 } | 2203 } |
2200 | 2204 |
2201 s->theora_tables = 1; | 2205 s->theora_tables = 1; |
2202 | 2206 |
2248 case 0x81: | 2252 case 0x81: |
2249 // FIXME: is this needed? it breaks sometimes | 2253 // FIXME: is this needed? it breaks sometimes |
2250 // theora_decode_comments(avctx, gb); | 2254 // theora_decode_comments(avctx, gb); |
2251 break; | 2255 break; |
2252 case 0x82: | 2256 case 0x82: |
2253 theora_decode_tables(avctx, &gb); | 2257 if (theora_decode_tables(avctx, &gb)) |
2258 return -1; | |
2254 break; | 2259 break; |
2255 default: | 2260 default: |
2256 av_log(avctx, AV_LOG_ERROR, "Unknown Theora config packet: %d\n", ptype&~0x80); | 2261 av_log(avctx, AV_LOG_ERROR, "Unknown Theora config packet: %d\n", ptype&~0x80); |
2257 break; | 2262 break; |
2258 } | 2263 } |