Revision e5c82df8 libavcodec/aacdec.c

View differences:

libavcodec/aacdec.c
1723 1723
            (ics->window_sequence[0] == ONLY_LONG_SEQUENCE || ics->window_sequence[0] == LONG_START_SEQUENCE)) {
1724 1724
        ac->dsp.vector_fmul_window(    out,               saved,            buf,         lwindow_prev, 0, 512);
1725 1725
    } else {
1726
        for (i = 0; i < 448; i++)
1727
            out[i] = saved[i];
1726
        memcpy(                        out,               saved,            448 * sizeof(float));
1728 1727

  
1729 1728
        if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
1730 1729
            ac->dsp.vector_fmul_window(out + 448 + 0*128, saved + 448,      buf + 0*128, swindow_prev, 0, 64);
......
1735 1734
            memcpy(                    out + 448 + 4*128, temp, 64 * sizeof(float));
1736 1735
        } else {
1737 1736
            ac->dsp.vector_fmul_window(out + 448,         saved + 448,      buf,         swindow_prev, 0, 64);
1738
            for (i = 576; i < 1024; i++)
1739
                out[i] = buf[i-512];
1737
            memcpy(                    out + 576,         buf + 64,         448 * sizeof(float));
1740 1738
        }
1741 1739
    }
1742 1740

  
1743 1741
    // buffer update
1744 1742
    if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
1745
        for (i = 0; i < 64; i++)
1746
            saved[i] = temp[64 + i];
1743
        memcpy(                    saved,       temp + 64,         64 * sizeof(float));
1747 1744
        ac->dsp.vector_fmul_window(saved + 64,  buf + 4*128 + 64, buf + 5*128, swindow, 0, 64);
1748 1745
        ac->dsp.vector_fmul_window(saved + 192, buf + 5*128 + 64, buf + 6*128, swindow, 0, 64);
1749 1746
        ac->dsp.vector_fmul_window(saved + 320, buf + 6*128 + 64, buf + 7*128, swindow, 0, 64);

Also available in: Unified diff