#include <float.h>
#include "opus.h"
+#include "opus_pvq.h"
#include "mdct15.h"
#include "libavutil/float_dsp.h"
#define CELT_POSTFILTER_MINPERIOD 15
#define CELT_ENERGY_SILENCE (-28.0f)
+typedef struct CeltPVQ CeltPVQ;
+
enum CeltSpread {
CELT_SPREAD_NONE,
CELT_SPREAD_LIGHT,
DECLARE_ALIGNED(32, float, coeffs)[CELT_MAX_FRAME_SIZE];
/* Used by the encoder */
- DECLARE_ALIGNED(32, float, overlap)[120];
- DECLARE_ALIGNED(32, float, samples)[CELT_MAX_FRAME_SIZE];
+ DECLARE_ALIGNED(32, float, overlap)[FFALIGN(CELT_OVERLAP, 16)];
+ DECLARE_ALIGNED(32, float, samples)[FFALIGN(CELT_MAX_FRAME_SIZE, 16)];
/* postfilter parameters */
int pf_period_new;
MDCT15Context *imdct[4];
AVFloatDSPContext *dsp;
CeltBlock block[2];
+ CeltPVQ *pvq;
int channels;
int output_channels;
int fine_priority[CELT_MAX_BANDS];
int pulses [CELT_MAX_BANDS];
int tf_change [CELT_MAX_BANDS];
-
- DECLARE_ALIGNED(32, float, scratch)[22 * 8]; // MAX(ff_celt_freq_range) * 1<<CELT_MAX_LOG_BLOCKS
};
/* LCG for noise generation */