Browse Source

matroskadec: use av_grow_packet in merge_packets.

It ensures that the packet is properly padded
and makes the code simpler.

Fixes trac ticket #1223.
tags/n0.11
Nicolas George 14 years ago
parent
commit
dcd207c4cb
1 changed files with 4 additions and 6 deletions
  1. +4
    -6
      libavformat/matroskadec.c

+ 4
- 6
libavformat/matroskadec.c View File

@@ -1126,12 +1126,10 @@ 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;
int ret = av_grow_packet(out, in->size);
if (ret < 0)
return ret;
memcpy(out->data + out->size - in->size, in->data, in->size);
av_destruct_packet(in);
av_free(in);
return 0;


Loading…
Cancel
Save