Reorganization of the doc, added sample source code
[speexdsp.git] / doc / sampleenc.c
1 #include <speex.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 #define FRAME_SIZE 160
6 int main(int argc, char **argv)
7 {
8    char *inFile;
9    FILE *fin;
10    short in[FRAME_SIZE];
11    float input[FRAME_SIZE];
12    char cbits[200];
13    int nbBytes;
14    void *state;
15    SpeexBits bits;
16    int i, tmp;
17
18
19    state = speex_encoder_init(&speex_nb_mode);
20
21    tmp=8;
22    speex_encoder_ctl(state, SPEEX_SET_QUALITY, &tmp);
23
24    inFile = argv[1];
25    fin = fopen(inFile, "r");
26
27    speex_bits_init(&bits);
28    while (1)
29    {
30       fread(in, sizeof(short), FRAME_SIZE, fin);
31       if (feof(fin))
32          break;
33       for (i=0;i<FRAME_SIZE;i++)
34          input[i]=in[i];
35       speex_bits_reset(&bits);
36
37       speex_encode(state, input, &bits);
38       nbBytes = speex_bits_write(&bits, cbits, 200);
39
40       fwrite(&nbBytes, sizeof(int), 1, stdout);
41       fwrite(cbits, 1, nbBytes, stdout);
42       speex_bits_rewind(&bits);
43       
44    }
45    
46    speex_encoder_destroy(state);
47    speex_bits_destroy(&bits);
48    fclose(fin);
49    return 0;
50 }