Commit 695f39c8 authored by Young Han Lee's avatar Young Han Lee Committed by Michael Niedermayer

aacdec: dsputilize the scalar multiplication in intensity stereo

(cherry picked from commit 9707f84f)
parent d1472386
...@@ -1386,13 +1386,13 @@ static void apply_mid_side_stereo(AACContext *ac, ChannelElement *cpe) ...@@ -1386,13 +1386,13 @@ static void apply_mid_side_stereo(AACContext *ac, ChannelElement *cpe)
* [1] mask is decoded from bitstream; [2] mask is all 1s; * [1] mask is decoded from bitstream; [2] mask is all 1s;
* [3] reserved for scalable AAC * [3] reserved for scalable AAC
*/ */
static void apply_intensity_stereo(ChannelElement *cpe, int ms_present) static void apply_intensity_stereo(AACContext *ac, ChannelElement *cpe, int ms_present)
{ {
const IndividualChannelStream *ics = &cpe->ch[1].ics; const IndividualChannelStream *ics = &cpe->ch[1].ics;
SingleChannelElement *sce1 = &cpe->ch[1]; SingleChannelElement *sce1 = &cpe->ch[1];
float *coef0 = cpe->ch[0].coeffs, *coef1 = cpe->ch[1].coeffs; float *coef0 = cpe->ch[0].coeffs, *coef1 = cpe->ch[1].coeffs;
const uint16_t *offsets = ics->swb_offset; const uint16_t *offsets = ics->swb_offset;
int g, group, i, k, idx = 0; int g, group, i, idx = 0;
int c; int c;
float scale; float scale;
for (g = 0; g < ics->num_window_groups; g++) { for (g = 0; g < ics->num_window_groups; g++) {
...@@ -1405,8 +1405,10 @@ static void apply_intensity_stereo(ChannelElement *cpe, int ms_present) ...@@ -1405,8 +1405,10 @@ static void apply_intensity_stereo(ChannelElement *cpe, int ms_present)
c *= 1 - 2 * cpe->ms_mask[idx]; c *= 1 - 2 * cpe->ms_mask[idx];
scale = c * sce1->sf[idx]; scale = c * sce1->sf[idx];
for (group = 0; group < ics->group_len[g]; group++) for (group = 0; group < ics->group_len[g]; group++)
for (k = offsets[i]; k < offsets[i + 1]; k++) ac->dsp.vector_fmul_scalar(coef1 + group * 128 + offsets[i],
coef1[group * 128 + k] = scale * coef0[group * 128 + k]; coef0 + group * 128 + offsets[i],
scale,
offsets[i + 1] - offsets[i]);
} }
} else { } else {
int bt_run_end = sce1->band_type_run_end[idx]; int bt_run_end = sce1->band_type_run_end[idx];
...@@ -1459,7 +1461,7 @@ static int decode_cpe(AACContext *ac, GetBitContext *gb, ChannelElement *cpe) ...@@ -1459,7 +1461,7 @@ static int decode_cpe(AACContext *ac, GetBitContext *gb, ChannelElement *cpe)
} }
} }
apply_intensity_stereo(cpe, ms_present); apply_intensity_stereo(ac, cpe, ms_present);
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment