[FFmpeg-cvslog] opus: Buffer the samples from the correct offset

Michael Niedermayer git at videolan.org
Thu Oct 29 14:26:11 CET 2015


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Tue Oct 27 13:47:12 2015 +0100| [6dcd82290438eb810936de4febd0558b38a08ec5] | committer: Luca Barbato

opus: Buffer the samples from the correct offset

When not all the opus stream have the same amount of decoded samples
process the least amount and store what is left from the other streams.

Bug-Id: 909
CC: libav-stable at libav.org

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6dcd82290438eb810936de4febd0558b38a08ec5
---

 libavcodec/opusdec.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/opusdec.c b/libavcodec/opusdec.c
index acae6e1..919e5e3 100644
--- a/libavcodec/opusdec.c
+++ b/libavcodec/opusdec.c
@@ -567,8 +567,8 @@ static int opus_decode_packet(AVCodecContext *avctx, void *data,
         if (buffer_samples) {
             float *buf[2] = { c->out[2 * i + 0] ? c->out[2 * i + 0] : (float*)frame->extended_data[0],
                               c->out[2 * i + 1] ? c->out[2 * i + 1] : (float*)frame->extended_data[0] };
-            buf[0] += buffer_samples;
-            buf[1] += buffer_samples;
+            buf[0] += decoded_samples;
+            buf[1] += decoded_samples;
             ret = av_audio_fifo_write(c->sync_buffers[i], (void**)buf, buffer_samples);
             if (ret < 0)
                 return ret;



More information about the ffmpeg-cvslog mailing list