Revision f8a93a20 libavcodec/aacsbr.c

View differences:

libavcodec/aacsbr.c
1126 1126
 */
1127 1127
static void sbr_qmf_analysis(DSPContext *dsp, RDFTContext *rdft, const float *in, float *x,
1128 1128
                             float z[320], float W[2][32][32][2],
1129
                             float bias, float scale)
1129
                             float scale)
1130 1130
{
1131 1131
    int i, k;
1132 1132
    memcpy(W[0], W[1], sizeof(W[0]));
1133 1133
    memcpy(x    , x+1024, (320-32)*sizeof(x[0]));
1134
    if (scale != 1.0f || bias != 0.0f)
1134
    if (scale != 1.0f)
1135 1135
        for (i = 0; i < 1024; i++)
1136
            x[288 + i] = (in[i] - bias) * scale;
1136
            x[288 + i] = in[i] * scale;
1137 1137
    else
1138 1138
        memcpy(x+288, in, 1024*sizeof(*x));
1139 1139
    for (i = 0; i < 32; i++) { // numTimeSlots*RATE = 16*2 as 960 sample frames
......
1719 1719
    /* decode channel */
1720 1720
    sbr_qmf_analysis(&ac->dsp, &sbr->rdft, in, sbr->data[ch].analysis_filterbank_samples,
1721 1721
                     (float*)sbr->qmf_filter_scratch,
1722
                     sbr->data[ch].W, ac->add_bias, 1/(-1024 * ac->sf_scale));
1722
                     sbr->data[ch].W, 1/(-1024 * ac->sf_scale));
1723 1723
    sbr_lf_gen(ac, sbr, sbr->X_low, sbr->data[ch].W);
1724 1724
    if (sbr->start) {
1725 1725
        sbr_hf_inverse_filter(sbr->alpha0, sbr->alpha1, sbr->X_low, sbr->k[0]);

Also available in: Unified diff