Module: libav Branch: master Commit: 9a35ff384124a08209a8ee5355fdec93440d0e37
Author: Justin Ruggles <[email protected]> Committer: Justin Ruggles <[email protected]> Date: Fri Oct 14 00:22:01 2011 -0400 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. --- libavcodec/atrac1.c | 8 ++------ 1 files changed, 2 insertions(+), 6 deletions(-) diff --git a/libavcodec/atrac1.c b/libavcodec/atrac1.c index 371f21a..4647e0c 100644 --- a/libavcodec/atrac1.c +++ b/libavcodec/atrac1.c @@ -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]; _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
