Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(356)

Side by Side Diff: webrtc/modules/audio_coding/codecs/isac/main/test/ReleaseTest-API/ReleaseTest-API.cc

Issue 1230503003: Update a ton of audio code to use size_t more correctly and in general reduce (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Resync Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
11 // ReleaseTest-API.cpp : Defines the entry point for the console application. 11 // ReleaseTest-API.cpp : Defines the entry point for the console application.
12 // 12 //
13 13
14 #include <stdio.h> 14 #include <stdio.h>
15 #include <stdlib.h> 15 #include <stdlib.h>
16 #include <string.h> 16 #include <string.h>
17 #include <time.h> 17 #include <time.h>
18 #include <ctype.h> 18 #include <ctype.h>
19 #include <iostream> 19 #include <iostream>
20 20
21 /* include API */ 21 /* include API */
22 #include "isac.h" 22 #include "isac.h"
23 #include "utility.h" 23 #include "utility.h"
24 #include "webrtc/base/format_macros.h"
24 25
25 /* Defines */ 26 /* Defines */
26 #define SEED_FILE "randseed.txt" /* Used when running decoder on garbage data */ 27 #define SEED_FILE "randseed.txt" /* Used when running decoder on garbage data */
27 #define MAX_FRAMESAMPLES 960 /* max number of samples per frame 28 #define MAX_FRAMESAMPLES 960 /* max number of samples per frame
28 (= 60 ms frame & 16 kHz) or 29 (= 60 ms frame & 16 kHz) or
29 (= 30 ms frame & 32 kHz) */ 30 (= 30 ms frame & 32 kHz) */
30 #define FRAMESAMPLES_10ms 160 /* number of samples per 10ms frame */ 31 #define FRAMESAMPLES_10ms 160 /* number of samples per 10ms frame */
31 #define SWBFRAMESAMPLES_10ms 320 32 #define SWBFRAMESAMPLES_10ms 320
32 //#define FS 16000 /* sampling frequency (Hz) */ 33 //#define FS 16000 /* sampling frequency (Hz) */
33 34
34 #ifdef WIN32 35 #ifdef WIN32
35 #define CLOCKS_PER_SEC 1000 /* Runtime statistics */ 36 #define CLOCKS_PER_SEC 1000 /* Runtime statistics */
36 #endif 37 #endif
37 38
38 using namespace std; 39 using namespace std;
39 40
40 int main(int argc, char* argv[]) { 41 int main(int argc, char* argv[]) {
41 char inname[100], outname[100], bottleneck_file[100], vadfile[100]; 42 char inname[100], outname[100], bottleneck_file[100], vadfile[100];
42 FILE* inp, *outp, * f_bn = NULL, * vadp = NULL, *bandwidthp; 43 FILE* inp, *outp, * f_bn = NULL, * vadp = NULL, *bandwidthp;
43 int framecnt, endfile; 44 int framecnt, endfile;
44 45
45 int i, errtype, VADusage = 0, packetLossPercent = 0; 46 size_t i;
47 int errtype, VADusage = 0, packetLossPercent = 0;
46 int16_t CodingMode; 48 int16_t CodingMode;
47 int32_t bottleneck = 0; 49 int32_t bottleneck = 0;
48 int framesize = 30; /* ms */ 50 int framesize = 30; /* ms */
49 int cur_framesmpls, err; 51 int cur_framesmpls, err;
50 52
51 /* Runtime statistics */ 53 /* Runtime statistics */
52 double starttime, runtime, length_file; 54 double starttime, runtime, length_file;
53 55
54 int16_t stream_len = 0; 56 size_t stream_len = 0;
55 int declen = 0, declenTC = 0; 57 int declen = 0, declenTC = 0;
56 bool lostFrame = false; 58 bool lostFrame = false;
57 59
58 int16_t shortdata[SWBFRAMESAMPLES_10ms]; 60 int16_t shortdata[SWBFRAMESAMPLES_10ms];
59 int16_t vaddata[SWBFRAMESAMPLES_10ms * 3]; 61 int16_t vaddata[SWBFRAMESAMPLES_10ms * 3];
60 int16_t decoded[MAX_FRAMESAMPLES << 1]; 62 int16_t decoded[MAX_FRAMESAMPLES << 1];
61 int16_t decodedTC[MAX_FRAMESAMPLES << 1]; 63 int16_t decodedTC[MAX_FRAMESAMPLES << 1];
62 uint16_t streamdata[500]; 64 uint16_t streamdata[500];
63 int16_t speechType[1]; 65 int16_t speechType[1];
64 int16_t rateBPS = 0; 66 int16_t rateBPS = 0;
65 int16_t fixedFL = 0; 67 int16_t fixedFL = 0;
66 int16_t payloadSize = 0; 68 int16_t payloadSize = 0;
67 int32_t payloadRate = 0; 69 int32_t payloadRate = 0;
68 int setControlBWE = 0; 70 int setControlBWE = 0;
69 short FL, testNum; 71 short FL, testNum;
70 char version_number[20]; 72 char version_number[20];
71 FILE* plFile; 73 FILE* plFile;
72 int32_t sendBN; 74 int32_t sendBN;
73 75
74 #ifdef _DEBUG 76 #ifdef _DEBUG
75 FILE* fy; 77 FILE* fy;
76 double kbps; 78 double kbps;
77 #endif /* _DEBUG */ 79 #endif /* _DEBUG */
78 int totalbits = 0; 80 size_t totalbits = 0;
79 int totalsmpls = 0; 81 int totalsmpls = 0;
80 82
81 /* If use GNS file */ 83 /* If use GNS file */
82 FILE* fp_gns = NULL; 84 FILE* fp_gns = NULL;
83 char gns_file[100]; 85 char gns_file[100];
84 short maxStreamLen30 = 0; 86 size_t maxStreamLen30 = 0;
85 short maxStreamLen60 = 0; 87 size_t maxStreamLen60 = 0;
86 short sampFreqKHz = 32; 88 short sampFreqKHz = 32;
87 short samplesIn10Ms; 89 short samplesIn10Ms;
88 short useAssign = 0; 90 short useAssign = 0;
89 // FILE logFile; 91 // FILE logFile;
90 bool doTransCoding = false; 92 bool doTransCoding = false;
91 int32_t rateTransCoding = 0; 93 int32_t rateTransCoding = 0;
92 uint8_t streamDataTransCoding[1200]; 94 uint8_t streamDataTransCoding[1200];
93 int16_t streamLenTransCoding = 0; 95 size_t streamLenTransCoding = 0;
94 FILE* transCodingFile = NULL; 96 FILE* transCodingFile = NULL;
95 FILE* transcodingBitstream = NULL; 97 FILE* transcodingBitstream = NULL;
96 uint32_t numTransCodingBytes = 0; 98 size_t numTransCodingBytes = 0;
97 99
98 /* only one structure used for ISAC encoder */ 100 /* only one structure used for ISAC encoder */
99 ISACStruct* ISAC_main_inst = NULL; 101 ISACStruct* ISAC_main_inst = NULL;
100 ISACStruct* decoderTransCoding = NULL; 102 ISACStruct* decoderTransCoding = NULL;
101 103
102 BottleNeckModel BN_data; 104 BottleNeckModel BN_data;
103 105
104 #ifdef _DEBUG 106 #ifdef _DEBUG
105 fy = fopen("bit_rate.dat", "w"); 107 fy = fopen("bit_rate.dat", "w");
106 fclose(fy); 108 fclose(fy);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 printf("iSAC version %s \n\n", version_number); 180 printf("iSAC version %s \n\n", version_number);
179 181
180 /* Loop over all command line arguments */ 182 /* Loop over all command line arguments */
181 CodingMode = 0; 183 CodingMode = 0;
182 testNum = 0; 184 testNum = 0;
183 useAssign = 0; 185 useAssign = 0;
184 // logFile = NULL; 186 // logFile = NULL;
185 char transCodingFileName[500]; 187 char transCodingFileName[500];
186 int16_t totFileLoop = 0; 188 int16_t totFileLoop = 0;
187 int16_t numFileLoop = 0; 189 int16_t numFileLoop = 0;
188 for (i = 1; i + 2 < argc; i++) { 190 for (i = 1; i + 2 < static_cast<size_t>(argc); i++) {
189 if (!strcmp("-LOOP", argv[i])) { 191 if (!strcmp("-LOOP", argv[i])) {
190 i++; 192 i++;
191 totFileLoop = (int16_t)atol(argv[i]); 193 totFileLoop = (int16_t)atol(argv[i]);
192 if (totFileLoop <= 0) { 194 if (totFileLoop <= 0) {
193 fprintf(stderr, "Invalid number of runs for the given input file, %d.", 195 fprintf(stderr, "Invalid number of runs for the given input file, %d.",
194 totFileLoop); 196 totFileLoop);
195 exit(0); 197 exit(0);
196 } 198 }
197 } 199 }
198 200
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 /* Error check */ 574 /* Error check */
573 if (err < 0) { 575 if (err < 0) {
574 errtype = WebRtcIsac_GetErrorCode(ISAC_main_inst); 576 errtype = WebRtcIsac_GetErrorCode(ISAC_main_inst);
575 printf("\n\n Error in decoderinit: %d.\n\n", errtype); 577 printf("\n\n Error in decoderinit: %d.\n\n", errtype);
576 cout << flush; 578 cout << flush;
577 } 579 }
578 } 580 }
579 581
580 cur_framesmpls = 0; 582 cur_framesmpls = 0;
581 while (1) { 583 while (1) {
584 int stream_len_int = 0;
585
582 /* Read 10 ms speech block */ 586 /* Read 10 ms speech block */
583 endfile = readframe(shortdata, inp, samplesIn10Ms); 587 endfile = readframe(shortdata, inp, samplesIn10Ms);
584 588
585 if (endfile) { 589 if (endfile) {
586 numFileLoop++; 590 numFileLoop++;
587 if (numFileLoop < totFileLoop) { 591 if (numFileLoop < totFileLoop) {
588 rewind(inp); 592 rewind(inp);
589 framecnt = 0; 593 framecnt = 0;
590 fprintf(stderr, "\n"); 594 fprintf(stderr, "\n");
591 endfile = readframe(shortdata, inp, samplesIn10Ms); 595 endfile = readframe(shortdata, inp, samplesIn10Ms);
592 } 596 }
593 } 597 }
594 598
595 if (testNum == 7) { 599 if (testNum == 7) {
596 srand((unsigned int)time(NULL)); 600 srand((unsigned int)time(NULL));
597 } 601 }
598 602
599 /* iSAC encoding */ 603 /* iSAC encoding */
600 if (!(testNum == 3 && framecnt == 0)) { 604 if (!(testNum == 3 && framecnt == 0)) {
601 stream_len = 605 stream_len_int =
602 WebRtcIsac_Encode(ISAC_main_inst, shortdata, (uint8_t*)streamdata); 606 WebRtcIsac_Encode(ISAC_main_inst, shortdata, (uint8_t*)streamdata);
603 if ((payloadSize != 0) && (stream_len > payloadSize)) { 607 if ((payloadSize != 0) && (stream_len_int > payloadSize)) {
604 if (testNum == 0) { 608 if (testNum == 0) {
605 printf("\n\n"); 609 printf("\n\n");
606 } 610 }
607 611
608 printf("\nError: Streamsize out of range %d\n", 612 printf("\nError: Streamsize out of range %d\n",
609 stream_len - payloadSize); 613 stream_len_int - payloadSize);
610 cout << flush; 614 cout << flush;
611 } 615 }
612 616
613 WebRtcIsac_GetUplinkBw(ISAC_main_inst, &sendBN); 617 WebRtcIsac_GetUplinkBw(ISAC_main_inst, &sendBN);
614 618
615 if (stream_len > 0) { 619 if (stream_len_int > 0) {
616 if (doTransCoding) { 620 if (doTransCoding) {
617 int16_t indexStream; 621 int16_t indexStream;
618 uint8_t auxUW8; 622 uint8_t auxUW8;
619 623
620 /******************** Main Transcoding stream ********************/ 624 /******************** Main Transcoding stream ********************/
621 WebRtcIsac_GetDownLinkBwIndex(ISAC_main_inst, &bnIdxTC, 625 WebRtcIsac_GetDownLinkBwIndex(ISAC_main_inst, &bnIdxTC,
622 &jitterInfoTC); 626 &jitterInfoTC);
623 streamLenTransCoding = WebRtcIsac_GetNewBitStream( 627 int streamLenTransCoding_int = WebRtcIsac_GetNewBitStream(
624 ISAC_main_inst, bnIdxTC, jitterInfoTC, rateTransCoding, 628 ISAC_main_inst, bnIdxTC, jitterInfoTC, rateTransCoding,
625 streamDataTransCoding, false); 629 streamDataTransCoding, false);
626 if (streamLenTransCoding < 0) { 630 if (streamLenTransCoding_int < 0) {
627 fprintf(stderr, "Error in trans-coding\n"); 631 fprintf(stderr, "Error in trans-coding\n");
628 exit(0); 632 exit(0);
629 } 633 }
634 streamLenTransCoding =
635 static_cast<size_t>(streamLenTransCoding_int);
630 auxUW8 = (uint8_t)(((streamLenTransCoding & 0xFF00) >> 8) & 0x00FF); 636 auxUW8 = (uint8_t)(((streamLenTransCoding & 0xFF00) >> 8) & 0x00FF);
631 if (fwrite(&auxUW8, sizeof(uint8_t), 1, transcodingBitstream) != 637 if (fwrite(&auxUW8, sizeof(uint8_t), 1, transcodingBitstream) !=
632 1) { 638 1) {
633 return -1; 639 return -1;
634 } 640 }
635 641
636 auxUW8 = (uint8_t)(streamLenTransCoding & 0x00FF); 642 auxUW8 = (uint8_t)(streamLenTransCoding & 0x00FF);
637 if (fwrite(&auxUW8, sizeof(uint8_t), 1, transcodingBitstream) != 643 if (fwrite(&auxUW8, sizeof(uint8_t), 1, transcodingBitstream) !=
638 1) { 644 1) {
639 return -1; 645 return -1;
640 } 646 }
641 647
642 if (fwrite(streamDataTransCoding, sizeof(uint8_t), 648 if (fwrite(streamDataTransCoding, sizeof(uint8_t),
643 streamLenTransCoding, transcodingBitstream) != 649 streamLenTransCoding, transcodingBitstream) !=
644 static_cast<size_t>(streamLenTransCoding)) { 650 streamLenTransCoding) {
645 return -1; 651 return -1;
646 } 652 }
647 653
648 WebRtcIsac_ReadBwIndex(streamDataTransCoding, &indexStream); 654 WebRtcIsac_ReadBwIndex(streamDataTransCoding, &indexStream);
649 if (indexStream != bnIdxTC) { 655 if (indexStream != bnIdxTC) {
650 fprintf(stderr, 656 fprintf(stderr,
651 "Error in inserting Bandwidth index into transcoding " 657 "Error in inserting Bandwidth index into transcoding "
652 "stream.\n"); 658 "stream.\n");
653 exit(0); 659 exit(0);
654 } 660 }
655 numTransCodingBytes += streamLenTransCoding; 661 numTransCodingBytes += streamLenTransCoding;
656 } 662 }
657 } 663 }
658 } else { 664 } else {
659 break; 665 break;
660 } 666 }
661 667
662 if (stream_len < 0) { 668 if (stream_len_int < 0) {
663 /* exit if returned with error */ 669 /* exit if returned with error */
664 errtype = WebRtcIsac_GetErrorCode(ISAC_main_inst); 670 errtype = WebRtcIsac_GetErrorCode(ISAC_main_inst);
665 fprintf(stderr, "Error in encoder: %d.\n", errtype); 671 fprintf(stderr, "Error in encoder: %d.\n", errtype);
666 cout << flush; 672 cout << flush;
667 exit(0); 673 exit(0);
668 } 674 }
675 stream_len = static_cast<size_t>(stream_len_int);
676
669 cur_framesmpls += samplesIn10Ms; 677 cur_framesmpls += samplesIn10Ms;
670 /* exit encoder loop if the encoder returned a bitstream */ 678 /* exit encoder loop if the encoder returned a bitstream */
671 if (stream_len != 0) 679 if (stream_len != 0)
672 break; 680 break;
673 } 681 }
674 682
675 /* read next bottleneck rate */ 683 /* read next bottleneck rate */
676 if (f_bn != NULL) { 684 if (f_bn != NULL) {
677 if (fscanf(f_bn, "%d", &bottleneck) == EOF) { 685 if (fscanf(f_bn, "%d", &bottleneck) == EOF) {
678 /* Set pointer to beginning of file */ 686 /* Set pointer to beginning of file */
(...skipping 17 matching lines...) Expand all
696 } 704 }
697 705
698 if (!lostFrame) { 706 if (!lostFrame) {
699 lostFrame = ((rand() % 100) < packetLossPercent); 707 lostFrame = ((rand() % 100) < packetLossPercent);
700 } else { 708 } else {
701 lostFrame = false; 709 lostFrame = false;
702 } 710 }
703 711
704 // RED. 712 // RED.
705 if (lostFrame) { 713 if (lostFrame) {
706 stream_len = WebRtcIsac_GetRedPayload( 714 int stream_len_int = WebRtcIsac_GetRedPayload(
707 ISAC_main_inst, reinterpret_cast<uint8_t*>(streamdata)); 715 ISAC_main_inst, reinterpret_cast<uint8_t*>(streamdata));
716 if (stream_len_int < 0) {
717 fprintf(stderr, "Error getting RED payload\n");
718 exit(0);
719 }
720 stream_len = static_cast<size_t>(stream_len_int);
708 721
709 if (doTransCoding) { 722 if (doTransCoding) {
710 streamLenTransCoding = WebRtcIsac_GetNewBitStream( 723 int streamLenTransCoding_int = WebRtcIsac_GetNewBitStream(
711 ISAC_main_inst, bnIdxTC, jitterInfoTC, rateTransCoding, 724 ISAC_main_inst, bnIdxTC, jitterInfoTC, rateTransCoding,
712 streamDataTransCoding, true); 725 streamDataTransCoding, true);
713 if (streamLenTransCoding < 0) { 726 if (streamLenTransCoding_int < 0) {
714 fprintf(stderr, "Error in RED trans-coding\n"); 727 fprintf(stderr, "Error in RED trans-coding\n");
715 exit(0); 728 exit(0);
716 } 729 }
730 streamLenTransCoding =
731 static_cast<size_t>(streamLenTransCoding_int);
717 } 732 }
718 } 733 }
719 734
720 /* make coded sequence to short be inreasing */ 735 /* make coded sequence to short be inreasing */
721 /* the length the decoder expects */ 736 /* the length the decoder expects */
722 if (testNum == 4) { 737 if (testNum == 4) {
723 stream_len += 10; 738 stream_len += 10;
724 } 739 }
725 740
726 /* make coded sequence to long be decreasing */ 741 /* make coded sequence to long be decreasing */
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 #ifdef _DEBUG 899 #ifdef _DEBUG
885 kbps = ((double)sampFreqKHz * 1000.) / ((double)cur_framesmpls) * 8.0 * 900 kbps = ((double)sampFreqKHz * 1000.) / ((double)cur_framesmpls) * 8.0 *
886 stream_len / 1000.0; // kbits/s 901 stream_len / 1000.0; // kbits/s
887 fy = fopen("bit_rate.dat", "a"); 902 fy = fopen("bit_rate.dat", "a");
888 fprintf(fy, "Frame %i = %0.14f\n", framecnt, kbps); 903 fprintf(fy, "Frame %i = %0.14f\n", framecnt, kbps);
889 fclose(fy); 904 fclose(fy);
890 905
891 #endif /* _DEBUG */ 906 #endif /* _DEBUG */
892 } 907 }
893 printf("\n"); 908 printf("\n");
894 printf("total bits = %d bits\n", totalbits); 909 printf("total bits = %" PRIuS " bits\n", totalbits);
895 printf("measured average bitrate = %0.3f kbits/s\n", 910 printf("measured average bitrate = %0.3f kbits/s\n",
896 (double)totalbits * (sampFreqKHz) / totalsmpls); 911 (double)totalbits * (sampFreqKHz) / totalsmpls);
897 if (doTransCoding) { 912 if (doTransCoding) {
898 printf("Transcoding average bit-rate = %0.3f kbps\n", 913 printf("Transcoding average bit-rate = %0.3f kbps\n",
899 (double)numTransCodingBytes * 8.0 * (sampFreqKHz) / totalsmpls); 914 (double)numTransCodingBytes * 8.0 * (sampFreqKHz) / totalsmpls);
900 fclose(transCodingFile); 915 fclose(transCodingFile);
901 } 916 }
902 printf("\n"); 917 printf("\n");
903 918
904 /* Runtime statistics */ 919 /* Runtime statistics */
905 runtime = (double)(clock() / (double)CLOCKS_PER_SEC - starttime); 920 runtime = (double)(clock() / (double)CLOCKS_PER_SEC - starttime);
906 length_file = length_file / (sampFreqKHz * 1000.); 921 length_file = length_file / (sampFreqKHz * 1000.);
907 922
908 printf("\n\nLength of speech file: %.1f s\n", length_file); 923 printf("\n\nLength of speech file: %.1f s\n", length_file);
909 printf("Time to run iSAC: %.2f s (%.2f %% of realtime)\n\n", runtime, 924 printf("Time to run iSAC: %.2f s (%.2f %% of realtime)\n\n", runtime,
910 (100 * runtime / length_file)); 925 (100 * runtime / length_file));
911 926
912 if (maxStreamLen30 != 0) { 927 if (maxStreamLen30 != 0) {
913 printf("Maximum payload size 30ms Frames %d bytes (%0.3f kbps)\n", 928 printf("Maximum payload size 30ms Frames %" PRIuS " bytes (%0.3f kbps)\n",
914 maxStreamLen30, maxStreamLen30 * 8 / 30.); 929 maxStreamLen30, maxStreamLen30 * 8 / 30.);
915 } 930 }
916 if (maxStreamLen60 != 0) { 931 if (maxStreamLen60 != 0) {
917 printf("Maximum payload size 60ms Frames %d bytes (%0.3f kbps)\n", 932 printf("Maximum payload size 60ms Frames %" PRIuS " bytes (%0.3f kbps)\n",
918 maxStreamLen60, maxStreamLen60 * 8 / 60.); 933 maxStreamLen60, maxStreamLen60 * 8 / 60.);
919 } 934 }
920 // fprintf(stderr, "\n"); 935 // fprintf(stderr, "\n");
921 936
922 fprintf(stderr, " %.1f s", length_file); 937 fprintf(stderr, " %.1f s", length_file);
923 fprintf(stderr, " %0.1f kbps", 938 fprintf(stderr, " %0.1f kbps",
924 (double)totalbits * (sampFreqKHz) / totalsmpls); 939 (double)totalbits * (sampFreqKHz) / totalsmpls);
925 if (maxStreamLen30 != 0) { 940 if (maxStreamLen30 != 0) {
926 fprintf(stderr, " plmax-30ms %d bytes (%0.0f kbps)", maxStreamLen30, 941 fprintf(stderr, " plmax-30ms %" PRIuS " bytes (%0.0f kbps)",
927 maxStreamLen30 * 8 / 30.); 942 maxStreamLen30, maxStreamLen30 * 8 / 30.);
928 } 943 }
929 if (maxStreamLen60 != 0) { 944 if (maxStreamLen60 != 0) {
930 fprintf(stderr, " plmax-60ms %d bytes (%0.0f kbps)", maxStreamLen60, 945 fprintf(stderr, " plmax-60ms %" PRIuS " bytes (%0.0f kbps)",
931 maxStreamLen60 * 8 / 60.); 946 maxStreamLen60, maxStreamLen60 * 8 / 60.);
932 } 947 }
933 if (doTransCoding) { 948 if (doTransCoding) {
934 fprintf(stderr, " transcoding rate %.0f kbps", 949 fprintf(stderr, " transcoding rate %.0f kbps",
935 (double)numTransCodingBytes * 8.0 * (sampFreqKHz) / totalsmpls); 950 (double)numTransCodingBytes * 8.0 * (sampFreqKHz) / totalsmpls);
936 } 951 }
937 952
938 fclose(inp); 953 fclose(inp);
939 fclose(outp); 954 fclose(outp);
940 WebRtcIsac_Free(ISAC_main_inst); 955 WebRtcIsac_Free(ISAC_main_inst);
941 956
942 exit(0); 957 exit(0);
943 } 958 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698