ffmpeg | branch: master | Michael Niedermayer <mich...@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-sta...@libav.org

Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>
Signed-off-by: Luca Barbato <lu_z...@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;

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

Reply via email to