matroskadec: do not use avpacket internals

This commit is contained in:
Anton Khirnov 2012-11-01 06:34:41 +01:00
parent 9221efef79
commit 34871beb5e
1 changed files with 8 additions and 7 deletions

View File

@ -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;
}