summaryrefslogtreecommitdiff
path: root/apps/codecs/libmad/frame.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libmad/frame.c')
-rw-r--r--apps/codecs/libmad/frame.c62
1 files changed, 31 insertions, 31 deletions
diff --git a/apps/codecs/libmad/frame.c b/apps/codecs/libmad/frame.c
index 3fb971d3e1..85c2a201f7 100644
--- a/apps/codecs/libmad/frame.c
+++ b/apps/codecs/libmad/frame.c
@@ -61,8 +61,8 @@ int (*const decoder_table[3])(struct mad_stream *, struct mad_frame *) = {
61}; 61};
62 62
63/* 63/*
64 * NAME: header->init() 64 * NAME: header->init()
65 * DESCRIPTION: initialize header struct 65 * DESCRIPTION: initialize header struct
66 */ 66 */
67void mad_header_init(struct mad_header *header) 67void mad_header_init(struct mad_header *header)
68{ 68{
@@ -84,8 +84,8 @@ void mad_header_init(struct mad_header *header)
84} 84}
85 85
86/* 86/*
87 * NAME: frame->init() 87 * NAME: frame->init()
88 * DESCRIPTION: initialize frame struct 88 * DESCRIPTION: initialize frame struct
89 */ 89 */
90void mad_frame_init(struct mad_frame *frame) 90void mad_frame_init(struct mad_frame *frame)
91{ 91{
@@ -98,8 +98,8 @@ void mad_frame_init(struct mad_frame *frame)
98} 98}
99 99
100/* 100/*
101 * NAME: frame->finish() 101 * NAME: frame->finish()
102 * DESCRIPTION: deallocate any dynamic memory associated with frame 102 * DESCRIPTION: deallocate any dynamic memory associated with frame
103 */ 103 */
104void mad_frame_finish(struct mad_frame *frame) 104void mad_frame_finish(struct mad_frame *frame)
105{ 105{
@@ -112,8 +112,8 @@ void mad_frame_finish(struct mad_frame *frame)
112} 112}
113 113
114/* 114/*
115 * NAME: decode_header() 115 * NAME: decode_header()
116 * DESCRIPTION: read header data and following CRC word 116 * DESCRIPTION: read header data and following CRC word
117 */ 117 */
118static 118static
119int decode_header(struct mad_header *header, struct mad_stream *stream) 119int decode_header(struct mad_header *header, struct mad_stream *stream)
@@ -231,8 +231,8 @@ int decode_header(struct mad_header *header, struct mad_stream *stream)
231} 231}
232 232
233/* 233/*
234 * NAME: free_bitrate() 234 * NAME: free_bitrate()
235 * DESCRIPTION: attempt to discover the bitstream's free bitrate 235 * DESCRIPTION: attempt to discover the bitstream's free bitrate
236 */ 236 */
237static 237static
238int free_bitrate(struct mad_stream *stream, struct mad_header const *header) 238int free_bitrate(struct mad_stream *stream, struct mad_header const *header)
@@ -246,7 +246,7 @@ int free_bitrate(struct mad_stream *stream, struct mad_header const *header)
246 246
247 pad_slot = (header->flags & MAD_FLAG_PADDING) ? 1 : 0; 247 pad_slot = (header->flags & MAD_FLAG_PADDING) ? 1 : 0;
248 slots_per_frame = (header->layer == MAD_LAYER_III && 248 slots_per_frame = (header->layer == MAD_LAYER_III &&
249 (header->flags & MAD_FLAG_LSF_EXT)) ? 72 : 144; 249 (header->flags & MAD_FLAG_LSF_EXT)) ? 72 : 144;
250 250
251 while (mad_stream_sync(stream) == 0) { 251 while (mad_stream_sync(stream) == 0) {
252 struct mad_stream peek_stream; 252 struct mad_stream peek_stream;
@@ -256,8 +256,8 @@ int free_bitrate(struct mad_stream *stream, struct mad_header const *header)
256 peek_header = *header; 256 peek_header = *header;
257 257
258 if (decode_header(&peek_header, &peek_stream) == 0 && 258 if (decode_header(&peek_header, &peek_stream) == 0 &&
259 peek_header.layer == header->layer && 259 peek_header.layer == header->layer &&
260 peek_header.samplerate == header->samplerate) { 260 peek_header.samplerate == header->samplerate) {
261 unsigned int N; 261 unsigned int N;
262 262
263 ptr = mad_bit_nextbyte(&stream->ptr); 263 ptr = mad_bit_nextbyte(&stream->ptr);
@@ -265,16 +265,16 @@ int free_bitrate(struct mad_stream *stream, struct mad_header const *header)
265 N = ptr - stream->this_frame; 265 N = ptr - stream->this_frame;
266 266
267 if (header->layer == MAD_LAYER_I) { 267 if (header->layer == MAD_LAYER_I) {
268 rate = (unsigned long) header->samplerate * 268 rate = (unsigned long) header->samplerate *
269 (N - 4 * pad_slot + 4) / 48 / 1000; 269 (N - 4 * pad_slot + 4) / 48 / 1000;
270 } 270 }
271 else { 271 else {
272 rate = (unsigned long) header->samplerate * 272 rate = (unsigned long) header->samplerate *
273 (N - pad_slot + 1) / slots_per_frame / 1000; 273 (N - pad_slot + 1) / slots_per_frame / 1000;
274 } 274 }
275 275
276 if (rate >= 8) 276 if (rate >= 8)
277 break; 277 break;
278 } 278 }
279 279
280 mad_bit_skip(&stream->ptr, 8); 280 mad_bit_skip(&stream->ptr, 8);
@@ -293,8 +293,8 @@ int free_bitrate(struct mad_stream *stream, struct mad_header const *header)
293} 293}
294 294
295/* 295/*
296 * NAME: header->decode() 296 * NAME: header->decode()
297 * DESCRIPTION: read the next frame header from the stream 297 * DESCRIPTION: read the next frame header from the stream
298 */ 298 */
299int mad_header_decode(struct mad_header *header, struct mad_stream *stream) 299int mad_header_decode(struct mad_header *header, struct mad_stream *stream)
300{ 300{
@@ -351,7 +351,7 @@ int mad_header_decode(struct mad_header *header, struct mad_stream *stream)
351 351
352 if (mad_stream_sync(stream) == -1) { 352 if (mad_stream_sync(stream) == -1) {
353 if (end - stream->next_frame >= MAD_BUFFER_GUARD) 353 if (end - stream->next_frame >= MAD_BUFFER_GUARD)
354 stream->next_frame = end - MAD_BUFFER_GUARD; 354 stream->next_frame = end - MAD_BUFFER_GUARD;
355 355
356 stream->error = MAD_ERROR_BUFLEN; 356 stream->error = MAD_ERROR_BUFLEN;
357 goto fail; 357 goto fail;
@@ -371,13 +371,13 @@ int mad_header_decode(struct mad_header *header, struct mad_stream *stream)
371 371
372 /* calculate frame duration */ 372 /* calculate frame duration */
373 mad_timer_set(&header->duration, 0, 373 mad_timer_set(&header->duration, 0,
374 32 * MAD_NSBSAMPLES(header), header->samplerate); 374 32 * MAD_NSBSAMPLES(header), header->samplerate);
375 375
376 /* calculate free bit rate */ 376 /* calculate free bit rate */
377 if (header->bitrate == 0) { 377 if (header->bitrate == 0) {
378 if ((stream->freerate == 0 || !stream->sync || 378 if ((stream->freerate == 0 || !stream->sync ||
379 (header->layer == MAD_LAYER_III && stream->freerate > 640000)) && 379 (header->layer == MAD_LAYER_III && stream->freerate > 640000)) &&
380 free_bitrate(stream, header) == -1) 380 free_bitrate(stream, header) == -1)
381 goto fail; 381 goto fail;
382 382
383 header->bitrate = stream->freerate; 383 header->bitrate = stream->freerate;
@@ -393,7 +393,7 @@ int mad_header_decode(struct mad_header *header, struct mad_stream *stream)
393 unsigned int slots_per_frame; 393 unsigned int slots_per_frame;
394 394
395 slots_per_frame = (header->layer == MAD_LAYER_III && 395 slots_per_frame = (header->layer == MAD_LAYER_III &&
396 (header->flags & MAD_FLAG_LSF_EXT)) ? 72 : 144; 396 (header->flags & MAD_FLAG_LSF_EXT)) ? 72 : 144;
397 397
398 N = (slots_per_frame * header->bitrate / header->samplerate) + pad_slot; 398 N = (slots_per_frame * header->bitrate / header->samplerate) + pad_slot;
399 } 399 }
@@ -431,8 +431,8 @@ int mad_header_decode(struct mad_header *header, struct mad_stream *stream)
431} 431}
432 432
433/* 433/*
434 * NAME: frame->decode() 434 * NAME: frame->decode()
435 * DESCRIPTION: decode a single frame from a bitstream 435 * DESCRIPTION: decode a single frame from a bitstream
436 */ 436 */
437int mad_frame_decode(struct mad_frame *frame, struct mad_stream *stream) 437int mad_frame_decode(struct mad_frame *frame, struct mad_stream *stream)
438{ 438{
@@ -479,8 +479,8 @@ int mad_frame_decode(struct mad_frame *frame, struct mad_stream *stream)
479} 479}
480 480
481/* 481/*
482 * NAME: frame->mute() 482 * NAME: frame->mute()
483 * DESCRIPTION: zero all subband values so the frame becomes silent 483 * DESCRIPTION: zero all subband values so the frame becomes silent
484 */ 484 */
485void mad_frame_mute(struct mad_frame *frame) 485void mad_frame_mute(struct mad_frame *frame)
486{ 486{
@@ -496,8 +496,8 @@ void mad_frame_mute(struct mad_frame *frame)
496 if (frame->overlap) { 496 if (frame->overlap) {
497 for (s = 0; s < 18; ++s) { 497 for (s = 0; s < 18; ++s) {
498 for (sb = 0; sb < 32; ++sb) { 498 for (sb = 0; sb < 32; ++sb) {
499 (*frame->overlap)[0][sb][s] = 499 (*frame->overlap)[0][sb][s] =
500 (*frame->overlap)[1][sb][s] = 0; 500 (*frame->overlap)[1][sb][s] = 0;
501 } 501 }
502 } 502 }
503 } 503 }