Lines Matching refs:decoder

53 static int pvmp3_parse_header(pvmp3_decoder_t *decoder, uint32_t header)  in pvmp3_parse_header()  argument
95 decoder->bitrate = (version == 3) ? in pvmp3_parse_header()
98 decoder->frame_size = (12000 * decoder->bitrate / sample_rate + padding) * 4; in pvmp3_parse_header()
102 decoder->frame_samples = 384; in pvmp3_parse_header()
122 decoder->bitrate = (layer == 2 /* L2 */) ? bitrate_v1_l2[bitrate_idx - 1] in pvmp3_parse_header()
124 decoder->frame_samples = 1152; in pvmp3_parse_header()
127 decoder->bitrate = bitrate_v2[bitrate_idx - 1]; in pvmp3_parse_header()
128 decoder->frame_samples = (layer == 1 /* L3 */) ? 576 : 1152; in pvmp3_parse_header()
133 decoder->frame_size = 144000 * decoder->bitrate / sample_rate + padding; in pvmp3_parse_header()
141 decoder->frame_size = tmp * decoder->bitrate / sample_rate + padding; in pvmp3_parse_header()
149 decoder->rate = sample_rate; in pvmp3_parse_header()
150 decoder->channels = (((header >> 6) & 3) == 3) ? 1 : 2; in pvmp3_parse_header()
162 pvmp3_decoder_t *decoder = mdecoder->decoder; in pvmp3_frame_locate() local
165 if (decoder->proc_sum == 0) { in pvmp3_frame_locate()
169 if (len - decoder->pos < sizeof(ID3_desc)) { in pvmp3_frame_locate()
170 mdecoder->unproc_size = len - decoder->pos; in pvmp3_frame_locate()
175 memcpy(ID3_desc, buffer + decoder->pos, sizeof(ID3_desc)); in pvmp3_frame_locate()
185 decoder->skip_id3_size = ID3_size; in pvmp3_frame_locate()
190 skip_size = MIN(decoder->skip_id3_size, (len - decoder->pos)); in pvmp3_frame_locate()
191 decoder->skip_id3_size -= skip_size; in pvmp3_frame_locate()
192 decoder->proc_sum += skip_size; in pvmp3_frame_locate()
193 decoder->pos += skip_size; in pvmp3_frame_locate()
194 if (decoder->pos >= len) { in pvmp3_frame_locate()
201 if (decoder->skip_id3_size > 0) { in pvmp3_frame_locate()
202 skip_size = MIN(decoder->skip_id3_size, (len - decoder->pos)); in pvmp3_frame_locate()
203 decoder->skip_id3_size -= skip_size; in pvmp3_frame_locate()
204 decoder->pos += skip_size; in pvmp3_frame_locate()
205 decoder->proc_sum += skip_size; in pvmp3_frame_locate()
206 if (decoder->pos >= len) { in pvmp3_frame_locate()
218 int frame_pos = decoder->pos; in pvmp3_frame_locate()
231 decoder->proc_sum += frame_pos - decoder->pos; in pvmp3_frame_locate()
241 if (decoder->fixed_header != 0 && in pvmp3_frame_locate()
242 (header & FRAME_HEADER_MASK) != (decoder->fixed_header & FRAME_HEADER_MASK)) { in pvmp3_frame_locate()
247 if (pvmp3_parse_header(decoder, header)) { in pvmp3_frame_locate()
258 frame_size_bak = decoder->frame_size; in pvmp3_frame_locate()
263 next_frame_pos += decoder->frame_size; in pvmp3_frame_locate()
267 decoder->proc_sum += frame_pos - decoder->pos; in pvmp3_frame_locate()
277 if (decoder->fixed_header != 0 && in pvmp3_frame_locate()
278 (next_header & FRAME_HEADER_MASK) != (decoder->fixed_header & FRAME_HEADER_MASK)) { in pvmp3_frame_locate()
284 if (pvmp3_parse_header(decoder, next_header)) { in pvmp3_frame_locate()
294 if (decoder->fixed_header == 0) { in pvmp3_frame_locate()
295 decoder->fixed_header = header; in pvmp3_frame_locate()
299 decoder->frame_size = frame_size_bak; in pvmp3_frame_locate()
300 decoder->frame_ptr = buffer + frame_pos; in pvmp3_frame_locate()
301 decoder->proc_sum += frame_pos + decoder->frame_size - decoder->pos; in pvmp3_frame_locate()
302 decoder->pos = frame_pos + decoder->frame_size; in pvmp3_frame_locate()
303 mdecoder->unproc_size = len - decoder->pos; in pvmp3_frame_locate()
323 pvmp3_decoder_t *decoder = mdecoder->decoder; in pvmp3_decoder_reset() local
324 if (!decoder) { in pvmp3_decoder_reset()
329 decoder->bitrate = 0; in pvmp3_decoder_reset()
330 decoder->channels = 0; in pvmp3_decoder_reset()
331 decoder->rate = 0; in pvmp3_decoder_reset()
332 decoder->pos = 0; in pvmp3_decoder_reset()
333 decoder->proc_sum = 0; in pvmp3_decoder_reset()
334 decoder->skip_id3_size = 0; in pvmp3_decoder_reset()
335 decoder->frame_ptr = NULL; in pvmp3_decoder_reset()
336 decoder->fixed_header = 0; in pvmp3_decoder_reset()
337 decoder->frame_samples = 0; in pvmp3_decoder_reset()
338 decoder->frame_size = 0; in pvmp3_decoder_reset()
340 pvmp3_resetDecoder(decoder->handler); in pvmp3_decoder_reset()
354 pvmp3_decoder_t *decoder = mdecoder->decoder; in pvmp3_decoder_process() local
355 if (!decoder) { in pvmp3_decoder_process()
360 tPVMP3DecoderExternal *config = decoder->config; in pvmp3_decoder_process()
366 decoder->pos = 0; in pvmp3_decoder_process()
382 config->inputBufferCurrentLength = nbytes - (decoder->frame_ptr - buffer); in pvmp3_decoder_process()
383 config->pInputBuffer = decoder->frame_ptr; in pvmp3_decoder_process()
384 config->inputBufferMaxLength = nbytes - (decoder->frame_ptr - buffer); in pvmp3_decoder_process()
389 ret = pvmp3_framedecoder(config, decoder->handler); in pvmp3_decoder_process()
448 pvmp3_decoder_t *decoder; in pvmp3_decoder_create() local
456 decoder = snd_zalloc( in pvmp3_decoder_create()
458 if (!decoder) { in pvmp3_decoder_create()
463 decoder->config = snd_zalloc( in pvmp3_decoder_create()
465 if (!decoder->config) { in pvmp3_decoder_create()
467 snd_free(decoder); in pvmp3_decoder_create()
471 decoder->config->equalizerType = flat; in pvmp3_decoder_create()
472 decoder->config->crcEnabled = false; in pvmp3_decoder_create()
476 decoder->handler = snd_zalloc(mem_size, AFM_MAIN); in pvmp3_decoder_create()
477 if (!decoder->handler) { in pvmp3_decoder_create()
479 snd_free(decoder->config); in pvmp3_decoder_create()
480 snd_free(decoder); in pvmp3_decoder_create()
484 pvmp3_InitDecoder(decoder->config, decoder->handler); in pvmp3_decoder_create()
489 mdecoder->decoder = decoder; in pvmp3_decoder_create()
497 pvmp3_decoder_t *decoder; in pvmp3_decoder_release() local
504 decoder = mdecoder->decoder; in pvmp3_decoder_release()
505 if (!decoder) { in pvmp3_decoder_release()
510 snd_free(decoder->handler); in pvmp3_decoder_release()
511 snd_free(decoder->config); in pvmp3_decoder_release()
512 snd_free(decoder); in pvmp3_decoder_release()
513 mdecoder->decoder = NULL; in pvmp3_decoder_release()