- /* overlap and window long blocks */
- q->dsp.vector_fmul_window(q->bands[band_num], &su->spectrum[1][ref_pos + band_samples - 16],
- &su->spectrum[0][ref_pos], short_window, 0, 16);
- memcpy(q->bands[band_num] + 32, &su->spectrum[0][ref_pos + 16], 240 * sizeof(float));
- } else {
- /* short blocks */
- float *prev_buf;
- start_pos = 0;
- prev_buf = &su->spectrum[1][ref_pos + band_samples - 16];
- for (; num_blocks != 0; num_blocks--) {
- at1_imdct(q, &q->spec[pos], &su->spectrum[0][ref_pos + start_pos], 5, band_num);
-
- /* overlap and window between short blocks */
- q->dsp.vector_fmul_window(&q->bands[band_num][start_pos], prev_buf,
- &su->spectrum[0][ref_pos + start_pos], short_window, 0, 16);
-
- prev_buf = &su->spectrum[0][ref_pos+start_pos + 16];
- start_pos += 32; // use hardcoded block_size
- pos += 32;
- }
+ /* overlap and window */
+ q->dsp.vector_fmul_window(&q->bands[band_num][start_pos], prev_buf,
+ &su->spectrum[0][ref_pos + start_pos], ff_sine_32, 16);
+
+ prev_buf = &su->spectrum[0][ref_pos+start_pos + 16];
+ start_pos += block_size;
+ pos += block_size;