]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/libvorbisenc.c
Merge commit '443502aed8b814d883825e52e91e4f018955aa66'
[ffmpeg] / libavcodec / libvorbisenc.c
index 96af53614b5c57e1dfdd61fe622a52108bbc3f50..4d16b755ec6274c892cdf646c11ef1d69ebd6881 100644 (file)
@@ -49,7 +49,7 @@ typedef struct LibvorbisEncContext {
     int dsp_initialized;                /**< vd has been initialized        */
     vorbis_comment vc;                  /**< VorbisComment info             */
     double iblock;                      /**< impulse block bias option      */
-    VorbisParseContext vp;              /**< parse context to get durations */
+    AVVorbisParseContext *vp;           /**< parse context to get durations */
     AudioFrameQueue afq;                /**< frame queue for timestamps     */
 } LibvorbisEncContext;
 
@@ -187,6 +187,8 @@ static av_cold int libvorbis_encode_close(AVCodecContext *avctx)
     ff_af_queue_close(&s->afq);
     av_freep(&avctx->extradata);
 
+    av_vorbis_parse_free(&s->vp);
+
     return 0;
 }
 
@@ -246,7 +248,8 @@ static av_cold int libvorbis_encode_init(AVCodecContext *avctx)
     offset += header_code.bytes;
     av_assert0(offset == avctx->extradata_size);
 
-    if ((ret = avpriv_vorbis_parse_extradata(avctx, &s->vp)) < 0) {
+    s->vp = av_vorbis_parse_init(avctx->extradata, avctx->extradata_size);
+    if (!s->vp) {
         av_log(avctx, AV_LOG_ERROR, "invalid extradata\n");
         return ret;
     }
@@ -341,7 +344,7 @@ static int libvorbis_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
 
     avpkt->pts = ff_samples_to_time_base(avctx, op.granulepos);
 
-    duration = avpriv_vorbis_parse_frame(&s->vp, avpkt->data, avpkt->size);
+    duration = av_vorbis_parse_frame(s->vp, avpkt->data, avpkt->size);
     if (duration > 0) {
         /* we do not know encoder delay until we get the first packet from
          * libvorbis, so we have to update the AudioFrameQueue counts */