From b8c4a51598fc34a7613dc5e94cbf067d11c61a08 Mon Sep 17 00:00:00 2001
From: Benjamin Larsson <banan@ludd.ltu.se>
Date: Wed, 18 Apr 2007 19:58:20 +0000
Subject: [PATCH] Deobfuscade decodeTonalComponents calling logic.

Originally committed as revision 8757 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/atrac3.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
index 4d676c1494f..0e6d1842595 100644
--- a/libavcodec/atrac3.c
+++ b/libavcodec/atrac3.c
@@ -409,22 +409,19 @@ static int decodeSpectrum (GetBitContext *gb, float *pOut)
  * Restore the quantized tonal components
  *
  * @param gb            the GetBit context
- * @param numComponents tonal components to report back
  * @param pComponent    tone component
  * @param numBands      amount of coded bands
  */
 
-static int decodeTonalComponents (GetBitContext *gb, int *numComponents, tonal_component *pComponent, int numBands)
+static int decodeTonalComponents (GetBitContext *gb, tonal_component *pComponent, int numBands)
 {
     int i,j,k,cnt;
-    int   component_count, components, coding_mode_selector, coding_mode, coded_values_per_component;
+    int   components, coding_mode_selector, coding_mode, coded_values_per_component;
     int   sfIndx, coded_values, max_coded_values, quant_step_index, coded_components;
     int   band_flags[4], mantissa[8];
     float  *pCoef;
     float  scalefactor;
-
-    component_count = 0;
-    *numComponents = 0;
+    int   component_count = 0;
 
     components = get_bits(gb,5);
 
@@ -480,9 +477,7 @@ static int decodeTonalComponents (GetBitContext *gb, int *numComponents, tonal_c
         }
     }
 
-    *numComponents = component_count;
-
-    return 0;
+    return component_count;
 }
 
 /**
@@ -739,8 +734,8 @@ static int decodeChannelSoundUnit (ATRAC3Context *q, GetBitContext *gb, channel_
     result = decodeGainControl (gb, &(pSnd->gainBlock[pSnd->gcBlkSwitch]), pSnd->bandsCoded);
     if (result) return result;
 
-    result = decodeTonalComponents (gb, &pSnd->numComponents, pSnd->components, pSnd->bandsCoded);
-    if (result) return result;
+    pSnd->numComponents = decodeTonalComponents (gb, pSnd->components, pSnd->bandsCoded);
+    if (pSnd->numComponents == -1) return -1;
 
     numSubbands = decodeSpectrum (gb, pSnd->spectrum);
 
-- 
GitLab