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

Side by Side Diff: webrtc/modules/audio_coding/codecs/isac/fix/test/kenny.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, 4 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
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 /* Struct for bottleneck model */ 44 /* Struct for bottleneck model */
45 typedef struct { 45 typedef struct {
46 uint32_t send_time; /* samples */ 46 uint32_t send_time; /* samples */
47 uint32_t arrival_time; /* samples */ 47 uint32_t arrival_time; /* samples */
48 uint32_t sample_count; /* samples */ 48 uint32_t sample_count; /* samples */
49 uint16_t rtp_number; 49 uint16_t rtp_number;
50 } BottleNeckModel; 50 } BottleNeckModel;
51 51
52 void get_arrival_time(int current_framesamples, /* samples */ 52 void get_arrival_time(int current_framesamples, /* samples */
53 int packet_size, /* bytes */ 53 size_t packet_size, /* bytes */
54 int bottleneck, /* excluding headers; bits/s * / 54 int bottleneck, /* excluding headers; bits/s * /
55 BottleNeckModel *BN_data) 55 BottleNeckModel *BN_data)
56 { 56 {
57 const int HeaderSize = 35; 57 const int HeaderSize = 35;
58 int HeaderRate; 58 int HeaderRate;
59 59
60 HeaderRate = HeaderSize * 8 * FS / current_framesamples; /* bits/s */ 60 HeaderRate = HeaderSize * 8 * FS / current_framesamples; /* bits/s */
61 61
62 /* everything in samples */ 62 /* everything in samples */
63 BN_data->sample_count = BN_data->sample_count + current_framesamples; 63 BN_data->sample_count = BN_data->sample_count + current_framesamples;
(...skipping 28 matching lines...) Expand all
92 BN_data->rtp_number++; 92 BN_data->rtp_number++;
93 } 93 }
94 94
95 int main(int argc, char* argv[]) 95 int main(int argc, char* argv[])
96 { 96 {
97 97
98 char inname[100], outname[100], outbitsname[100], bottleneck_file[100]; 98 char inname[100], outname[100], outbitsname[100], bottleneck_file[100];
99 FILE *inp, *outp, *f_bn, *outbits; 99 FILE *inp, *outp, *f_bn, *outbits;
100 int endfile; 100 int endfile;
101 101
102 int i, errtype, h = 0, k, packetLossPercent = 0; 102 size_t i;
103 int errtype, h = 0, k, packetLossPercent = 0;
103 int16_t CodingMode; 104 int16_t CodingMode;
104 int16_t bottleneck; 105 int16_t bottleneck;
105 int framesize = 30; /* ms */ 106 int framesize = 30; /* ms */
106 int cur_framesmpls, err = 0, lostPackets = 0; 107 int cur_framesmpls, err = 0, lostPackets = 0;
107 108
108 /* Runtime statistics */ 109 /* Runtime statistics */
109 double starttime, runtime, length_file; 110 double starttime, runtime, length_file;
110 111
111 int16_t stream_len = 0; 112 int stream_len_int = 0;
113 size_t stream_len = 0;
112 int16_t framecnt; 114 int16_t framecnt;
113 int declen = 0; 115 int declen = 0;
114 int16_t shortdata[FRAMESAMPLES_10ms]; 116 int16_t shortdata[FRAMESAMPLES_10ms];
115 int16_t decoded[MAX_FRAMESAMPLES]; 117 int16_t decoded[MAX_FRAMESAMPLES];
116 uint16_t streamdata[500]; 118 uint16_t streamdata[500];
117 int16_t speechType[1]; 119 int16_t speechType[1];
118 int16_t prevFrameSize = 1; 120 size_t prevFrameSize = 1;
119 int16_t rateBPS = 0; 121 int16_t rateBPS = 0;
120 int16_t fixedFL = 0; 122 int16_t fixedFL = 0;
121 int16_t payloadSize = 0; 123 int16_t payloadSize = 0;
122 int32_t payloadRate = 0; 124 int32_t payloadRate = 0;
123 int setControlBWE = 0; 125 int setControlBWE = 0;
124 int readLoss; 126 int readLoss;
125 FILE *plFile = NULL; 127 FILE *plFile = NULL;
126 128
127 char version_number[20]; 129 char version_number[20];
128 char tmpBit[5] = ".bit"; 130 char tmpBit[5] = ".bit";
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 228 }
227 229
228 /* Print version number */ 230 /* Print version number */
229 WebRtcIsacfix_version(version_number); 231 WebRtcIsacfix_version(version_number);
230 printf("iSAC version %s \n\n", version_number); 232 printf("iSAC version %s \n\n", version_number);
231 233
232 /* Loop over all command line arguments */ 234 /* Loop over all command line arguments */
233 CodingMode = 0; 235 CodingMode = 0;
234 testNum = 0; 236 testNum = 0;
235 testCE = 0; 237 testCE = 0;
236 for (i = 1; i + 2 < argc; i++) { 238 for (i = 1; i + 2 < static_cast<size_t>(argc); i++) {
237 /* Instantaneous mode */ 239 /* Instantaneous mode */
238 if (!strcmp ("-I", argv[i])) { 240 if (!strcmp ("-I", argv[i])) {
239 printf("\nInstantaneous BottleNeck\n"); 241 printf("\nInstantaneous BottleNeck\n");
240 CodingMode = 1; 242 CodingMode = 1;
241 i++; 243 i++;
242 } 244 }
243 245
244 /* Set (initial) bottleneck value */ 246 /* Set (initial) bottleneck value */
245 if (!strcmp ("-INITRATE", argv[i])) { 247 if (!strcmp ("-INITRATE", argv[i])) {
246 rateBPS = atoi(argv[i + 1]); 248 rateBPS = atoi(argv[i + 1]);
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 if (testNum == 7) { 560 if (testNum == 7) {
559 srand(time(NULL)); 561 srand(time(NULL));
560 } 562 }
561 563
562 /* iSAC encoding */ 564 /* iSAC encoding */
563 if (!(testNum == 3 && framecnt == 0)) { 565 if (!(testNum == 3 && framecnt == 0)) {
564 if (nbTest != 1) { 566 if (nbTest != 1) {
565 short bwe; 567 short bwe;
566 568
567 /* Encode */ 569 /* Encode */
568 stream_len = WebRtcIsacfix_Encode(ISAC_main_inst, 570 stream_len_int = WebRtcIsacfix_Encode(ISAC_main_inst,
569 shortdata, 571 shortdata,
570 (uint8_t*)streamdata); 572 (uint8_t*)streamdata);
571 573
572 /* If packet is ready, and CE testing, call the different API 574 /* If packet is ready, and CE testing, call the different API
573 functions from the internal API. */ 575 functions from the internal API. */
574 if (stream_len>0) { 576 if (stream_len_int>0) {
575 if (testCE == 1) { 577 if (testCE == 1) {
576 err = WebRtcIsacfix_ReadBwIndex( 578 err = WebRtcIsacfix_ReadBwIndex(
577 reinterpret_cast<const uint8_t*>(streamdata), 579 reinterpret_cast<const uint8_t*>(streamdata),
578 stream_len, 580 static_cast<size_t>(stream_len_int),
579 &bwe); 581 &bwe);
580 stream_len = WebRtcIsacfix_GetNewBitStream( 582 stream_len_int = WebRtcIsacfix_GetNewBitStream(
581 ISAC_main_inst, 583 ISAC_main_inst,
582 bwe, 584 bwe,
583 scale, 585 scale,
584 reinterpret_cast<uint8_t*>(streamdata)); 586 reinterpret_cast<uint8_t*>(streamdata));
585 } else if (testCE == 2) { 587 } else if (testCE == 2) {
586 /* transcode function not supported */ 588 /* transcode function not supported */
587 } else if (testCE == 3) { 589 } else if (testCE == 3) {
588 /* Only for Function testing. The functions should normally 590 /* Only for Function testing. The functions should normally
589 not be used in this way */ 591 not be used in this way */
590 592
591 err = WebRtcIsacfix_GetDownLinkBwIndex(ISAC_main_inst, &bwe); 593 err = WebRtcIsacfix_GetDownLinkBwIndex(ISAC_main_inst, &bwe);
592 /* Error Check */ 594 /* Error Check */
593 if (err < 0) { 595 if (err < 0) {
594 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst); 596 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst);
595 printf("\nError in getSendBWE: %d.\n", errtype); 597 printf("\nError in getSendBWE: %d.\n", errtype);
596 } 598 }
597 599
598 err = WebRtcIsacfix_UpdateUplinkBw(ISAC_main_inst, bwe); 600 err = WebRtcIsacfix_UpdateUplinkBw(ISAC_main_inst, bwe);
599 /* Error Check */ 601 /* Error Check */
600 if (err < 0) { 602 if (err < 0) {
601 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst); 603 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst);
602 printf("\nError in setBWE: %d.\n", errtype); 604 printf("\nError in setBWE: %d.\n", errtype);
603 } 605 }
604 606
605 } 607 }
606 } 608 }
607 } else { 609 } else {
608 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED 610 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
609 stream_len = WebRtcIsacfix_EncodeNb(ISAC_main_inst, 611 stream_len_int = WebRtcIsacfix_EncodeNb(ISAC_main_inst,
610 shortdata, 612 shortdata,
611 streamdata); 613 streamdata);
612 #else 614 #else
613 stream_len = -1; 615 stream_len_int = -1;
614 #endif 616 #endif
615 } 617 }
616 } 618 }
617 else 619 else
618 { 620 {
619 break; 621 break;
620 } 622 }
621 623
622 if (stream_len < 0 || err < 0) { 624 if (stream_len_int < 0 || err < 0) {
623 /* exit if returned with error */ 625 /* exit if returned with error */
624 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst); 626 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst);
625 printf("\nError in encoder: %d.\n", errtype); 627 printf("\nError in encoder: %d.\n", errtype);
626 } else { 628 } else {
629 stream_len = static_cast<size_t>(stream_len_int);
627 if (fwrite(streamdata, sizeof(char), stream_len, outbits) != 630 if (fwrite(streamdata, sizeof(char), stream_len, outbits) !=
628 (size_t)stream_len) { 631 stream_len) {
629 return -1; 632 return -1;
630 } 633 }
631 } 634 }
632 635
633 cur_framesmpls += FRAMESAMPLES_10ms; 636 cur_framesmpls += FRAMESAMPLES_10ms;
634 637
635 /* read next bottleneck rate */ 638 /* read next bottleneck rate */
636 if (f_bn != NULL) { 639 if (f_bn != NULL) {
637 int aux_var; 640 int aux_var;
638 if (fscanf(f_bn, "%d", &aux_var) == EOF) { 641 if (fscanf(f_bn, "%d", &aux_var) == EOF) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 lostFrame = !lostFrame; 727 lostFrame = !lostFrame;
725 } else { 728 } else {
726 lostFrame = (rand()%100 < packetLossPercent); 729 lostFrame = (rand()%100 < packetLossPercent);
727 } 730 }
728 731
729 732
730 733
731 /* iSAC decoding */ 734 /* iSAC decoding */
732 if( lostFrame && framecnt > 0) { 735 if( lostFrame && framecnt > 0) {
733 if (nbTest !=2) { 736 if (nbTest !=2) {
734 declen = 737 declen = static_cast<int>(
735 WebRtcIsacfix_DecodePlc(ISAC_main_inst, decoded, prevFrameSize); 738 WebRtcIsacfix_DecodePlc(ISAC_main_inst, decoded, prevFrameSize));
736 } else { 739 } else {
737 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED 740 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
738 declen = WebRtcIsacfix_DecodePlcNb( 741 declen = static_cast<int>(WebRtcIsacfix_DecodePlcNb(
739 ISAC_main_inst, decoded, prevFrameSize); 742 ISAC_main_inst, decoded, prevFrameSize));
740 #else 743 #else
741 declen = -1; 744 declen = -1;
742 #endif 745 #endif
743 } 746 }
744 lostPackets++; 747 lostPackets++;
745 } else { 748 } else {
746 if (nbTest !=2 ) { 749 if (nbTest !=2 ) {
747 short FL; 750 size_t FL;
748 /* Call getFramelen, only used here for function test */ 751 /* Call getFramelen, only used here for function test */
749 err = WebRtcIsacfix_ReadFrameLen( 752 err = WebRtcIsacfix_ReadFrameLen(
750 reinterpret_cast<const uint8_t*>(streamdata), stream_len, &FL); 753 reinterpret_cast<const uint8_t*>(streamdata), stream_len, &FL);
751 declen = WebRtcIsacfix_Decode( 754 declen = WebRtcIsacfix_Decode(
752 ISAC_main_inst, 755 ISAC_main_inst,
753 reinterpret_cast<const uint8_t*>(streamdata), 756 reinterpret_cast<const uint8_t*>(streamdata),
754 stream_len, 757 stream_len,
755 decoded, 758 decoded,
756 speechType); 759 speechType);
757 /* Error check */ 760 /* Error check */
758 if (err < 0 || declen < 0 || FL != declen) { 761 if (err < 0 || declen < 0 || FL != static_cast<size_t>(declen)) {
759 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst); 762 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst);
760 printf("\nError in decode_B/or getFrameLen: %d.\n", errtype); 763 printf("\nError in decode_B/or getFrameLen: %d.\n", errtype);
761 } 764 }
762 prevFrameSize = declen/480; 765 prevFrameSize = static_cast<size_t>(declen/480);
763 766
764 } else { 767 } else {
765 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED 768 #ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
766 declen = WebRtcIsacfix_DecodeNb( ISAC_main_inst, streamdata, 769 declen = WebRtcIsacfix_DecodeNb( ISAC_main_inst, streamdata,
767 stream_len, decoded, speechType ); 770 stream_len, decoded, speechType );
768 #else 771 #else
769 declen = -1; 772 declen = -1;
770 #endif 773 #endif
771 prevFrameSize = static_cast<int16_t>(declen / 240); 774 prevFrameSize = static_cast<size_t>(declen / 240);
772 } 775 }
773 } 776 }
774 777
775 if (declen <= 0) { 778 if (declen <= 0) {
776 /* exit if returned with error */ 779 /* exit if returned with error */
777 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst); 780 errtype=WebRtcIsacfix_GetErrorCode(ISAC_main_inst);
778 printf("\nError in decoder: %d.\n", errtype); 781 printf("\nError in decoder: %d.\n", errtype);
779 } 782 }
780 783
781 /* Write decoded speech frame to file */ 784 /* Write decoded speech frame to file */
782 if (fwrite(decoded, sizeof(int16_t), 785 if (fwrite(decoded, sizeof(int16_t),
783 declen, outp) != (size_t)declen) { 786 declen, outp) != (size_t)declen) {
784 return -1; 787 return -1;
785 } 788 }
786 // fprintf( ratefile, "%f \n", stream_len / ( ((double)declen)/ 789 // fprintf( ratefile, "%f \n", stream_len / ( ((double)declen)/
787 // ((double)FS) ) * 8 ); 790 // ((double)FS) ) * 8 );
788 } else { 791 } else {
789 lostPackets++; 792 lostPackets++;
790 } 793 }
791 framecnt++; 794 framecnt++;
792 795
793 totalsmpls += declen; 796 totalsmpls += declen;
794 totalbits += 8 * stream_len; 797 totalbits += static_cast<int>(8 * stream_len);
795 798
796 /* Error test number 10, garbage data */ 799 /* Error test number 10, garbage data */
797 if (testNum == 10) { 800 if (testNum == 10) {
798 if ( (seedfile = fopen(SEED_FILE, "a+t") ) == NULL ) { 801 if ( (seedfile = fopen(SEED_FILE, "a+t") ) == NULL ) {
799 printf( "Error: Could not open file %s\n", SEED_FILE); 802 printf( "Error: Could not open file %s\n", SEED_FILE);
800 } 803 }
801 else { 804 else {
802 fprintf(seedfile, "ok\n\n"); 805 fprintf(seedfile, "ok\n\n");
803 fclose(seedfile); 806 fclose(seedfile);
804 } 807 }
(...skipping 23 matching lines...) Expand all
828 fclose(inp); 831 fclose(inp);
829 fclose(outp); 832 fclose(outp);
830 fclose(outbits); 833 fclose(outbits);
831 834
832 if ( testCE == 1) { 835 if ( testCE == 1) {
833 WebRtcIsacfix_FreeInternal(ISAC_main_inst); 836 WebRtcIsacfix_FreeInternal(ISAC_main_inst);
834 } 837 }
835 WebRtcIsacfix_Free(ISAC_main_inst); 838 WebRtcIsacfix_Free(ISAC_main_inst);
836 return 0; 839 return 0;
837 } 840 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698