Revision 916dee9f libavcodec/aacsbr.c

View differences:

libavcodec/aacsbr.c
1134 1134
 * @param   W       array of complex-valued samples split into subbands
1135 1135
 */
1136 1136
static void sbr_qmf_analysis(DSPContext *dsp, FFTContext *mdct, const float *in, float *x,
1137
                             float z[320], float W[2][32][32][2],
1138
                             float scale)
1137
                             float z[320], float W[2][32][32][2])
1139 1138
{
1140 1139
    int i, k;
1141 1140
    memcpy(W[0], W[1], sizeof(W[0]));
1142 1141
    memcpy(x    , x+1024, (320-32)*sizeof(x[0]));
1143
    if (scale != 1.0f)
1144
        dsp->vector_fmul_scalar(x+288, in, scale, 1024);
1145
    else
1146
        memcpy(x+288, in, 1024*sizeof(*x));
1142
    memcpy(x+288, in,         1024*sizeof(x[0]));
1147 1143
    for (i = 0; i < 32; i++) { // numTimeSlots*RATE = 16*2 as 960 sample frames
1148 1144
                               // are not supported
1149 1145
        dsp->vector_fmul_reverse(z, sbr_qmf_window_ds, x, 320);
......
1722 1718
        /* decode channel */
1723 1719
        sbr_qmf_analysis(&ac->dsp, &sbr->mdct_ana, ch ? R : L, sbr->data[ch].analysis_filterbank_samples,
1724 1720
                         (float*)sbr->qmf_filter_scratch,
1725
                         sbr->data[ch].W, 1/(-1024 * ac->sf_scale));
1721
                         sbr->data[ch].W);
1726 1722
        sbr_lf_gen(ac, sbr, sbr->X_low, sbr->data[ch].W);
1727 1723
        if (sbr->start) {
1728 1724
            sbr_hf_inverse_filter(sbr->alpha0, sbr->alpha1, sbr->X_low, sbr->k[0]);

Also available in: Unified diff