#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "vorbis/codec.h"
#include "codec_internal.h"
#include "masking.h"
#include "psy.h"
#include "os.h"
#include "lpc.h"
#include "smallft.h"
#include "scales.h"
#include "misc.h"
#define NEGINF …
static const double stereo_threshholds[]= …;
static const double stereo_threshholds_limited[]= …;
vorbis_look_psy_global *_vp_global_look(vorbis_info *vi){ … }
void _vp_global_free(vorbis_look_psy_global *look){ … }
void _vi_gpsy_free(vorbis_info_psy_global *i){ … }
void _vi_psy_free(vorbis_info_psy *i){ … }
static void min_curve(float *c,
float *c2){ … }
static void max_curve(float *c,
float *c2){ … }
static void attenuate_curve(float *c,float att){ … }
static float ***setup_tone_curves(float curveatt_dB[P_BANDS],float binHz,int n,
float center_boost, float center_decay_rate){ … }
void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,
vorbis_info_psy_global *gi,int n,long rate){ … }
void _vp_psy_clear(vorbis_look_psy *p){ … }
static void seed_curve(float *seed,
const float **curves,
float amp,
int oc, int n,
int linesper,float dBoffset){ … }
static void seed_loop(vorbis_look_psy *p,
const float ***curves,
const float *f,
const float *flr,
float *seed,
float specmax){ … }
static void seed_chase(float *seeds, int linesper, long n){ … }
#include<stdio.h>
static void max_seeds(vorbis_look_psy *p,
float *seed,
float *flr){ … }
static void bark_noise_hybridmp(int n,const long *b,
const float *f,
float *noise,
const float offset,
const int fixed){ … }
void _vp_noisemask(vorbis_look_psy *p,
float *logmdct,
float *logmask){ … }
void _vp_tonemask(vorbis_look_psy *p,
float *logfft,
float *logmask,
float global_specmax,
float local_specmax){ … }
void _vp_offset_and_mix(vorbis_look_psy *p,
float *noise,
float *tone,
int offset_select,
float *logmask,
float *mdct,
float *logmdct){ … }
float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd){ … }
static float FLOOR1_fromdB_LOOKUP[256]= …;
static int apsort(const void *a, const void *b){ … }
static void flag_lossless(int limit, float prepoint, float postpoint, float *mdct,
float *floor, int *flag, int i, int jn){ … }
static float noise_normalize(vorbis_look_psy *p, int limit, float *r, float *q, float *f, int *flags, float acc, int i, int n, int *out){ … }
void _vp_couple_quantize_normalize(int blobno,
vorbis_info_psy_global *g,
vorbis_look_psy *p,
vorbis_info_mapping0 *vi,
float **mdct,
int **iwork,
int *nonzero,
int sliding_lowpass,
int ch){ … }