summaryrefslogtreecommitdiffstats
path: root/libfaad2/sbr_tf_grid.c
diff options
context:
space:
mode:
authordiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-24 17:31:36 +0000
committerdiego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-24 17:31:36 +0000
commite1ece5e2eb68c81b1645c9ff989c833c4d67dfd8 (patch)
tree8553b3a4ef8164d14ff1b4a3f67e57cfa1d8908a /libfaad2/sbr_tf_grid.c
parent2887bacbdb6bd320e4840fd230e92a59cc74b9ae (diff)
downloadmpv-e1ece5e2eb68c81b1645c9ff989c833c4d67dfd8.tar.bz2
mpv-e1ece5e2eb68c81b1645c9ff989c833c4d67dfd8.tar.xz
Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
patch by adland <adland123 at yahoo dot com> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13454 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libfaad2/sbr_tf_grid.c')
-rw-r--r--libfaad2/sbr_tf_grid.c36
1 files changed, 20 insertions, 16 deletions
diff --git a/libfaad2/sbr_tf_grid.c b/libfaad2/sbr_tf_grid.c
index 2c3fae2a15..c7e597184c 100644
--- a/libfaad2/sbr_tf_grid.c
+++ b/libfaad2/sbr_tf_grid.c
@@ -23,7 +23,7 @@
** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
**
** Initially modified for use with MPlayer by Arpad Gereöffy on 2003/08/30
-** $Id: sbr_tf_grid.c,v 1.3 2004/06/02 22:59:03 diego Exp $
+** $Id: sbr_tf_grid.c,v 1.4 2004/06/23 13:50:52 diego Exp $
** detailed CVS changelog at http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
**/
@@ -48,17 +48,15 @@ static int16_t rel_bord_trail(sbr_info *sbr, uint8_t ch, uint8_t l);
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};
- 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];
+ 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];
switch (sbr->bs_frame_class[ch])
{
@@ -67,12 +65,12 @@ uint8_t envelope_time_border_vector(sbr_info *sbr, uint8_t ch)
{
case 4:
temp = (int) (sbr->numTimeSlots / 4);
- 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;
+ t_E_temp[3] = sbr->rate * 3 * temp;
+ t_E_temp[2] = sbr->rate * 2 * temp;
+ t_E_temp[1] = sbr->rate * temp;
break;
case 2:
- sbr->t_E[ch][1] = sbr->rate * (int) (sbr->numTimeSlots / 2);
+ t_E_temp[1] = sbr->rate * (int) (sbr->numTimeSlots / 2);
break;
default:
break;
@@ -91,7 +89,7 @@ uint8_t envelope_time_border_vector(sbr_info *sbr, uint8_t ch)
return 1;
border -= sbr->bs_rel_bord[ch][l];
- sbr->t_E[ch][--i] = sbr->rate * border;
+ t_E_temp[--i] = sbr->rate * border;
}
}
break;
@@ -109,7 +107,7 @@ uint8_t envelope_time_border_vector(sbr_info *sbr, uint8_t ch)
if (sbr->rate * border + sbr->tHFAdj > sbr->numTimeSlotsRate+sbr->tHFGen)
return 1;
- sbr->t_E[ch][i++] = sbr->rate * border;
+ t_E_temp[i++] = sbr->rate * border;
}
}
break;
@@ -127,7 +125,7 @@ uint8_t envelope_time_border_vector(sbr_info *sbr, uint8_t ch)
if (sbr->rate * border + sbr->tHFAdj > sbr->numTimeSlotsRate+sbr->tHFGen)
return 1;
- sbr->t_E[ch][i++] = sbr->rate * border;
+ t_E_temp[i++] = sbr->rate * border;
}
}
@@ -142,12 +140,18 @@ uint8_t envelope_time_border_vector(sbr_info *sbr, uint8_t ch)
return 1;
border -= sbr->bs_rel_bord_1[ch][l];
- sbr->t_E[ch][--i] = sbr->rate * border;
+ t_E_temp[--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;
}