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
This commit is contained in:
Oded Shimon 2006-10-02 05:56:23 +00:00
parent 1b34d5737d
commit 6b03d096dc

View File

@ -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 @@ typedef struct {
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 @@ static void create_vorbis_context(venc_context_t * venc, AVCodecContext * avccon
// 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 @@ 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);