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);