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

Reply via email to