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

Reply via email to