]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/oggparseopus.c
Merge commit 'ddc589ce98c2bba1e59318b5b0224717325eac46'
[ffmpeg] / libavformat / oggparseopus.c
index fcfea1ef1551f8ce8fe0636655b2fdba54226c66..78aa33318718cc242781a9908d9f96c7c08fd99d 100644 (file)
@@ -41,7 +41,6 @@ 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;
-    uint8_t *extradata;
 
     if (!priv) {
         priv = os->private = av_mallocz(sizeof(*priv));
@@ -60,13 +59,10 @@ static int opus_header(AVFormatContext *avf, int idx)
         /*gain                = AV_RL16(packet + 16);*/
         /*channel_map         = AV_RL8 (packet + 18);*/
 
-        extradata = av_malloc(os->psize + FF_INPUT_BUFFER_PADDING_SIZE);
-        if (!extradata)
+        if (ff_alloc_extradata(st->codec, os->psize))
             return AVERROR(ENOMEM);
 
-        memcpy(extradata, packet, os->psize);
-        st->codec->extradata      = extradata;
-        st->codec->extradata_size = os->psize;
+        memcpy(st->codec->extradata, packet, os->psize);
 
         st->codec->sample_rate = 48000;
         avpriv_set_pts_info(st, 64, 1, 48000);
@@ -140,4 +136,5 @@ const struct ogg_codec ff_opus_codec = {
     .magicsize        = 8,
     .header           = opus_header,
     .packet           = opus_packet,
+    .nb_header        = 1,
 };