[FFmpeg-cvslog] matroskadec: do not use avpacket internals

Anton Khirnov git at videolan.org
Sat Nov 3 14:54:14 CET 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Thu Nov  1 06:34:41 2012 +0100| [34871beb5eb6bc59f5e58326a214efd88a4c2ccd] | committer: Anton Khirnov

matroskadec: do not use avpacket internals

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

 libavformat/matroskadec.c |   15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 26f8707..bf67253 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1137,13 +1137,14 @@ static void matroska_fix_ass_packet(MatroskaDemuxContext *matroska,
 
 static int matroska_merge_packets(AVPacket *out, AVPacket *in)
 {
-    void *newdata = av_realloc(out->data, out->size+in->size);
-    if (!newdata)
-        return AVERROR(ENOMEM);
-    out->data = newdata;
-    memcpy(out->data+out->size, in->data, in->size);
-    out->size += in->size;
-    av_destruct_packet(in);
+    int old_size = out->size;
+    int ret = av_grow_packet(out, in->size);
+    if (ret < 0)
+        return ret;
+
+    memcpy(out->data + old_size, in->data, in->size);
+
+    av_free_packet(in);
     av_free(in);
     return 0;
 }



More information about the ffmpeg-cvslog mailing list