Mercurial > libavcodec.hg
changeset 3841:6591b55f6482 libavcodec
Original Commit: r38 | ods15 | 2006-09-23 09:02:34 +0300 (Sat, 23 Sep 2006) | 2 lines
buffer related struct variables
author | ods15 |
---|---|
date | Mon, 02 Oct 2006 05:56:23 +0000 |
parents | bb414feb6a0d |
children | 5f8cfa1a6fdb |
files | vorbis_enc.c |
diffstat | 1 files changed, 33 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/vorbis_enc.c Mon Oct 02 05:56:21 2006 +0000 +++ b/vorbis_enc.c Mon Oct 02 05:56:23 2006 +0000 @@ -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 <assert.h> @@ -91,6 +96,12 @@ int channels; int sample_rate; int blocksize[2]; // in (1<<n) format + MDCTContext mdct[2]; + const float * win[2]; + float * saved; + float * samples; + float * floor; // also used for tmp values for mdct + float * coeffs; // also used for residue after floor int ncodebooks; codebook_t * codebooks; @@ -327,6 +338,20 @@ // single mode venc->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 @@ 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);