Module: libav Branch: master Commit: a9b8c638cfe2f82191db65e3e3a39f3b35df81f5
Author: wm4 <nfxjfg at googlemail.com> Committer: Luca Barbato <[email protected]> Date: Thu Sep 24 08:49:41 2015 +0200 mmal: Fix AVBufferRef usage AVBufferRef.data and AVPacket.data don't need to have the same value. AVPacket could point anywhere into the buffer. Likewise, the sizes don't need to be the same. Signed-off-by: Luca Barbato <[email protected]> --- libavcodec/mmaldec.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c index fea3fc4..ae9d749 100644 --- a/libavcodec/mmaldec.c +++ b/libavcodec/mmaldec.c @@ -433,17 +433,20 @@ static int ffmmal_add_packet(AVCodecContext *avctx, AVPacket *avpkt, if (avpkt->size) { if (avpkt->buf) { buf = av_buffer_ref(avpkt->buf); + size = avpkt->size; + data = avpkt->data; } else { buf = av_buffer_alloc(avpkt->size); - if (buf) + if (buf) { memcpy(buf->data, avpkt->data, avpkt->size); + size = buf->size; + data = buf->data; + } } if (!buf) { ret = AVERROR(ENOMEM); goto done; } - size = buf->size; - data = buf->data; if (!is_extradata) ctx->packets_sent++; } else { _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
