| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |    2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 
|    3  * |    3  * | 
|    4  *  Use of this source code is governed by a BSD-style license |    4  *  Use of this source code is governed by a BSD-style license | 
|    5  *  that can be found in the LICENSE file in the root of the source |    5  *  that can be found in the LICENSE file in the root of the source | 
|    6  *  tree. An additional intellectual property rights grant can be found |    6  *  tree. An additional intellectual property rights grant can be found | 
|    7  *  in the file PATENTS.  All contributing project authors may |    7  *  in the file PATENTS.  All contributing project authors may | 
|    8  *  be found in the AUTHORS file in the root of the source tree. |    8  *  be found in the AUTHORS file in the root of the source tree. | 
|    9  */ |    9  */ | 
|   10  |   10  | 
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  117   int16_t decoded[MAX_FRAMESAMPLES]; |  117   int16_t decoded[MAX_FRAMESAMPLES]; | 
|  118   uint16_t streamdata[500]; |  118   uint16_t streamdata[500]; | 
|  119   int16_t speechType[1]; |  119   int16_t speechType[1]; | 
|  120   size_t prevFrameSize = 1; |  120   size_t prevFrameSize = 1; | 
|  121   int16_t rateBPS = 0; |  121   int16_t rateBPS = 0; | 
|  122   int16_t fixedFL = 0; |  122   int16_t fixedFL = 0; | 
|  123   int16_t payloadSize = 0; |  123   int16_t payloadSize = 0; | 
|  124   int32_t payloadRate = 0; |  124   int32_t payloadRate = 0; | 
|  125   int setControlBWE = 0; |  125   int setControlBWE = 0; | 
|  126   int readLoss; |  126   int readLoss; | 
|  127   FILE  *plFile = NULL; |  127   FILE* plFile = nullptr; | 
|  128  |  128  | 
|  129   char version_number[20]; |  129   char version_number[20]; | 
|  130   char tmpBit[5] = ".bit"; |  130   char tmpBit[5] = ".bit"; | 
|  131  |  131  | 
|  132   int totalbits =0; |  132   int totalbits =0; | 
|  133   int totalsmpls =0; |  133   int totalsmpls =0; | 
|  134   int16_t testNum, testCE; |  134   int16_t testNum, testCE; | 
|  135  |  135  | 
|  136   FILE *fp_gns = NULL; |  136   FILE* fp_gns = nullptr; | 
|  137   int gns = 0; |  137   int gns = 0; | 
|  138   int cur_delay = 0; |  138   int cur_delay = 0; | 
|  139   char gns_file[100]; |  139   char gns_file[100]; | 
|  140  |  140  | 
|  141   int nbTest = 0; |  141   int nbTest = 0; | 
|  142   int16_t lostFrame; |  142   int16_t lostFrame; | 
|  143   float scale = (float)0.7; |  143   float scale = (float)0.7; | 
|  144   /* only one structure used for ISAC encoder */ |  144   /* only one structure used for ISAC encoder */ | 
|  145   ISACFIX_MainStruct *ISAC_main_inst = NULL; |  145   ISACFIX_MainStruct* ISAC_main_inst = nullptr; | 
|  146  |  146  | 
|  147   /* For fault test 10, garbage data */ |  147   /* For fault test 10, garbage data */ | 
|  148   FILE *seedfile; |  148   FILE *seedfile; | 
|  149   unsigned int random_seed = (unsigned int) time(NULL);//1196764538 |  149   unsigned int random_seed = (unsigned int)time(nullptr);  // 1196764538 | 
|  150  |  150  | 
|  151   BottleNeckModel       BN_data; |  151   BottleNeckModel       BN_data; | 
|  152   f_bn  = NULL; |  152   f_bn = nullptr; | 
|  153  |  153  | 
|  154   readLoss = 0; |  154   readLoss = 0; | 
|  155   packetLossPercent = 0; |  155   packetLossPercent = 0; | 
|  156  |  156  | 
|  157   /* Handling wrong input arguments in the command line */ |  157   /* Handling wrong input arguments in the command line */ | 
|  158   if ((argc<3) || (argc>21))  { |  158   if ((argc<3) || (argc>21))  { | 
|  159     printf("\n\nWrong number of arguments or flag values.\n\n"); |  159     printf("\n\nWrong number of arguments or flag values.\n\n"); | 
|  160  |  160  | 
|  161     printf("\n"); |  161     printf("\n"); | 
|  162     WebRtcIsacfix_version(version_number); |  162     WebRtcIsacfix_version(version_number); | 
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  311         if( packetLossPercent > 0 ) { |  311         if( packetLossPercent > 0 ) { | 
|  312           printf( "\nSimulating %d %% of independent packet loss\n", |  312           printf( "\nSimulating %d %% of independent packet loss\n", | 
|  313                   packetLossPercent ); |  313                   packetLossPercent ); | 
|  314         } else { |  314         } else { | 
|  315           printf( "\nNo Packet Loss Is Simulated \n" ); |  315           printf( "\nNo Packet Loss Is Simulated \n" ); | 
|  316         } |  316         } | 
|  317         readLoss = 0; |  317         readLoss = 0; | 
|  318       } else { |  318       } else { | 
|  319         readLoss = 1; |  319         readLoss = 1; | 
|  320         plFile = fopen( argv[i+1], "rb" ); |  320         plFile = fopen( argv[i+1], "rb" ); | 
|  321         if( plFile == NULL ) { |  321         if (plFile == nullptr) { | 
|  322           printf( "\n couldn't open the frameloss file: %s\n", argv[i+1] ); |  322           printf( "\n couldn't open the frameloss file: %s\n", argv[i+1] ); | 
|  323           exit( 0 ); |  323           exit( 0 ); | 
|  324         } |  324         } | 
|  325         printf( "\nSimulating packet loss through the given " |  325         printf( "\nSimulating packet loss through the given " | 
|  326                 "channel file: %s\n", argv[i+1] ); |  326                 "channel file: %s\n", argv[i+1] ); | 
|  327       } |  327       } | 
|  328       i++; |  328       i++; | 
|  329     } |  329     } | 
|  330  |  330  | 
|  331     /* Random packetlosses */ |  331     /* Random packetlosses */ | 
|  332     if (!strcmp ("-rnd", argv[i])) { |  332     if (!strcmp ("-rnd", argv[i])) { | 
|  333       srand(time(NULL) ); |  333       srand(time(nullptr)); | 
|  334       printf( "\n Random pattern in lossed packets \n" ); |  334       printf( "\n Random pattern in lossed packets \n" ); | 
|  335     } |  335     } | 
|  336  |  336  | 
|  337     /* Use gns file */ |  337     /* Use gns file */ | 
|  338     if (!strcmp ("-G", argv[i])) { |  338     if (!strcmp ("-G", argv[i])) { | 
|  339       sscanf(argv[i + 1], "%s", gns_file); |  339       sscanf(argv[i + 1], "%s", gns_file); | 
|  340       fp_gns = fopen(gns_file, "rb"); |  340       fp_gns = fopen(gns_file, "rb"); | 
|  341       if (fp_gns  == NULL) { |  341       if (fp_gns == nullptr) { | 
|  342         printf("Cannot read file %s.\n", gns_file); |  342         printf("Cannot read file %s.\n", gns_file); | 
|  343         exit(0); |  343         exit(0); | 
|  344       } |  344       } | 
|  345       gns = 1; |  345       gns = 1; | 
|  346       i++; |  346       i++; | 
|  347     } |  347     } | 
|  348  |  348  | 
|  349     /* Run Narrowband interfaces (either encoder or decoder) */ |  349     /* Run Narrowband interfaces (either encoder or decoder) */ | 
|  350     if (!strcmp ("-NB", argv[i])) { |  350     if (!strcmp ("-NB", argv[i])) { | 
|  351       nbTest = atoi(argv[i + 1]); |  351       nbTest = atoi(argv[i + 1]); | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
|  371       i++; |  371       i++; | 
|  372     } |  372     } | 
|  373   } |  373   } | 
|  374  |  374  | 
|  375   /* Get Bottleneck value                                                   */ |  375   /* Get Bottleneck value                                                   */ | 
|  376   /* Gns files and bottleneck should not and can not be used simultaneously */ |  376   /* Gns files and bottleneck should not and can not be used simultaneously */ | 
|  377   bottleneck = atoi(argv[CodingMode+1]); |  377   bottleneck = atoi(argv[CodingMode+1]); | 
|  378   if (bottleneck == 0 && gns == 0) { |  378   if (bottleneck == 0 && gns == 0) { | 
|  379     sscanf(argv[CodingMode+1], "%s", bottleneck_file); |  379     sscanf(argv[CodingMode+1], "%s", bottleneck_file); | 
|  380     f_bn = fopen(bottleneck_file, "rb"); |  380     f_bn = fopen(bottleneck_file, "rb"); | 
|  381     if (f_bn  == NULL) { |  381     if (f_bn == nullptr) { | 
|  382       printf("No value provided for BottleNeck and cannot read file %s\n", |  382       printf("No value provided for BottleNeck and cannot read file %s\n", | 
|  383              bottleneck_file); |  383              bottleneck_file); | 
|  384       exit(0); |  384       exit(0); | 
|  385     } else { |  385     } else { | 
|  386       int aux_var; |  386       int aux_var; | 
|  387       printf("reading bottleneck rates from file %s\n\n",bottleneck_file); |  387       printf("reading bottleneck rates from file %s\n\n",bottleneck_file); | 
|  388       if (fscanf(f_bn, "%d", &aux_var) == EOF) { |  388       if (fscanf(f_bn, "%d", &aux_var) == EOF) { | 
|  389         /* Set pointer to beginning of file */ |  389         /* Set pointer to beginning of file */ | 
|  390         fseek(f_bn, 0L, SEEK_SET); |  390         fseek(f_bn, 0L, SEEK_SET); | 
|  391         if (fscanf(f_bn, "%d", &aux_var) == EOF) { |  391         if (fscanf(f_bn, "%d", &aux_var) == EOF) { | 
|  392           exit(0); |  392           exit(0); | 
|  393         } |  393         } | 
|  394       } |  394       } | 
|  395       bottleneck = (int16_t)aux_var; |  395       bottleneck = (int16_t)aux_var; | 
|  396       /* Bottleneck is a cosine function |  396       /* Bottleneck is a cosine function | 
|  397        * Matlab code for writing the bottleneck file: |  397        * Matlab code for writing the bottleneck file: | 
|  398        * BottleNeck_10ms = 20e3 + 10e3 * cos((0:5999)/5999*2*pi); |  398        * BottleNeck_10ms = 20e3 + 10e3 * cos((0:5999)/5999*2*pi); | 
|  399        * fid = fopen('bottleneck.txt', 'wb'); |  399        * fid = fopen('bottleneck.txt', 'wb'); | 
|  400        * fprintf(fid, '%d\n', BottleNeck_10ms); fclose(fid); |  400        * fprintf(fid, '%d\n', BottleNeck_10ms); fclose(fid); | 
|  401        */ |  401        */ | 
|  402     } |  402     } | 
|  403   } else { |  403   } else { | 
|  404     f_bn = NULL; |  404     f_bn = nullptr; | 
|  405     printf("\nfixed bottleneck rate of %d bits/s\n\n", bottleneck); |  405     printf("\nfixed bottleneck rate of %d bits/s\n\n", bottleneck); | 
|  406   } |  406   } | 
|  407  |  407  | 
|  408   if (CodingMode == 0) { |  408   if (CodingMode == 0) { | 
|  409     printf("\nAdaptive BottleNeck\n"); |  409     printf("\nAdaptive BottleNeck\n"); | 
|  410   } |  410   } | 
|  411  |  411  | 
|  412   /* Get Input and Output files */ |  412   /* Get Input and Output files */ | 
|  413   sscanf(argv[argc-2], "%s", inname); |  413   sscanf(argv[argc-2], "%s", inname); | 
|  414   sscanf(argv[argc-1], "%s", outname); |  414   sscanf(argv[argc-1], "%s", outname); | 
|  415  |  415  | 
|  416   /* Add '.bit' to output bitstream file */ |  416   /* Add '.bit' to output bitstream file */ | 
|  417   while ((int)outname[h] != 0) { |  417   while ((int)outname[h] != 0) { | 
|  418     outbitsname[h] = outname[h]; |  418     outbitsname[h] = outname[h]; | 
|  419     h++; |  419     h++; | 
|  420   } |  420   } | 
|  421   for (k=0; k<5; k++) { |  421   for (k=0; k<5; k++) { | 
|  422     outbitsname[h] = tmpBit[k]; |  422     outbitsname[h] = tmpBit[k]; | 
|  423     h++; |  423     h++; | 
|  424   } |  424   } | 
|  425   if ((inp = fopen(inname,"rb")) == NULL) { |  425   if ((inp = fopen(inname, "rb")) == nullptr) { | 
|  426     printf("  iSAC: Cannot read file %s\n", inname); |  426     printf("  iSAC: Cannot read file %s\n", inname); | 
|  427     exit(1); |  427     exit(1); | 
|  428   } |  428   } | 
|  429   if ((outp = fopen(outname,"wb")) == NULL) { |  429   if ((outp = fopen(outname, "wb")) == nullptr) { | 
|  430     printf("  iSAC: Cannot write file %s\n", outname); |  430     printf("  iSAC: Cannot write file %s\n", outname); | 
|  431     exit(1); |  431     exit(1); | 
|  432   } |  432   } | 
|  433  |  433  | 
|  434   if ((outbits = fopen(outbitsname,"wb")) == NULL) { |  434   if ((outbits = fopen(outbitsname, "wb")) == nullptr) { | 
|  435     printf("  iSAC: Cannot write file %s\n", outbitsname); |  435     printf("  iSAC: Cannot write file %s\n", outbitsname); | 
|  436     exit(1); |  436     exit(1); | 
|  437   } |  437   } | 
|  438   printf("\nInput:%s\nOutput:%s\n\n", inname, outname); |  438   printf("\nInput:%s\nOutput:%s\n\n", inname, outname); | 
|  439  |  439  | 
|  440   /* Error test number 10, garbage data */ |  440   /* Error test number 10, garbage data */ | 
|  441   if (testNum == 10) { |  441   if (testNum == 10) { | 
|  442     /* Test to run decoder with garbage data */ |  442     /* Test to run decoder with garbage data */ | 
|  443     srand(random_seed); |  443     srand(random_seed); | 
|  444  |  444  | 
|  445     if ( (seedfile = fopen(SEED_FILE, "a+t") ) == NULL ) { |  445     if ((seedfile = fopen(SEED_FILE, "a+t")) == nullptr) { | 
|  446       printf("Error: Could not open file %s\n", SEED_FILE); |  446       printf("Error: Could not open file %s\n", SEED_FILE); | 
|  447     } |  447     } | 
|  448     else { |  448     else { | 
|  449       fprintf(seedfile, "%u\n", random_seed); |  449       fprintf(seedfile, "%u\n", random_seed); | 
|  450       fclose(seedfile); |  450       fclose(seedfile); | 
|  451     } |  451     } | 
|  452   } |  452   } | 
|  453  |  453  | 
|  454   /* Runtime statistics */ |  454   /* Runtime statistics */ | 
|  455   starttime = clock()/(double)CLOCKS_PER_SEC; |  455   starttime = clock()/(double)CLOCKS_PER_SEC; | 
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  546     cur_framesmpls = 0; |  546     cur_framesmpls = 0; | 
|  547     while (1) { |  547     while (1) { | 
|  548       /* Read 10 ms speech block */ |  548       /* Read 10 ms speech block */ | 
|  549       if (nbTest != 1) { |  549       if (nbTest != 1) { | 
|  550         endfile = readframe(shortdata, inp, FRAMESAMPLES_10ms); |  550         endfile = readframe(shortdata, inp, FRAMESAMPLES_10ms); | 
|  551       } else { |  551       } else { | 
|  552         endfile = readframe(shortdata, inp, (FRAMESAMPLES_10ms/2)); |  552         endfile = readframe(shortdata, inp, (FRAMESAMPLES_10ms/2)); | 
|  553       } |  553       } | 
|  554  |  554  | 
|  555       if (testNum == 7) { |  555       if (testNum == 7) { | 
|  556         srand(time(NULL)); |  556         srand(time(nullptr)); | 
|  557       } |  557       } | 
|  558  |  558  | 
|  559       /* iSAC encoding */ |  559       /* iSAC encoding */ | 
|  560       if (!(testNum == 3 && framecnt == 0)) { |  560       if (!(testNum == 3 && framecnt == 0)) { | 
|  561         if (nbTest != 1) { |  561         if (nbTest != 1) { | 
|  562           short bwe; |  562           short bwe; | 
|  563  |  563  | 
|  564           /* Encode */ |  564           /* Encode */ | 
|  565           stream_len_int = WebRtcIsacfix_Encode(ISAC_main_inst, |  565           stream_len_int = WebRtcIsacfix_Encode(ISAC_main_inst, | 
|  566                                                 shortdata, |  566                                                 shortdata, | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  624         stream_len = static_cast<size_t>(stream_len_int); |  624         stream_len = static_cast<size_t>(stream_len_int); | 
|  625         if (fwrite(streamdata, sizeof(char), stream_len, outbits) != |  625         if (fwrite(streamdata, sizeof(char), stream_len, outbits) != | 
|  626             stream_len) { |  626             stream_len) { | 
|  627           return -1; |  627           return -1; | 
|  628         } |  628         } | 
|  629       } |  629       } | 
|  630  |  630  | 
|  631       cur_framesmpls += FRAMESAMPLES_10ms; |  631       cur_framesmpls += FRAMESAMPLES_10ms; | 
|  632  |  632  | 
|  633       /* read next bottleneck rate */ |  633       /* read next bottleneck rate */ | 
|  634       if (f_bn != NULL) { |  634       if (f_bn != nullptr) { | 
|  635         int aux_var; |  635         int aux_var; | 
|  636         if (fscanf(f_bn, "%d", &aux_var) == EOF) { |  636         if (fscanf(f_bn, "%d", &aux_var) == EOF) { | 
|  637           /* Set pointer to beginning of file */ |  637           /* Set pointer to beginning of file */ | 
|  638           fseek(f_bn, 0L, SEEK_SET); |  638           fseek(f_bn, 0L, SEEK_SET); | 
|  639           if (fscanf(f_bn, "%d", &aux_var) == EOF) { |  639           if (fscanf(f_bn, "%d", &aux_var) == EOF) { | 
|  640             exit(0); |  640             exit(0); | 
|  641           } |  641           } | 
|  642         } |  642         } | 
|  643         bottleneck = (int16_t)aux_var; |  643         bottleneck = (int16_t)aux_var; | 
|  644         if (CodingMode == 1) { |  644         if (CodingMode == 1) { | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|  656       stream_len += 10; |  656       stream_len += 10; | 
|  657     } |  657     } | 
|  658  |  658  | 
|  659     /* make coded sequence to long be decreasing */ |  659     /* make coded sequence to long be decreasing */ | 
|  660     /* the length the decoder expects */ |  660     /* the length the decoder expects */ | 
|  661     if (testNum == 5) { |  661     if (testNum == 5) { | 
|  662       stream_len -= 10; |  662       stream_len -= 10; | 
|  663     } |  663     } | 
|  664  |  664  | 
|  665     if (testNum == 6) { |  665     if (testNum == 6) { | 
|  666       srand(time(NULL)); |  666       srand(time(nullptr)); | 
|  667       for (i = 0; i < stream_len; i++ ) { |  667       for (i = 0; i < stream_len; i++ ) { | 
|  668         streamdata[i] = rand(); |  668         streamdata[i] = rand(); | 
|  669       } |  669       } | 
|  670     } |  670     } | 
|  671  |  671  | 
|  672     /* set pointer to beginning of file */ |  672     /* set pointer to beginning of file */ | 
|  673     if (fp_gns != NULL) { |  673     if (fp_gns != nullptr) { | 
|  674       if (fscanf(fp_gns, "%d", &cur_delay) == EOF) { |  674       if (fscanf(fp_gns, "%d", &cur_delay) == EOF) { | 
|  675         fseek(fp_gns, 0L, SEEK_SET); |  675         fseek(fp_gns, 0L, SEEK_SET); | 
|  676         if (fscanf(fp_gns, "%d", &cur_delay) == EOF) { |  676         if (fscanf(fp_gns, "%d", &cur_delay) == EOF) { | 
|  677           exit(0); |  677           exit(0); | 
|  678         } |  678         } | 
|  679       } |  679       } | 
|  680     } |  680     } | 
|  681  |  681  | 
|  682     /* simulate packet handling through NetEq and the modem */ |  682     /* simulate packet handling through NetEq and the modem */ | 
|  683     if (!(testNum == 3 && framecnt == 0)) { |  683     if (!(testNum == 3 && framecnt == 0)) { | 
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  786     } else { |  786     } else { | 
|  787       lostPackets++; |  787       lostPackets++; | 
|  788     } |  788     } | 
|  789     framecnt++; |  789     framecnt++; | 
|  790  |  790  | 
|  791     totalsmpls += declen; |  791     totalsmpls += declen; | 
|  792     totalbits += static_cast<int>(8 * stream_len); |  792     totalbits += static_cast<int>(8 * stream_len); | 
|  793  |  793  | 
|  794     /* Error test number 10, garbage data */ |  794     /* Error test number 10, garbage data */ | 
|  795     if (testNum == 10) { |  795     if (testNum == 10) { | 
|  796       if ( (seedfile = fopen(SEED_FILE, "a+t") ) == NULL ) { |  796       if ((seedfile = fopen(SEED_FILE, "a+t")) == nullptr) { | 
|  797         printf( "Error: Could not open file %s\n", SEED_FILE); |  797         printf( "Error: Could not open file %s\n", SEED_FILE); | 
|  798       } |  798       } | 
|  799       else { |  799       else { | 
|  800         fprintf(seedfile, "ok\n\n"); |  800         fprintf(seedfile, "ok\n\n"); | 
|  801         fclose(seedfile); |  801         fclose(seedfile); | 
|  802       } |  802       } | 
|  803     } |  803     } | 
|  804   } |  804   } | 
|  805   printf("\nLost Frames %d ~ %4.1f%%\n", lostPackets, |  805   printf("\nLost Frames %d ~ %4.1f%%\n", lostPackets, | 
|  806          (double)lostPackets/(double)framecnt*100.0 ); |  806          (double)lostPackets/(double)framecnt*100.0 ); | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
|  826   fclose(inp); |  826   fclose(inp); | 
|  827   fclose(outp); |  827   fclose(outp); | 
|  828   fclose(outbits); |  828   fclose(outbits); | 
|  829  |  829  | 
|  830   if ( testCE == 1) { |  830   if ( testCE == 1) { | 
|  831     WebRtcIsacfix_FreeInternal(ISAC_main_inst); |  831     WebRtcIsacfix_FreeInternal(ISAC_main_inst); | 
|  832   } |  832   } | 
|  833   WebRtcIsacfix_Free(ISAC_main_inst); |  833   WebRtcIsacfix_Free(ISAC_main_inst); | 
|  834   return 0; |  834   return 0; | 
|  835 } |  835 } | 
| OLD | NEW |