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