resample: remove redundant initialization
[speexdsp.git] / doc / sampledec.c
index 5520b3e..8e89e12 100644 (file)
@@ -1,49 +1,64 @@
-#include <speex.h>
+#include <speex/speex.h>
 #include <stdio.h>
-#include <stdlib.h>
 
+/*The frame size in hardcoded for this sample code but it doesn't have to be*/
 #define FRAME_SIZE 160
 int main(int argc, char **argv)
 {
    char *outFile;
    FILE *fout;
+   /*Holds the audio that will be written to file (16 bits per sample)*/
    short out[FRAME_SIZE];
+   /*Speex handle samples as float, so we need an array of floats*/
    float output[FRAME_SIZE];
    char cbits[200];
    int nbBytes;
+   /*Holds the state of the decoder*/
    void *state;
+   /*Holds bits so they can be read and written to by the Speex routines*/
    SpeexBits bits;
    int i, tmp;
 
-
+   /*Create a new decoder state in narrowband mode*/
    state = speex_decoder_init(&speex_nb_mode);
 
+   /*Set the perceptual enhancement on*/
    tmp=1;
    speex_decoder_ctl(state, SPEEX_SET_ENH, &tmp);
 
    outFile = argv[1];
    fout = fopen(outFile, "w");
 
+   /*Initialization of the structure that holds the bits*/
    speex_bits_init(&bits);
    while (1)
    {
+      /*Read the size encoded by sampleenc, this part will likely be
+        different in your application*/
       fread(&nbBytes, sizeof(int), 1, stdin);
       fprintf (stderr, "nbBytes: %d\n", nbBytes);
       if (feof(stdin))
          break;
 
+      /*Read the "packet" encoded by sampleenc*/
       fread(cbits, 1, nbBytes, stdin);
+      /*Copy the data into the bit-stream struct*/
       speex_bits_read_from(&bits, cbits, nbBytes);
 
+      /*Decode the data*/
       speex_decode(state, &bits, output);
 
+      /*Copy from float to short (16 bits) for output*/
       for (i=0;i<FRAME_SIZE;i++)
          out[i]=output[i];
 
+      /*Write the decoded audio to file*/
       fwrite(out, sizeof(short), FRAME_SIZE, fout);
    }
-   
-   speex_encoder_destroy(state);
+
+   /*Destroy the decoder state*/
+   speex_decoder_destroy(state);
+   /*Destroy the bit-stream truct*/
    speex_bits_destroy(&bits);
    fclose(fout);
    return 0;