# HG changeset patch # User alexc # Date 1268130414 0 # Node ID d90f6c676063b2e00e8259d65f09c5b6ddd359e8 # Parent 4dfd0bfbb8dcc207de539eeaf7b7f465b74320f9 aacsbr: Move the e_a calculation from sbr_mapping() to read_sbr_grid(). diff -r 4dfd0bfbb8dc -r d90f6c676063 aacsbr.c --- a/aacsbr.c Tue Mar 09 10:26:25 2010 +0000 +++ b/aacsbr.c Tue Mar 09 10:26:54 2010 +0000 @@ -763,6 +763,13 @@ } else ch_data->t_q[1] = ch_data->t_env[ch_data->bs_num_env[1]]; + ch_data->e_a[0] = -(ch_data->e_a[1] != ch_data->bs_num_env[0]); // l_APrev + ch_data->e_a[1] = -1; + if ((ch_data->bs_frame_class & 1) && ch_data->bs_pointer) { // FIXVAR or VARVAR and bs_pointer != 0 + ch_data->e_a[1] = ch_data->bs_num_env[1] + 1 - ch_data->bs_pointer; + } else if ((ch_data->bs_frame_class == 2) && (ch_data->bs_pointer > 1)) // VARFIX and bs_pointer > 1 + ch_data->e_a[1] = ch_data->bs_pointer - 1; + return 0; } @@ -771,6 +778,7 @@ dst->bs_freq_res[0] = dst->bs_freq_res[dst->bs_num_env[1]]; dst->bs_num_env[0] = dst->bs_num_env[1]; dst->t_env_num_env_old = dst->t_env[dst->bs_num_env[0]]; + dst->e_a[0] = -(dst->e_a[1] != dst->bs_num_env[0]); //These variables are read from the bitstream and therefore copied memcpy(dst->bs_freq_res+1, src->bs_freq_res+1, sizeof(dst->bs_freq_res)-sizeof(*dst->bs_freq_res)); @@ -784,6 +792,7 @@ dst->bs_num_noise = src->bs_num_noise; dst->bs_pointer = src->bs_pointer; dst->bs_frame_class = src->bs_frame_class; + dst->e_a[1] = src->e_a[1]; } /// Read how the envelope and noise floor data is delta coded @@ -1464,13 +1473,6 @@ { int e, i, m; - e_a[0] = -(e_a[1] != ch_data->bs_num_env[0]); // l_APrev - e_a[1] = -1; - if ((ch_data->bs_frame_class & 1) && ch_data->bs_pointer) { // FIXVAR or VARVAR and bs_pointer != 0 - e_a[1] = ch_data->bs_num_env[1] + 1 - ch_data->bs_pointer; - } else if ((ch_data->bs_frame_class == 2) && (ch_data->bs_pointer > 1)) // VARFIX and bs_pointer > 1 - e_a[1] = ch_data->bs_pointer - 1; - memset(ch_data->s_indexmapped[1], 0, 7*sizeof(ch_data->s_indexmapped[1])); for (e = 0; e < ch_data->bs_num_env[1]; e++) { const unsigned int ilim = sbr->n[ch_data->bs_freq_res[e + 1]];