Mercurial > libavcodec.hg
comparison wmadec.c @ 1025:1f9afd8b9131 libavcodec
GetBitContext.size is allways multiplied by 8 -> use size_in_bits to avoid useless *8 in a few inner loops
author | michaelni |
---|---|
date | Tue, 21 Jan 2003 17:34:12 +0000 |
parents | 19419cb268fe |
children | 19de1445beb2 |
comparison
equal
deleted
inserted
replaced
1024:9cc1031e1864 | 1025:1f9afd8b9131 |
---|---|
1224 | 1224 |
1225 trace("***decode_superframe:\n"); | 1225 trace("***decode_superframe:\n"); |
1226 | 1226 |
1227 samples = data; | 1227 samples = data; |
1228 | 1228 |
1229 init_get_bits(&s->gb, buf, buf_size); | 1229 init_get_bits(&s->gb, buf, buf_size*8); |
1230 | 1230 |
1231 if (s->use_bit_reservoir) { | 1231 if (s->use_bit_reservoir) { |
1232 /* read super frame header */ | 1232 /* read super frame header */ |
1233 get_bits(&s->gb, 4); /* super frame index */ | 1233 get_bits(&s->gb, 4); /* super frame index */ |
1234 nb_frames = get_bits(&s->gb, 4) - 1; | 1234 nb_frames = get_bits(&s->gb, 4) - 1; |
1250 if (len > 0) { | 1250 if (len > 0) { |
1251 *q++ = (get_bits)(&s->gb, len) << (8 - len); | 1251 *q++ = (get_bits)(&s->gb, len) << (8 - len); |
1252 } | 1252 } |
1253 | 1253 |
1254 /* XXX: bit_offset bits into last frame */ | 1254 /* XXX: bit_offset bits into last frame */ |
1255 init_get_bits(&s->gb, s->last_superframe, MAX_CODED_SUPERFRAME_SIZE); | 1255 init_get_bits(&s->gb, s->last_superframe, MAX_CODED_SUPERFRAME_SIZE*8); |
1256 /* skip unused bits */ | 1256 /* skip unused bits */ |
1257 if (s->last_bitoffset > 0) | 1257 if (s->last_bitoffset > 0) |
1258 skip_bits(&s->gb, s->last_bitoffset); | 1258 skip_bits(&s->gb, s->last_bitoffset); |
1259 /* this frame is stored in the last superframe and in the | 1259 /* this frame is stored in the last superframe and in the |
1260 current one */ | 1260 current one */ |
1263 samples += s->nb_channels * s->frame_len; | 1263 samples += s->nb_channels * s->frame_len; |
1264 } | 1264 } |
1265 | 1265 |
1266 /* read each frame starting from bit_offset */ | 1266 /* read each frame starting from bit_offset */ |
1267 pos = bit_offset + 4 + 4 + s->byte_offset_bits + 3; | 1267 pos = bit_offset + 4 + 4 + s->byte_offset_bits + 3; |
1268 init_get_bits(&s->gb, buf + (pos >> 3), MAX_CODED_SUPERFRAME_SIZE - (pos >> 3)); | 1268 init_get_bits(&s->gb, buf + (pos >> 3), (MAX_CODED_SUPERFRAME_SIZE - (pos >> 3))*8); |
1269 len = pos & 7; | 1269 len = pos & 7; |
1270 if (len > 0) | 1270 if (len > 0) |
1271 skip_bits(&s->gb, len); | 1271 skip_bits(&s->gb, len); |
1272 | 1272 |
1273 s->reset_block_lengths = 1; | 1273 s->reset_block_lengths = 1; |