diff Plugins/Input/aac/libfaad2/sbr_tf_grid.c @ 1010:29feaace84d0 trunk

[svn] - synchronize audacious-faad with FAAD2 CVS.
author nenolod
date Mon, 08 May 2006 06:56:47 -0700
parents 0a2ad94e8607
children 1e6c0a3f2d15
line wrap: on
line diff
--- a/Plugins/Input/aac/libfaad2/sbr_tf_grid.c	Mon May 08 06:00:19 2006 -0700
+++ b/Plugins/Input/aac/libfaad2/sbr_tf_grid.c	Mon May 08 06:56:47 2006 -0700
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
 **
-** $Id: sbr_tf_grid.c,v 1.15 2004/09/04 14:56:28 menno Exp $
+** $Id: sbr_tf_grid.c,v 1.10 2004/01/05 14:05:12 menno Exp $
 **/
 
 /* Time/Frequency grid */
@@ -46,15 +46,17 @@
 static uint8_t middleBorder(sbr_info *sbr, uint8_t ch);
 
 
-/* function constructs new time border vector */
-/* first build into temp vector to be able to use previous vector on error */
 uint8_t envelope_time_border_vector(sbr_info *sbr, uint8_t ch)
 {
     uint8_t l, border, temp;
-    uint8_t t_E_temp[6] = {0};
 
-    t_E_temp[0] = sbr->rate * sbr->abs_bord_lead[ch];
-    t_E_temp[sbr->L_E[ch]] = sbr->rate * sbr->abs_bord_trail[ch];
+    for (l = 0; l <= sbr->L_E[ch]; l++)
+    {
+        sbr->t_E[ch][l] = 0;
+    }
+
+    sbr->t_E[ch][0] = sbr->rate * sbr->abs_bord_lead[ch];
+    sbr->t_E[ch][sbr->L_E[ch]] = sbr->rate * sbr->abs_bord_trail[ch];
 
     switch (sbr->bs_frame_class[ch])
     {
@@ -63,12 +65,12 @@
         {
         case 4:
             temp = (int) (sbr->numTimeSlots / 4);
-            t_E_temp[3] = sbr->rate * 3 * temp;
-            t_E_temp[2] = sbr->rate * 2 * temp;
-            t_E_temp[1] = sbr->rate * temp;
+            sbr->t_E[ch][3] = sbr->rate * 3 * temp;
+            sbr->t_E[ch][2] = sbr->rate * 2 * temp;
+            sbr->t_E[ch][1] = sbr->rate * temp;
             break;
         case 2:
-            t_E_temp[1] = sbr->rate * (int) (sbr->numTimeSlots / 2);
+            sbr->t_E[ch][1] = sbr->rate * (int) (sbr->numTimeSlots / 2);
             break;
         default:
             break;
@@ -87,7 +89,7 @@
                     return 1;
 
                 border -= sbr->bs_rel_bord[ch][l];
-                t_E_temp[--i] = sbr->rate * border;
+                sbr->t_E[ch][--i] = sbr->rate * border;
             }
         }
         break;
@@ -105,7 +107,7 @@
                 if (sbr->rate * border + sbr->tHFAdj > sbr->numTimeSlotsRate+sbr->tHFGen)
                     return 1;
 
-                t_E_temp[i++] = sbr->rate * border;
+                sbr->t_E[ch][i++] = sbr->rate * border;
             }
         }
         break;
@@ -123,7 +125,7 @@
                 if (sbr->rate * border + sbr->tHFAdj > sbr->numTimeSlotsRate+sbr->tHFGen)
                     return 1;
 
-                t_E_temp[i++] = sbr->rate * border;
+                sbr->t_E[ch][i++] = sbr->rate * border;
             }
         }
 
@@ -138,18 +140,12 @@
                     return 1;
 
                 border -= sbr->bs_rel_bord_1[ch][l];
-                t_E_temp[--i] = sbr->rate * border;
+                sbr->t_E[ch][--i] = sbr->rate * border;
             }
         }
         break;
     }
 
-    /* no error occured, we can safely use this t_E vector */
-    for (l = 0; l < 6; l++)
-    {
-        sbr->t_E[ch][l] = t_E_temp[l];
-    }
-
     return 0;
 }