Mercurial > libavcodec.hg
comparison nellymoserdec.c @ 11877:17092b43bd64 libavcodec
nellymoserdec: Simplify calculation of numbers of blocks
author | mstorsjo |
---|---|
date | Mon, 14 Jun 2010 14:06:38 +0000 |
parents | 612bb7ca8a88 |
children | 47885d4aeaaa |
comparison
equal
deleted
inserted
replaced
11876:612bb7ca8a88 | 11877:17092b43bd64 |
---|---|
164 samples = (int16_t*)data; | 164 samples = (int16_t*)data; |
165 | 165 |
166 if (buf_size < avctx->block_align) | 166 if (buf_size < avctx->block_align) |
167 return buf_size; | 167 return buf_size; |
168 | 168 |
169 switch (buf_size) { | |
170 case 64: // 8000Hz | |
171 blocks = 1; break; | |
172 case 128: // 11025Hz | |
173 blocks = 2; break; | |
174 case 192: // 16000Hz | |
175 blocks = 3; break; | |
176 case 256: // 22050Hz | |
177 blocks = 4; break; | |
178 case 512: // 44100Hz | |
179 blocks = 8; break; | |
180 default: | |
181 if (buf_size % 64) { | 169 if (buf_size % 64) { |
182 av_log(avctx, AV_LOG_DEBUG, "Tag size %d.\n", buf_size); | 170 av_log(avctx, AV_LOG_DEBUG, "Tag size %d.\n", buf_size); |
183 return buf_size; | 171 return buf_size; |
184 } | 172 } |
185 blocks = buf_size / 64; | 173 blocks = buf_size / 64; |
186 break; | 174 /* Normal numbers of blocks for sample rates: |
187 } | 175 * 8000 Hz - 1 |
176 * 11025 Hz - 2 | |
177 * 16000 Hz - 3 | |
178 * 22050 Hz - 4 | |
179 * 44100 Hz - 8 | |
180 */ | |
188 | 181 |
189 for (i=0 ; i<blocks ; i++) { | 182 for (i=0 ; i<blocks ; i++) { |
190 nelly_decode_block(s, &buf[i*NELLY_BLOCK_LEN], s->float_buf); | 183 nelly_decode_block(s, &buf[i*NELLY_BLOCK_LEN], s->float_buf); |
191 s->dsp.float_to_int16(&samples[i*NELLY_SAMPLES], s->float_buf, NELLY_SAMPLES); | 184 s->dsp.float_to_int16(&samples[i*NELLY_SAMPLES], s->float_buf, NELLY_SAMPLES); |
192 *data_size += NELLY_SAMPLES*sizeof(int16_t); | 185 *data_size += NELLY_SAMPLES*sizeof(int16_t); |