Browse Source

atrac1: decode mono audio directly to output buffer

For stereo we need to use intermediate planar buffers, but mono does not need
to be deinterleaved so the output buffer can be used directly.
tags/n0.9
Justin Ruggles 13 years ago
parent
commit
9a35ff3841
1 changed files with 2 additions and 6 deletions
  1. +2
    -6
      libavcodec/atrac1.c

+ 2
- 6
libavcodec/atrac1.c View File

@@ -310,15 +310,11 @@ static int atrac1_decode_frame(AVCodecContext *avctx, void *data,
ret = at1_imdct_block(su, q);
if (ret < 0)
return ret;
at1_subband_synthesis(q, su, q->out_samples[ch]);
at1_subband_synthesis(q, su, q->channels == 1 ? samples : q->out_samples[ch]);
}

/* interleave; FIXME, should create/use a DSP function */
if (q->channels == 1) {
/* mono */
memcpy(samples, q->out_samples[0], AT1_SU_SAMPLES * 4);
} else {
/* stereo */
if (q->channels == 2) {
for (i = 0; i < AT1_SU_SAMPLES; i++) {
samples[i * 2] = q->out_samples[0][i];
samples[i * 2 + 1] = q->out_samples[1][i];


Loading…
Cancel
Save