From 34871beb5eb6bc59f5e58326a214efd88a4c2ccd Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 1 Nov 2012 06:34:41 +0100 Subject: matroskadec: do not use avpacket internals --- libavformat/matroskadec.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'libavformat') diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 26f8707e83..bf67253737 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; } -- cgit v1.2.3