Reorganization of the doc, added sample source code
[speexdsp.git] / doc / sampledec.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 *outFile;
9    FILE *fout;
10    short out[FRAME_SIZE];
11    float output[FRAME_SIZE];
12    char cbits[200];
13    int nbBytes;
14    void *state;
15    SpeexBits bits;
16    int i, tmp;
17
18
19    state = speex_decoder_init(&speex_nb_mode);
20
21    tmp=1;
22    speex_decoder_ctl(state, SPEEX_SET_ENH, &tmp);
23
24    outFile = argv[1];
25    fout = fopen(outFile, "w");
26
27    speex_bits_init(&bits);
28    while (1)
29    {
30       fread(&nbBytes, sizeof(int), 1, stdin);
31       fprintf (stderr, "nbBytes: %d\n", nbBytes);
32       if (feof(stdin))
33          break;
34
35       fread(cbits, 1, nbBytes, stdin);
36       speex_bits_read_from(&bits, cbits, nbBytes);
37
38       speex_decode(state, &bits, output);
39
40       for (i=0;i<FRAME_SIZE;i++)
41          out[i]=output[i];
42
43       fwrite(out, sizeof(short), FRAME_SIZE, fout);
44    }
45    
46    speex_encoder_destroy(state);
47    speex_bits_destroy(&bits);
48    fclose(fout);
49    return 0;
50 }