Mercurial > libavcodec.hg
comparison atrac3.c @ 4865:086291824752 libavcodec
Deobfuscade decodeTonalComponents calling logic.
author | banan |
---|---|
date | Wed, 18 Apr 2007 19:58:20 +0000 |
parents | 5af8895c2805 |
children | 91906ea3337f |
comparison
equal
deleted
inserted
replaced
4864:c35500bc52b1 | 4865:086291824752 |
---|---|
407 | 407 |
408 /** | 408 /** |
409 * Restore the quantized tonal components | 409 * Restore the quantized tonal components |
410 * | 410 * |
411 * @param gb the GetBit context | 411 * @param gb the GetBit context |
412 * @param numComponents tonal components to report back | |
413 * @param pComponent tone component | 412 * @param pComponent tone component |
414 * @param numBands amount of coded bands | 413 * @param numBands amount of coded bands |
415 */ | 414 */ |
416 | 415 |
417 static int decodeTonalComponents (GetBitContext *gb, int *numComponents, tonal_component *pComponent, int numBands) | 416 static int decodeTonalComponents (GetBitContext *gb, tonal_component *pComponent, int numBands) |
418 { | 417 { |
419 int i,j,k,cnt; | 418 int i,j,k,cnt; |
420 int component_count, components, coding_mode_selector, coding_mode, coded_values_per_component; | 419 int components, coding_mode_selector, coding_mode, coded_values_per_component; |
421 int sfIndx, coded_values, max_coded_values, quant_step_index, coded_components; | 420 int sfIndx, coded_values, max_coded_values, quant_step_index, coded_components; |
422 int band_flags[4], mantissa[8]; | 421 int band_flags[4], mantissa[8]; |
423 float *pCoef; | 422 float *pCoef; |
424 float scalefactor; | 423 float scalefactor; |
425 | 424 int component_count = 0; |
426 component_count = 0; | |
427 *numComponents = 0; | |
428 | 425 |
429 components = get_bits(gb,5); | 426 components = get_bits(gb,5); |
430 | 427 |
431 /* no tonal components */ | 428 /* no tonal components */ |
432 if (components == 0) | 429 if (components == 0) |
478 component_count++; | 475 component_count++; |
479 } | 476 } |
480 } | 477 } |
481 } | 478 } |
482 | 479 |
483 *numComponents = component_count; | 480 return component_count; |
484 | |
485 return 0; | |
486 } | 481 } |
487 | 482 |
488 /** | 483 /** |
489 * Decode gain parameters for the coded bands | 484 * Decode gain parameters for the coded bands |
490 * | 485 * |
737 pSnd->bandsCoded = get_bits(gb,2); | 732 pSnd->bandsCoded = get_bits(gb,2); |
738 | 733 |
739 result = decodeGainControl (gb, &(pSnd->gainBlock[pSnd->gcBlkSwitch]), pSnd->bandsCoded); | 734 result = decodeGainControl (gb, &(pSnd->gainBlock[pSnd->gcBlkSwitch]), pSnd->bandsCoded); |
740 if (result) return result; | 735 if (result) return result; |
741 | 736 |
742 result = decodeTonalComponents (gb, &pSnd->numComponents, pSnd->components, pSnd->bandsCoded); | 737 pSnd->numComponents = decodeTonalComponents (gb, pSnd->components, pSnd->bandsCoded); |
743 if (result) return result; | 738 if (pSnd->numComponents == -1) return -1; |
744 | 739 |
745 numSubbands = decodeSpectrum (gb, pSnd->spectrum); | 740 numSubbands = decodeSpectrum (gb, pSnd->spectrum); |
746 | 741 |
747 /* Merge the decoded spectrum and tonal components. */ | 742 /* Merge the decoded spectrum and tonal components. */ |
748 addTonalComponents (pSnd->spectrum, pSnd->numComponents, pSnd->components); | 743 addTonalComponents (pSnd->spectrum, pSnd->numComponents, pSnd->components); |