X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Foggparseopus.c;h=36d691e9aaf15c4573f60fae5d83a25fd708bbea;hb=e1c4a3ea7d2830a2e6c1e5212066c7995fffbdf2;hp=cd34cf23ba62fab9f89df41e49068bcebbffb327;hpb=d0c43e32427ec1efac364be0987a6aafa695527f;p=ffmpeg diff --git a/libavformat/oggparseopus.c b/libavformat/oggparseopus.c index cd34cf23ba6..36d691e9aaf 100644 --- a/libavformat/oggparseopus.c +++ b/libavformat/oggparseopus.c @@ -42,6 +42,7 @@ static int opus_header(AVFormatContext *avf, int idx) AVStream *st = avf->streams[idx]; struct oggopus_private *priv = os->private; uint8_t *packet = os->buf + os->pstart; + int ret; if (!priv) { priv = os->private = av_mallocz(sizeof(*priv)); @@ -58,13 +59,13 @@ static int opus_header(AVFormatContext *avf, int idx) priv->pre_skip = AV_RL16(packet + 10); st->codecpar->initial_padding = priv->pre_skip; + os->start_trimming = priv->pre_skip; /*orig_sample_rate = AV_RL32(packet + 12);*/ /*gain = AV_RL16(packet + 16);*/ /*channel_map = AV_RL8 (packet + 18);*/ - av_freep(&st->codecpar->extradata); - if (ff_alloc_extradata(st->codecpar, os->psize)) - return AVERROR(ENOMEM); + if ((ret = ff_alloc_extradata(st->codecpar, os->psize)) < 0) + return ret; memcpy(st->codecpar->extradata, packet, os->psize);