diff --git a/src/modules/audio_coding/codecs/iLBC/main/test/iLBC_test.c b/src/modules/audio_coding/codecs/iLBC/main/test/iLBC_test.c index 7fa61e0053..d2c9ba53cc 100644 --- a/src/modules/audio_coding/codecs/iLBC/main/test/iLBC_test.c +++ b/src/modules/audio_coding/codecs/iLBC/main/test/iLBC_test.c @@ -12,7 +12,7 @@ iLBC Speech Coder ANSI-C Source Code - iLBC_test.c + iLBC_test.c ******************************************************************/ @@ -22,7 +22,7 @@ #include "ilbc.h" /*---------------------------------------------------------------* - * Main program to test iLBC encoding and decoding + * Main program to test iLBC encoding and decoding * * Usage: * exefile_name.exe @@ -38,202 +38,188 @@ #define BLOCKL_MAX 240 #define ILBCNOOFWORDS_MAX 25 -#define ILBCSCRATCHMEMSIZE 2156 - -#ifdef __ILBC_WITH_SCRATCHMEM -WebRtc_Word16 iLBC_ScratchMem[ILBCSCRATCHMEMSIZE]; -WebRtc_Word16 size; -#endif int main(int argc, char* argv[]) { - FILE *ifileid,*efileid,*ofileid, *cfileid; - WebRtc_Word16 data[BLOCKL_MAX]; - WebRtc_Word16 encoded_data[ILBCNOOFWORDS_MAX], decoded_data[BLOCKL_MAX]; - int len; - short pli, mode; - int blockcount = 0; - int packetlosscount = 0; - int frameLen; - WebRtc_Word16 speechType; - iLBC_encinst_t *Enc_Inst; - iLBC_decinst_t *Dec_Inst; + FILE *ifileid,*efileid,*ofileid, *cfileid; + WebRtc_Word16 data[BLOCKL_MAX]; + WebRtc_Word16 encoded_data[ILBCNOOFWORDS_MAX], decoded_data[BLOCKL_MAX]; + int len; + short pli, mode; + int blockcount = 0; + int packetlosscount = 0; + int frameLen; + WebRtc_Word16 speechType; + iLBC_encinst_t *Enc_Inst; + iLBC_decinst_t *Dec_Inst; #ifdef __ILBC_WITH_40BITACC - /* Doublecheck that long long exists */ - if (sizeof(long)>=sizeof(long long)) { - fprintf(stderr, "40-bit simulation is not be supported on this platform\n"); - exit(0); - } + /* Doublecheck that long long exists */ + if (sizeof(long)>=sizeof(long long)) { + fprintf(stderr, "40-bit simulation is not be supported on this platform\n"); + exit(0); + } #endif - /* get arguments and open files */ + /* get arguments and open files */ - if ((argc!=5) && (argc!=6)) { - fprintf(stderr, - "\n*-----------------------------------------------*\n"); - fprintf(stderr, - " %s <20,30> input encoded decoded (channel)\n\n", - argv[0]); - fprintf(stderr, - " mode : Frame size for the encoding/decoding\n"); - fprintf(stderr, - " 20 - 20 ms\n"); - fprintf(stderr, - " 30 - 30 ms\n"); - fprintf(stderr, - " input : Speech for encoder (16-bit pcm file)\n"); - fprintf(stderr, - " encoded : Encoded bit stream\n"); - fprintf(stderr, - " decoded : Decoded speech (16-bit pcm file)\n"); - fprintf(stderr, - " channel : Packet loss pattern, optional (16-bit)\n"); - fprintf(stderr, - " 1 - Packet received correctly\n"); - fprintf(stderr, - " 0 - Packet Lost\n"); - fprintf(stderr, - "*-----------------------------------------------*\n\n"); - exit(1); - } - mode=atoi(argv[1]); - if (mode != 20 && mode != 30) { - fprintf(stderr,"Wrong mode %s, must be 20, or 30\n", - argv[1]); - exit(2); - } - if ( (ifileid=fopen(argv[2],"rb")) == NULL) { - fprintf(stderr,"Cannot open input file %s\n", argv[2]); - exit(2);} - if ( (efileid=fopen(argv[3],"wb")) == NULL) { - fprintf(stderr, "Cannot open encoded file file %s\n", - argv[3]); exit(1);} - if ( (ofileid=fopen(argv[4],"wb")) == NULL) { - fprintf(stderr, "Cannot open decoded file %s\n", - argv[4]); exit(1);} - if (argc==6) { - if( (cfileid=fopen(argv[5],"rb")) == NULL) { - fprintf(stderr, "Cannot open channel file %s\n", - argv[5]); - exit(1); - } - } else { - cfileid=NULL; - } + if ((argc!=5) && (argc!=6)) { + fprintf(stderr, + "\n*-----------------------------------------------*\n"); + fprintf(stderr, + " %s <20,30> input encoded decoded (channel)\n\n", + argv[0]); + fprintf(stderr, + " mode : Frame size for the encoding/decoding\n"); + fprintf(stderr, + " 20 - 20 ms\n"); + fprintf(stderr, + " 30 - 30 ms\n"); + fprintf(stderr, + " input : Speech for encoder (16-bit pcm file)\n"); + fprintf(stderr, + " encoded : Encoded bit stream\n"); + fprintf(stderr, + " decoded : Decoded speech (16-bit pcm file)\n"); + fprintf(stderr, + " channel : Packet loss pattern, optional (16-bit)\n"); + fprintf(stderr, + " 1 - Packet received correctly\n"); + fprintf(stderr, + " 0 - Packet Lost\n"); + fprintf(stderr, + "*-----------------------------------------------*\n\n"); + exit(1); + } + mode=atoi(argv[1]); + if (mode != 20 && mode != 30) { + fprintf(stderr,"Wrong mode %s, must be 20, or 30\n", + argv[1]); + exit(2); + } + if ( (ifileid=fopen(argv[2],"rb")) == NULL) { + fprintf(stderr,"Cannot open input file %s\n", argv[2]); + exit(2);} + if ( (efileid=fopen(argv[3],"wb")) == NULL) { + fprintf(stderr, "Cannot open encoded file file %s\n", + argv[3]); exit(1);} + if ( (ofileid=fopen(argv[4],"wb")) == NULL) { + fprintf(stderr, "Cannot open decoded file %s\n", + argv[4]); exit(1);} + if (argc==6) { + if( (cfileid=fopen(argv[5],"rb")) == NULL) { + fprintf(stderr, "Cannot open channel file %s\n", + argv[5]); + exit(1); + } + } else { + cfileid=NULL; + } - /* print info */ + /* print info */ - fprintf(stderr, "\n"); - fprintf(stderr, - "*---------------------------------------------------*\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "* iLBC test program *\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "*---------------------------------------------------*\n"); - fprintf(stderr,"\nMode : %2d ms\n", mode); - fprintf(stderr,"Input file : %s\n", argv[2]); - fprintf(stderr,"Encoded file : %s\n", argv[3]); - fprintf(stderr,"Output file : %s\n", argv[4]); - if (argc==6) { - fprintf(stderr,"Channel file : %s\n", argv[5]); - } - fprintf(stderr,"\n"); + fprintf(stderr, "\n"); + fprintf(stderr, + "*---------------------------------------------------*\n"); + fprintf(stderr, + "* *\n"); + fprintf(stderr, + "* iLBC test program *\n"); + fprintf(stderr, + "* *\n"); + fprintf(stderr, + "* *\n"); + fprintf(stderr, + "*---------------------------------------------------*\n"); + fprintf(stderr,"\nMode : %2d ms\n", mode); + fprintf(stderr,"Input file : %s\n", argv[2]); + fprintf(stderr,"Encoded file : %s\n", argv[3]); + fprintf(stderr,"Output file : %s\n", argv[4]); + if (argc==6) { + fprintf(stderr,"Channel file : %s\n", argv[5]); + } + fprintf(stderr,"\n"); - /* Create structs */ - WebRtcIlbcfix_EncoderCreate(&Enc_Inst); - WebRtcIlbcfix_DecoderCreate(&Dec_Inst); + /* Create structs */ + WebRtcIlbcfix_EncoderCreate(&Enc_Inst); + WebRtcIlbcfix_DecoderCreate(&Dec_Inst); -#ifdef __ILBC_WITH_SCRATCHMEM - /* Assign scratch memory. Note that Enc and Dec can use the same area */ - WebRtcIlbcfix_EncoderAssignScratchMem(Enc_Inst, iLBC_ScratchMem, &size); - if (size>ILBCSCRATCHMEMSIZE) { fprintf(stderr,"Error: Scratch not big enough"); exit(0); } - WebRtcIlbcfix_DecoderAssignScratchMem(Dec_Inst, iLBC_ScratchMem, &size); - if (size>ILBCSCRATCHMEMSIZE) { fprintf(stderr,"Error: Scratch not big enough"); exit(0); } -#endif - /* Initialization */ + /* Initialization */ - WebRtcIlbcfix_EncoderInit(Enc_Inst, mode); - WebRtcIlbcfix_DecoderInit(Dec_Inst, mode); - frameLen = mode*8; + WebRtcIlbcfix_EncoderInit(Enc_Inst, mode); + WebRtcIlbcfix_DecoderInit(Dec_Inst, mode); + frameLen = mode*8; - /* loop over input blocks */ + /* loop over input blocks */ - while (((WebRtc_Word16)fread(data,sizeof(WebRtc_Word16),frameLen,ifileid))== - frameLen) { - - blockcount++; - - /* encoding */ + while (((WebRtc_Word16)fread(data,sizeof(WebRtc_Word16),frameLen,ifileid))== + frameLen) { - fprintf(stderr, "--- Encoding block %i --- ",blockcount); - len=WebRtcIlbcfix_Encode(Enc_Inst, data, (WebRtc_Word16)frameLen, encoded_data); - fprintf(stderr, "\r"); + blockcount++; - /* write byte file */ + /* encoding */ - fwrite(encoded_data, sizeof(WebRtc_Word16), ((len+1)/sizeof(WebRtc_Word16)), efileid); + fprintf(stderr, "--- Encoding block %i --- ",blockcount); + len=WebRtcIlbcfix_Encode(Enc_Inst, data, (WebRtc_Word16)frameLen, encoded_data); + fprintf(stderr, "\r"); - /* get channel data if provided */ - if (argc==6) { - if (fread(&pli, sizeof(WebRtc_Word16), 1, cfileid)) { - if ((pli!=0)&&(pli!=1)) { - fprintf(stderr, "Error in channel file\n"); - exit(0); - } - if (pli==0) { - /* Packet loss -> remove info from frame */ - memset(encoded_data, 0, - sizeof(WebRtc_Word16)*ILBCNOOFWORDS_MAX); - packetlosscount++; - } - } else { - fprintf(stderr, "Error. Channel file too short\n"); - exit(0); - } - } else { - pli=1; - } - - /* decoding */ + /* write byte file */ - fprintf(stderr, "--- Decoding block %i --- ",blockcount); - if (pli==1) { - len=WebRtcIlbcfix_Decode(Dec_Inst, encoded_data, - (WebRtc_Word16)len, decoded_data,&speechType); - } else { - len=WebRtcIlbcfix_DecodePlc(Dec_Inst, decoded_data, 1); - } - fprintf(stderr, "\r"); + fwrite(encoded_data, sizeof(WebRtc_Word16), ((len+1)/sizeof(WebRtc_Word16)), efileid); - /* write output file */ + /* get channel data if provided */ + if (argc==6) { + if (fread(&pli, sizeof(WebRtc_Word16), 1, cfileid)) { + if ((pli!=0)&&(pli!=1)) { + fprintf(stderr, "Error in channel file\n"); + exit(0); + } + if (pli==0) { + /* Packet loss -> remove info from frame */ + memset(encoded_data, 0, + sizeof(WebRtc_Word16)*ILBCNOOFWORDS_MAX); + packetlosscount++; + } + } else { + fprintf(stderr, "Error. Channel file too short\n"); + exit(0); + } + } else { + pli=1; + } - fwrite(decoded_data,sizeof(WebRtc_Word16),len,ofileid); - } - - /* close files */ + /* decoding */ - fclose(ifileid); fclose(efileid); fclose(ofileid); - if (argc==6) { - fclose(cfileid); - } + fprintf(stderr, "--- Decoding block %i --- ",blockcount); + if (pli==1) { + len=WebRtcIlbcfix_Decode(Dec_Inst, encoded_data, + (WebRtc_Word16)len, decoded_data,&speechType); + } else { + len=WebRtcIlbcfix_DecodePlc(Dec_Inst, decoded_data, 1); + } + fprintf(stderr, "\r"); - /* Free structs */ - WebRtcIlbcfix_EncoderFree(Enc_Inst); - WebRtcIlbcfix_DecoderFree(Dec_Inst); + /* write output file */ - - printf("\nDone with simulation\n\n"); + fwrite(decoded_data,sizeof(WebRtc_Word16),len,ofileid); + } - return(0); + /* close files */ + + fclose(ifileid); fclose(efileid); fclose(ofileid); + if (argc==6) { + fclose(cfileid); + } + + /* Free structs */ + WebRtcIlbcfix_EncoderFree(Enc_Inst); + WebRtcIlbcfix_DecoderFree(Dec_Inst); + + + printf("\nDone with simulation\n\n"); + + return(0); } - diff --git a/src/modules/audio_coding/codecs/iLBC/main/test/iLBC_testprogram.c b/src/modules/audio_coding/codecs/iLBC/main/test/iLBC_testprogram.c index 2a00829ea6..f67945ed3b 100644 --- a/src/modules/audio_coding/codecs/iLBC/main/test/iLBC_testprogram.c +++ b/src/modules/audio_coding/codecs/iLBC/main/test/iLBC_testprogram.c @@ -12,7 +12,7 @@ iLBC Speech Coder ANSI-C Source Code - iLBC_test.c + iLBC_test.c ******************************************************************/ @@ -36,47 +36,47 @@ /* #define CLOCKS_PER_SEC 1000 */ /*----------------------------------------------------------------* - * Encoder interface function + * Encoder interface function *---------------------------------------------------------------*/ -short encode( /* (o) Number of bytes encoded */ - iLBC_Enc_Inst_t *iLBCenc_inst, /* (i/o) Encoder instance */ - WebRtc_Word16 *encoded_data, /* (o) The encoded bytes */ - WebRtc_Word16 *data /* (i) The signal block to encode */ -){ +short encode( /* (o) Number of bytes encoded */ + iLBC_Enc_Inst_t *iLBCenc_inst, /* (i/o) Encoder instance */ + WebRtc_Word16 *encoded_data, /* (o) The encoded bytes */ + WebRtc_Word16 *data /* (i) The signal block to encode */ + ){ - /* do the actual encoding */ + /* do the actual encoding */ WebRtcIlbcfix_Encode((WebRtc_UWord16 *)encoded_data, data, iLBCenc_inst); - return (iLBCenc_inst->no_of_bytes); + return (iLBCenc_inst->no_of_bytes); } /*----------------------------------------------------------------* - * Decoder interface function + * Decoder interface function *---------------------------------------------------------------*/ short decode( /* (o) Number of decoded samples */ - iLBC_Dec_Inst_t *iLBCdec_inst, /* (i/o) Decoder instance */ - short *decoded_data, /* (o) Decoded signal block */ - short *encoded_data, /* (i) Encoded bytes */ - short mode /* (i) 0=PL, 1=Normal */ -){ + iLBC_Dec_Inst_t *iLBCdec_inst, /* (i/o) Decoder instance */ + short *decoded_data, /* (o) Decoded signal block */ + short *encoded_data, /* (i) Encoded bytes */ + short mode /* (i) 0=PL, 1=Normal */ + ){ - /* check if mode is valid */ + /* check if mode is valid */ - if (mode<0 || mode>1) { - printf("\nERROR - Wrong mode - 0, 1 allowed\n"); exit(3);} + if (mode<0 || mode>1) { + printf("\nERROR - Wrong mode - 0, 1 allowed\n"); exit(3);} - /* do actual decoding of block */ + /* do actual decoding of block */ - WebRtcIlbcfix_Decode(decoded_data, (WebRtc_UWord16 *)encoded_data, - iLBCdec_inst, mode); + WebRtcIlbcfix_Decode(decoded_data, (WebRtc_UWord16 *)encoded_data, + iLBCdec_inst, mode); - return (iLBCdec_inst->blockl); + return (iLBCdec_inst->blockl); } /*----------------------------------------------------------------* - * Main program to test iLBC encoding and decoding + * Main program to test iLBC encoding and decoding * * Usage: * exefile_name.exe @@ -89,260 +89,255 @@ short decode( /* (o) Number of decoded samples */ int main(int argc, char* argv[]) { - /* Runtime statistics */ + /* Runtime statistics */ - float starttime1, starttime2; - float runtime1, runtime2; - float outtime; + float starttime1, starttime2; + float runtime1, runtime2; + float outtime; - FILE *ifileid,*efileid,*ofileid, *chfileid; - short *inputdata, *encodeddata, *decodeddata; - short *channeldata; - int blockcount = 0, noOfBlocks=0, i, noOfLostBlocks=0; - short mode; - iLBC_Enc_Inst_t Enc_Inst; - iLBC_Dec_Inst_t Dec_Inst; + FILE *ifileid,*efileid,*ofileid, *chfileid; + short *inputdata, *encodeddata, *decodeddata; + short *channeldata; + int blockcount = 0, noOfBlocks=0, i, noOfLostBlocks=0; + short mode; + iLBC_Enc_Inst_t Enc_Inst; + iLBC_Dec_Inst_t Dec_Inst; - short frameLen; - short count; + short frameLen; + short count; #ifdef SPLIT_10MS - short size; + short size; #endif - inputdata=(short*) malloc(MAXFILELEN*sizeof(short)); - if (inputdata==NULL) { - fprintf(stderr,"Could not allocate memory for vector\n"); - exit(0); - } - encodeddata=(short*) malloc(ILBCNOOFWORDS_MAX*MAXFRAMES*sizeof(short)); - if (encodeddata==NULL) { - fprintf(stderr,"Could not allocate memory for vector\n"); - free(inputdata); - exit(0); - } - decodeddata=(short*) malloc(MAXFILELEN*sizeof(short)); - if (decodeddata==NULL) { - fprintf(stderr,"Could not allocate memory for vector\n"); - free(inputdata); - free(encodeddata); - exit(0); - } - channeldata=(short*) malloc(MAXFRAMES*sizeof(short)); - if (channeldata==NULL) { - fprintf(stderr,"Could not allocate memory for vector\n"); - free(inputdata); - free(encodeddata); - free(decodeddata); - exit(0); - } + inputdata=(short*) malloc(MAXFILELEN*sizeof(short)); + if (inputdata==NULL) { + fprintf(stderr,"Could not allocate memory for vector\n"); + exit(0); + } + encodeddata=(short*) malloc(ILBCNOOFWORDS_MAX*MAXFRAMES*sizeof(short)); + if (encodeddata==NULL) { + fprintf(stderr,"Could not allocate memory for vector\n"); + free(inputdata); + exit(0); + } + decodeddata=(short*) malloc(MAXFILELEN*sizeof(short)); + if (decodeddata==NULL) { + fprintf(stderr,"Could not allocate memory for vector\n"); + free(inputdata); + free(encodeddata); + exit(0); + } + channeldata=(short*) malloc(MAXFRAMES*sizeof(short)); + if (channeldata==NULL) { + fprintf(stderr,"Could not allocate memory for vector\n"); + free(inputdata); + free(encodeddata); + free(decodeddata); + exit(0); + } - /* get arguments and open files */ + /* get arguments and open files */ - if (argc != 6 ) { - fprintf(stderr, "%s mode inputfile bytefile outputfile channelfile\n", - argv[0]); - fprintf(stderr, "Example:\n"); - fprintf(stderr, "%s <30,20> in.pcm byte.dat out.pcm T30.0.dat\n", argv[0]); - exit(1); - } - mode=atoi(argv[1]); - if (mode != 20 && mode != 30) { - fprintf(stderr,"Wrong mode %s, must be 20, or 30\n", argv[1]); - exit(2); - } - if ( (ifileid=fopen(argv[2],"rb")) == NULL) { - fprintf(stderr,"Cannot open input file %s\n", argv[2]); - exit(2);} - if ( (efileid=fopen(argv[3],"wb")) == NULL) { - fprintf(stderr, "Cannot open channelfile file %s\n", - argv[3]); exit(3);} - if( (ofileid=fopen(argv[4],"wb")) == NULL) { - fprintf(stderr, "Cannot open output file %s\n", - argv[4]); exit(3);} - if ( (chfileid=fopen(argv[5],"rb")) == NULL) { - fprintf(stderr,"Cannot open channel file file %s\n", argv[5]); - exit(2);} + if (argc != 6 ) { + fprintf(stderr, "%s mode inputfile bytefile outputfile channelfile\n", + argv[0]); + fprintf(stderr, "Example:\n"); + fprintf(stderr, "%s <30,20> in.pcm byte.dat out.pcm T30.0.dat\n", argv[0]); + exit(1); + } + mode=atoi(argv[1]); + if (mode != 20 && mode != 30) { + fprintf(stderr,"Wrong mode %s, must be 20, or 30\n", argv[1]); + exit(2); + } + if ( (ifileid=fopen(argv[2],"rb")) == NULL) { + fprintf(stderr,"Cannot open input file %s\n", argv[2]); + exit(2);} + if ( (efileid=fopen(argv[3],"wb")) == NULL) { + fprintf(stderr, "Cannot open channelfile file %s\n", + argv[3]); exit(3);} + if( (ofileid=fopen(argv[4],"wb")) == NULL) { + fprintf(stderr, "Cannot open output file %s\n", + argv[4]); exit(3);} + if ( (chfileid=fopen(argv[5],"rb")) == NULL) { + fprintf(stderr,"Cannot open channel file file %s\n", argv[5]); + exit(2);} - /* print info */ + /* print info */ #ifndef PRINT_MIPS - fprintf(stderr, "\n"); - fprintf(stderr, - "*---------------------------------------------------*\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "* iLBCtest *\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "* *\n"); - fprintf(stderr, - "*---------------------------------------------------*\n"); + fprintf(stderr, "\n"); + fprintf(stderr, + "*---------------------------------------------------*\n"); + fprintf(stderr, + "* *\n"); + fprintf(stderr, + "* iLBCtest *\n"); + fprintf(stderr, + "* *\n"); + fprintf(stderr, + "* *\n"); + fprintf(stderr, + "*---------------------------------------------------*\n"); #ifdef SPLIT_10MS - fprintf(stderr,"\n10ms split with raw mode: %2d ms\n", mode); + fprintf(stderr,"\n10ms split with raw mode: %2d ms\n", mode); #else - fprintf(stderr,"\nMode : %2d ms\n", mode); + fprintf(stderr,"\nMode : %2d ms\n", mode); #endif - fprintf(stderr,"\nInput file : %s\n", argv[2]); - fprintf(stderr,"Coded file : %s\n", argv[3]); - fprintf(stderr,"Output file : %s\n\n", argv[4]); - fprintf(stderr,"Channel file : %s\n\n", argv[5]); + fprintf(stderr,"\nInput file : %s\n", argv[2]); + fprintf(stderr,"Coded file : %s\n", argv[3]); + fprintf(stderr,"Output file : %s\n\n", argv[4]); + fprintf(stderr,"Channel file : %s\n\n", argv[5]); #endif - /* Initialization */ + /* Initialization */ - WebRtcIlbcfix_EncoderInit(&Enc_Inst, mode); - WebRtcIlbcfix_DecoderInit(&Dec_Inst, mode, 1); + WebRtcIlbcfix_EncoderInit(&Enc_Inst, mode); + WebRtcIlbcfix_DecoderInit(&Dec_Inst, mode, 1); -#if __ILBC_WITH_SCRATCHMEM - // we can use the same scratch space for both encoder and decoder. - WebRtcIlbcfix_EncoderAssignScratchMem((iLBC_encinst_t*)&Enc_Inst, scratchBlock, &size); - WebRtcIlbcfix_DecoderAssignScratchMem((iLBC_decinst_t*)&Dec_Inst, scratchBlock, &size); -#endif - - /* extract the input file and channel file */ + /* extract the input file and channel file */ #ifdef SPLIT_10MS - frameLen = (mode==20)? 80:160; - fread(Enc_Inst.past_samples, sizeof(short), frameLen, ifileid); - Enc_Inst.section = 0; + frameLen = (mode==20)? 80:160; + fread(Enc_Inst.past_samples, sizeof(short), frameLen, ifileid); + Enc_Inst.section = 0; - while( fread(&inputdata[noOfBlocks*80], sizeof(short), - 80, ifileid) == 80 ) { - noOfBlocks++; - } + while( fread(&inputdata[noOfBlocks*80], sizeof(short), + 80, ifileid) == 80 ) { + noOfBlocks++; + } - noOfBlocks += frameLen/80; - frameLen = 80; + noOfBlocks += frameLen/80; + frameLen = 80; #else - frameLen = Enc_Inst.blockl; + frameLen = Enc_Inst.blockl; - while( fread(&inputdata[noOfBlocks*Enc_Inst.blockl],sizeof(short), - Enc_Inst.blockl,ifileid)==(WebRtc_UWord16)Enc_Inst.blockl){ - noOfBlocks++; - } + while( fread(&inputdata[noOfBlocks*Enc_Inst.blockl],sizeof(short), + Enc_Inst.blockl,ifileid)==(WebRtc_UWord16)Enc_Inst.blockl){ + noOfBlocks++; + } #endif - - while ( (fread(&channeldata[blockcount],sizeof(short), 1,chfileid)==1) - && ( blockcount < noOfBlocks/(Enc_Inst.blockl/frameLen) ) ) { - blockcount++; - } - if ( blockcount < noOfBlocks/(Enc_Inst.blockl/frameLen) ) { - fprintf(stderr,"Channel file %s is too short\n", argv[4]); - free(inputdata); - free(encodeddata); - free(decodeddata); - free(channeldata); - exit(0); - } + while ((fread(&channeldata[blockcount],sizeof(short), 1,chfileid)==1) + && ( blockcount < noOfBlocks/(Enc_Inst.blockl/frameLen) )) { + blockcount++; + } - count=0; + if ( blockcount < noOfBlocks/(Enc_Inst.blockl/frameLen) ) { + fprintf(stderr,"Channel file %s is too short\n", argv[4]); + free(inputdata); + free(encodeddata); + free(decodeddata); + free(channeldata); + exit(0); + } - /* Runtime statistics */ + count=0; - starttime1 = clock()/(float)CLOCKS_PER_SEC; + /* Runtime statistics */ - /* Encoding loop */ - #ifdef PRINT_MIPS - printf("-1 -1\n"); - #endif + starttime1 = clock()/(float)CLOCKS_PER_SEC; + + /* Encoding loop */ +#ifdef PRINT_MIPS + printf("-1 -1\n"); +#endif #ifdef SPLIT_10MS - /* "Enc_Inst.section != 0" is to make sure we run through full - lengths of all vectors for 10ms split mode. - */ -// while( (count < noOfBlocks) || (Enc_Inst.section != 0) ) { - while( count < blockcount * (Enc_Inst.blockl/frameLen) ) { + /* "Enc_Inst.section != 0" is to make sure we run through full + lengths of all vectors for 10ms split mode. + */ + // while( (count < noOfBlocks) || (Enc_Inst.section != 0) ) { + while( count < blockcount * (Enc_Inst.blockl/frameLen) ) { - encode(&Enc_Inst, &encodeddata[Enc_Inst.no_of_words * - (count/(Enc_Inst.nsub/2))], &inputdata[frameLen * count] ); + encode(&Enc_Inst, &encodeddata[Enc_Inst.no_of_words * + (count/(Enc_Inst.nsub/2))], + &inputdata[frameLen * count] ); #else - while (count < noOfBlocks) { - encode( &Enc_Inst, &encodeddata[Enc_Inst.no_of_words * count], - &inputdata[frameLen * count] ); + while (count < noOfBlocks) { + encode( &Enc_Inst, &encodeddata[Enc_Inst.no_of_words * count], + &inputdata[frameLen * count] ); #endif - #ifdef PRINT_MIPS - printf("-1 -1\n"); - #endif +#ifdef PRINT_MIPS + printf("-1 -1\n"); +#endif - count++; - } + count++; + } - count=0; + count=0; - /* Runtime statistics */ + /* Runtime statistics */ - starttime2=clock()/(float)CLOCKS_PER_SEC; - runtime1 = (float)(starttime2-starttime1); + starttime2=clock()/(float)CLOCKS_PER_SEC; + runtime1 = (float)(starttime2-starttime1); - /* Decoding loop */ + /* Decoding loop */ - while (count < blockcount) { - if (channeldata[count]==1) { - /* Normal decoding */ - decode(&Dec_Inst, &decodeddata[count * Dec_Inst.blockl], - &encodeddata[Dec_Inst.no_of_words * count], 1); - } else if (channeldata[count]==0) { - /* PLC */ - short emptydata[ILBCNOOFWORDS_MAX]; - memset(emptydata, 0, Dec_Inst.no_of_words*sizeof(short)); - decode(&Dec_Inst, &decodeddata[count*Dec_Inst.blockl], - emptydata, 0); - noOfLostBlocks++; - } else { - printf("Error in channel file (values have to be either 1 or 0)\n"); - exit(0); - } - #ifdef PRINT_MIPS - printf("-1 -1\n"); - #endif + while (count < blockcount) { + if (channeldata[count]==1) { + /* Normal decoding */ + decode(&Dec_Inst, &decodeddata[count * Dec_Inst.blockl], + &encodeddata[Dec_Inst.no_of_words * count], 1); + } else if (channeldata[count]==0) { + /* PLC */ + short emptydata[ILBCNOOFWORDS_MAX]; + memset(emptydata, 0, Dec_Inst.no_of_words*sizeof(short)); + decode(&Dec_Inst, &decodeddata[count*Dec_Inst.blockl], + emptydata, 0); + noOfLostBlocks++; + } else { + printf("Error in channel file (values have to be either 1 or 0)\n"); + exit(0); + } +#ifdef PRINT_MIPS + printf("-1 -1\n"); +#endif - count++; - } + count++; + } - /* Runtime statistics */ + /* Runtime statistics */ - runtime2 = (float)(clock()/(float)CLOCKS_PER_SEC-starttime2); + runtime2 = (float)(clock()/(float)CLOCKS_PER_SEC-starttime2); - outtime = (float)((float)blockcount* - (float)mode/1000.0); + outtime = (float)((float)blockcount* + (float)mode/1000.0); #ifndef PRINT_MIPS - printf("\nLength of speech file: %.1f s\n", outtime); - printf("Lost frames : %.1f%%\n\n", 100*(float)noOfLostBlocks/(float)blockcount); + printf("\nLength of speech file: %.1f s\n", outtime); + printf("Lost frames : %.1f%%\n\n", 100*(float)noOfLostBlocks/(float)blockcount); - printf("Time to run iLBC_encode+iLBC_decode:"); - printf(" %.1f s (%.1f%% of realtime)\n", runtime1+runtime2, - (100*(runtime1+runtime2)/outtime)); + printf("Time to run iLBC_encode+iLBC_decode:"); + printf(" %.1f s (%.1f%% of realtime)\n", runtime1+runtime2, + (100*(runtime1+runtime2)/outtime)); - printf("Time in iLBC_encode :"); - printf(" %.1f s (%.1f%% of total runtime)\n", - runtime1, 100.0*runtime1/(runtime1+runtime2)); + printf("Time in iLBC_encode :"); + printf(" %.1f s (%.1f%% of total runtime)\n", + runtime1, 100.0*runtime1/(runtime1+runtime2)); - printf("Time in iLBC_decode :"); - printf(" %.1f s (%.1f%% of total runtime)\n\n", - runtime2, 100.0*runtime2/(runtime1+runtime2)); + printf("Time in iLBC_decode :"); + printf(" %.1f s (%.1f%% of total runtime)\n\n", + runtime2, 100.0*runtime2/(runtime1+runtime2)); #endif - /* Write data to files */ - for (i=0; i