[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