Mercurial > libavcodec.hg
comparison smacker.c @ 5518:d2ef80f5fd7e libavcodec
use skip_bits where appropriate
| author | alex |
|---|---|
| date | Thu, 09 Aug 2007 00:57:36 +0000 |
| parents | 9f8219a3b86f |
| children | ca944f1db2b3 |
comparison
equal
deleted
inserted
replaced
| 5517:998ed46cfa66 | 5518:d2ef80f5fd7e |
|---|---|
| 199 memset(&vlc[0], 0, sizeof(VLC)); | 199 memset(&vlc[0], 0, sizeof(VLC)); |
| 200 memset(&vlc[1], 0, sizeof(VLC)); | 200 memset(&vlc[1], 0, sizeof(VLC)); |
| 201 | 201 |
| 202 if(get_bits1(gb)) { | 202 if(get_bits1(gb)) { |
| 203 smacker_decode_tree(gb, &tmp1, 0, 0); | 203 smacker_decode_tree(gb, &tmp1, 0, 0); |
| 204 get_bits1(gb); | 204 skip_bits1(gb); |
| 205 res = init_vlc(&vlc[0], SMKTREE_BITS, tmp1.length, | 205 res = init_vlc(&vlc[0], SMKTREE_BITS, tmp1.length, |
| 206 tmp1.lengths, sizeof(int), sizeof(int), | 206 tmp1.lengths, sizeof(int), sizeof(int), |
| 207 tmp1.bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE); | 207 tmp1.bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE); |
| 208 if(res < 0) { | 208 if(res < 0) { |
| 209 av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n"); | 209 av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n"); |
| 212 } else { | 212 } else { |
| 213 av_log(smk->avctx, AV_LOG_ERROR, "Skipping low bytes tree\n"); | 213 av_log(smk->avctx, AV_LOG_ERROR, "Skipping low bytes tree\n"); |
| 214 } | 214 } |
| 215 if(get_bits1(gb)){ | 215 if(get_bits1(gb)){ |
| 216 smacker_decode_tree(gb, &tmp2, 0, 0); | 216 smacker_decode_tree(gb, &tmp2, 0, 0); |
| 217 get_bits1(gb); | 217 skip_bits1(gb); |
| 218 res = init_vlc(&vlc[1], SMKTREE_BITS, tmp2.length, | 218 res = init_vlc(&vlc[1], SMKTREE_BITS, tmp2.length, |
| 219 tmp2.lengths, sizeof(int), sizeof(int), | 219 tmp2.lengths, sizeof(int), sizeof(int), |
| 220 tmp2.bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE); | 220 tmp2.bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE); |
| 221 if(res < 0) { | 221 if(res < 0) { |
| 222 av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n"); | 222 av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n"); |
| 248 huff.maxlength = 0; | 248 huff.maxlength = 0; |
| 249 huff.current = 0; | 249 huff.current = 0; |
| 250 huff.values = av_mallocz(huff.length * sizeof(int)); | 250 huff.values = av_mallocz(huff.length * sizeof(int)); |
| 251 | 251 |
| 252 smacker_decode_bigtree(gb, &huff, &ctx); | 252 smacker_decode_bigtree(gb, &huff, &ctx); |
| 253 get_bits1(gb); | 253 skip_bits1(gb); |
| 254 if(ctx.last[0] == -1) ctx.last[0] = huff.current++; | 254 if(ctx.last[0] == -1) ctx.last[0] = huff.current++; |
| 255 if(ctx.last[1] == -1) ctx.last[1] = huff.current++; | 255 if(ctx.last[1] == -1) ctx.last[1] = huff.current++; |
| 256 if(ctx.last[2] == -1) ctx.last[2] = huff.current++; | 256 if(ctx.last[2] == -1) ctx.last[2] = huff.current++; |
| 257 | 257 |
| 258 *recodes = huff.values; | 258 *recodes = huff.values; |
| 599 h[i].maxlength = 0; | 599 h[i].maxlength = 0; |
| 600 h[i].current = 0; | 600 h[i].current = 0; |
| 601 h[i].bits = av_mallocz(256 * 4); | 601 h[i].bits = av_mallocz(256 * 4); |
| 602 h[i].lengths = av_mallocz(256 * sizeof(int)); | 602 h[i].lengths = av_mallocz(256 * sizeof(int)); |
| 603 h[i].values = av_mallocz(256 * sizeof(int)); | 603 h[i].values = av_mallocz(256 * sizeof(int)); |
| 604 get_bits1(&gb); | 604 skip_bits1(&gb); |
| 605 smacker_decode_tree(&gb, &h[i], 0, 0); | 605 smacker_decode_tree(&gb, &h[i], 0, 0); |
| 606 get_bits1(&gb); | 606 skip_bits1(&gb); |
| 607 if(h[i].current > 1) { | 607 if(h[i].current > 1) { |
| 608 res = init_vlc(&vlc[i], SMKTREE_BITS, h[i].length, | 608 res = init_vlc(&vlc[i], SMKTREE_BITS, h[i].length, |
| 609 h[i].lengths, sizeof(int), sizeof(int), | 609 h[i].lengths, sizeof(int), sizeof(int), |
| 610 h[i].bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE); | 610 h[i].bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE); |
| 611 if(res < 0) { | 611 if(res < 0) { |
