OSDN Git Service

avcodec/vorbisenc: Include bufqueue and afqueue
authorTyler Jones <tdjones879@gmail.com>
Tue, 30 May 2017 17:28:04 +0000 (11:28 -0600)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Mon, 5 Jun 2017 15:35:05 +0000 (16:35 +0100)
libavcodec/vorbisenc.c

index 1777a49..f196d79 100644 (file)
@@ -34,6 +34,9 @@
 #include "vorbis.h"
 #include "vorbis_enc_data.h"
 
+#include "audio_frame_queue.h"
+#include "libavfilter/bufferqueue.h"
+
 #define BITSTREAM_WRITER_LE
 #include "put_bits.h"
 
@@ -111,6 +114,9 @@ typedef struct vorbis_enc_context {
     float *coeffs; // also used for residue after floor
     float quality;
 
+    AudioFrameQueue afq;
+    struct FFBufQueue bufqueue;
+
     int ncodebooks;
     vorbis_enc_codebook *codebooks;
 
@@ -1179,6 +1185,8 @@ static av_cold int vorbis_encode_close(AVCodecContext *avctx)
 
     ff_mdct_end(&venc->mdct[0]);
     ff_mdct_end(&venc->mdct[1]);
+    ff_af_queue_close(&venc->afq);
+    ff_bufqueue_discard_all(&venc->bufqueue);
 
     av_freep(&avctx->extradata);
 
@@ -1211,6 +1219,8 @@ static av_cold int vorbis_encode_init(AVCodecContext *avctx)
 
     avctx->frame_size = 1 << (venc->log2_blocksize[0] - 1);
 
+    ff_af_queue_init(avctx, &venc->afq);
+
     return 0;
 error:
     vorbis_encode_close(avctx);