diff options
author | diego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2004-09-24 17:31:36 +0000 |
---|---|---|
committer | diego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2004-09-24 17:31:36 +0000 |
commit | e1ece5e2eb68c81b1645c9ff989c833c4d67dfd8 (patch) | |
tree | 8553b3a4ef8164d14ff1b4a3f67e57cfa1d8908a /libfaad2/sbr_tf_grid.c | |
parent | 2887bacbdb6bd320e4840fd230e92a59cc74b9ae (diff) | |
download | mpv-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.c | 36 |
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; } |