00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef SB_CELP_H
00037 #define SB_CELP_H
00038
00039 #include "modes.h"
00040 #include "speex_bits.h"
00041 #include "nb_celp.h"
00042
00044 typedef struct SBEncState {
00045 SpeexMode *mode;
00046 void *st_low;
00047 int full_frame_size;
00048 int frame_size;
00049 int subframeSize;
00050 int nbSubframes;
00051 int windowSize;
00052 int lpcSize;
00053 int bufSize;
00054 int first;
00055 float lag_factor;
00056 float lpc_floor;
00057 float gamma1;
00058 float gamma2;
00060 char *stack;
00061 float *x0d, *x1d;
00062 float *high;
00063 float *y0, *y1;
00064 float *h0_mem, *h1_mem, *g0_mem, *g1_mem;
00066 float *excBuf;
00067 float *exc;
00068 float *buf;
00069 float *res;
00070 float *sw;
00071 float *target;
00072 float *window;
00073 float *lagWindow;
00074 float *autocorr;
00075 float *lpc;
00076 float *lsp;
00077 float *qlsp;
00078 float *old_lsp;
00079 float *old_qlsp;
00080 float *interp_lsp;
00081 float *interp_qlsp;
00082 float *interp_lpc;
00083 float *interp_qlpc;
00084 float *bw_lpc1;
00085 float *bw_lpc2;
00087 float *mem_sp;
00088 float *mem_sp2;
00089 float *mem_sw;
00090 float *pi_gain;
00091
00092 float vbr_quality;
00093 int vbr_enabled;
00094 int abr_enabled;
00095 float abr_drift;
00096 float abr_drift2;
00097 float abr_count;
00098 int vad_enabled;
00099 float relative_quality;
00100
00101 int encode_submode;
00102 SpeexSubmode **submodes;
00103 int submodeID;
00104 int submodeSelect;
00105 int complexity;
00106 int sampling_rate;
00107
00108 } SBEncState;
00109
00110
00112 typedef struct SBDecState {
00113 SpeexMode *mode;
00114 void *st_low;
00115 int full_frame_size;
00116 int frame_size;
00117 int subframeSize;
00118 int nbSubframes;
00119 int lpcSize;
00120 int first;
00121 int sampling_rate;
00122 int lpc_enh_enabled;
00123
00124 char *stack;
00125 float *x0d, *x1d;
00126 float *high;
00127 float *y0, *y1;
00128 float *h0_mem, *h1_mem, *g0_mem, *g1_mem;
00129
00130 float *exc;
00131 float *qlsp;
00132 float *old_qlsp;
00133 float *interp_qlsp;
00134 float *interp_qlpc;
00135
00136 float *mem_sp;
00137 float *pi_gain;
00138
00139 int encode_submode;
00140 SpeexSubmode **submodes;
00141 int submodeID;
00142 } SBDecState;
00143
00144
00146 void *sb_encoder_init(SpeexMode *m);
00147
00149 void sb_encoder_destroy(void *state);
00150
00152 int sb_encode(void *state, float *in, SpeexBits *bits);
00153
00154
00156 void *sb_decoder_init(SpeexMode *m);
00157
00159 void sb_decoder_destroy(void *state);
00160
00162 int sb_decode(void *state, SpeexBits *bits, float *out);
00163
00164 int sb_encoder_ctl(void *state, int request, void *ptr);
00165
00166 int sb_decoder_ctl(void *state, int request, void *ptr);
00167
00168 #endif