[Speex-dev] Error while decoding the audio file.

Rannes Ahmed raneez_n at yahoo.com
Thu Mar 8 09:36:13 PST 2012




The code i used for decoding is given below:

#include <jni.h>
#include <stdio.h>
#include "speex/speex.h"

 #define FRAME_SIZE 160


void Java_com_m2_iSmartDm_ISmartDMActivity_spxDec(JNIEnv * env, jobject jobj,jstring dir1,jstring dir2)
{
    const char *inFile= (*env)->GetStringUTFChars(env,dir1,0);
    const char *outFile= (*env)->GetStringUTFChars(env,dir2,0);
    FILE *fin;
    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);

  fin = fopen(inFile, "r");
  fout=fopen(outFile,"w");

  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, fin);
   if (feof(stdin))
    break;

   /*Read the "packet" encoded by sampleenc*/
   fread(cbits, 1, nbBytes, fin);

   /*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);

   }
  /*Destroy the decoder state*/
   speex_decoder_destroy(state);
   /*Destroy the bit-stream truct*/
   speex_bits_destroy(&bits);
   fclose(fout);
   fclose(fin);

Please check this code and correct me. Thanks
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20120308/797395ef/attachment.htm 


More information about the Speex-dev mailing list