Fixed a couple bugs (notably in buffer) and added LSP interpolation
[speexdsp.git] / libspeex / speex.h
1 #ifndef SPEEX_H
2 #define SPEEX_H
3
4 /**Structure representing the full state of the encoder*/
5 typedef struct EncState {
6    int    frameSize;      /* Size of frames */
7    int    subframeSize;   /* Size of sub-frames */
8    int    nbSubframes;    /* Number of sub-frames */
9    int    windowSize;     /* Analysis (LPC) window length */
10    int    lpcSize;        /* LPC order */
11    int    bufSize;        /* Buffer size */
12    float *inBuf;          /* Input buffer */
13    float *frame;          /* Start of encoded frame */
14    float *window;         /* Temporary (Hanning) window */
15    float *buf2;           /* 2nd temporary buffer */
16    float *autocorr;       /* auto-correlation */
17    float *lagWindow;      /* Window applied to auto-correlation */
18    float *lpc;            /* LPCs for current frame */
19    float *lsp;            /* LSPs for current frame */
20    float *old_lsp;        /* LSPs for previous frame */
21    float *interp_lsp;     /* Interpolated LSPs */
22    float *interp_lpc;     /* Interpolated LPCs */
23    float *rc;             /* Reflection coefficients */
24    int    first;          /* Is this the first frame? */
25 } EncState;
26
27 typedef struct DecState {
28 } DecState;
29
30 /**Initializes encoder state*/
31 void encoder_init(EncState *st);
32 /**De-allocates encoder state resources*/
33 void encoder_destroy(EncState *st);
34 /**Encodes one frame*/
35 void encode(EncState *st, float *in, int *outSize, void *bits);
36
37 void decoder_init(DecState *st);
38 void decoder_destroy(DecState *st);
39 void decode(DecState *st, float *bits, float *out);
40
41
42
43 #endif