From 6b03d096dcd02e19a651b636536bcda5e3ad1d62 Mon Sep 17 00:00:00 2001 From: Oded Shimon Date: Mon, 2 Oct 2006 05:56:23 +0000 Subject: [PATCH] Original Commit: r38 | ods15 | 2006-09-23 09:02:34 +0300 (Sat, 23 Sep 2006) | 2 lines buffer related struct variables Originally committed as revision 6446 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vorbis_enc.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/libavcodec/vorbis_enc.c b/libavcodec/vorbis_enc.c index c92176d876..d38c87f073 100644 --- a/libavcodec/vorbis_enc.c +++ b/libavcodec/vorbis_enc.c @@ -24,6 +24,11 @@ #include "avcodec.h" +#define BITSTREAM_H // don't include this +typedef int VLC; +typedef int GetBitContext; +#include "vorbis.h" + #undef NDEBUG #include @@ -91,6 +96,12 @@ typedef struct { int channels; int sample_rate; int blocksize[2]; // in (1<modes[0].blockflag = 0; venc->modes[0].mapping = 0; + + venc->saved = av_malloc(sizeof(float) * venc->channels * (1 << venc->blocksize[1]) / 2); + venc->samples = av_malloc(sizeof(float) * venc->channels * (1 << venc->blocksize[1])); + venc->floor = av_malloc(sizeof(float) * venc->channels * (1 << venc->blocksize[1]) / 2); + venc->coeffs = av_malloc(sizeof(float) * venc->channels * (1 << venc->blocksize[1]) / 2); + + { + const float *vwin[8]={ vwin64, vwin128, vwin256, vwin512, vwin1024, vwin2048, vwin4096, vwin8192 }; + venc->win[0] = vwin[venc->blocksize[0] - 6]; + venc->win[1] = vwin[venc->blocksize[1] - 6]; + } + + ff_mdct_init(&venc->mdct[0], venc->blocksize[0], 0); + ff_mdct_init(&venc->mdct[1], venc->blocksize[1], 0); } static inline int ilog(unsigned int a) { @@ -669,6 +694,14 @@ static int vorbis_encode_close(AVCodecContext * avccontext) av_freep(&venc->modes); + av_freep(&venc->saved); + av_freep(&venc->samples); + av_freep(&venc->floor); + av_freep(&venc->coeffs); + + ff_mdct_end(&venc->mdct[0]); + ff_mdct_end(&venc->mdct[1]); + av_freep(&avccontext->coded_frame); av_freep(&avccontext->extradata);