From: James Almer Date: Mon, 14 Oct 2013 08:15:26 +0000 (-0300) Subject: oggparsecelt: use ff_alloc_extradata() X-Git-Tag: android-x86-4.4-r1~615 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=00408f95e7fa3761180f95d89f39377c77a0252e;p=android-x86%2Fexternal-ffmpeg.git oggparsecelt: use ff_alloc_extradata() Signed-off-by: James Almer Reviewed-by: Nicolas George Signed-off-by: Michael Niedermayer --- diff --git a/libavformat/oggparsecelt.c b/libavformat/oggparsecelt.c index afc4392e2c..4b6233e0c7 100644 --- a/libavformat/oggparsecelt.c +++ b/libavformat/oggparsecelt.c @@ -44,16 +44,10 @@ static int celt_header(AVFormatContext *s, int idx) uint32_t version, sample_rate, nb_channels, frame_size; uint32_t overlap, extra_headers; - uint8_t *extradata; - extradata = av_malloc(2 * sizeof(uint32_t) + - FF_INPUT_BUFFER_PADDING_SIZE); priv = av_malloc(sizeof(struct oggcelt_private)); - if (!extradata || !priv) { - av_free(extradata); - av_free(priv); + if (!priv || ff_alloc_extradata(st->codec, 2 * sizeof(uint32_t))) return AVERROR(ENOMEM); - } version = AV_RL32(p + 28); /* unused header size field skipped */ sample_rate = AV_RL32(p + 36); @@ -67,16 +61,13 @@ static int celt_header(AVFormatContext *s, int idx) st->codec->sample_rate = sample_rate; st->codec->channels = nb_channels; st->codec->frame_size = frame_size; - av_free(st->codec->extradata); - st->codec->extradata = extradata; - st->codec->extradata_size = 2 * sizeof(uint32_t); if (sample_rate) avpriv_set_pts_info(st, 64, 1, sample_rate); priv->extra_headers_left = 1 + extra_headers; av_free(os->private); os->private = priv; - AV_WL32(extradata + 0, overlap); - AV_WL32(extradata + 4, version); + AV_WL32(st->codec->extradata + 0, overlap); + AV_WL32(st->codec->extradata + 4, version); return 1; } else if (priv && priv->extra_headers_left) { /* Extra headers (vorbiscomment) */