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

Unified Diff: webrtc/modules/audio_coding/neteq/test/RTPencode.cc

Issue 1228843002: Update audio code to use size_t more correctly, (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Review comments 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_coding/neteq/test/RTPencode.cc
diff --git a/webrtc/modules/audio_coding/neteq/test/RTPencode.cc b/webrtc/modules/audio_coding/neteq/test/RTPencode.cc
index 7e778b86e0dd0917c5d37e963a8863971bbb5364..b2df07aa4e97751207a640dfb72d99fa900201ca 100644
--- a/webrtc/modules/audio_coding/neteq/test/RTPencode.cc
+++ b/webrtc/modules/audio_coding/neteq/test/RTPencode.cc
@@ -23,6 +23,8 @@
#include <assert.h>
+#include <algorithm>
+
#include "webrtc/typedefs.h"
// needed for NetEqDecoder
#include "webrtc/modules/audio_coding/neteq/audio_decoder_impl.h"
@@ -76,27 +78,27 @@
void NetEQTest_GetCodec_and_PT(char* name,
webrtc::NetEqDecoder* codec,
int* PT,
- int frameLen,
+ size_t frameLen,
int* fs,
int* bitrate,
int* useRed);
int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
- int enc_frameSize,
+ size_t enc_frameSize,
int bitrate,
int sampfreq,
int vad,
- int numChannels);
+ size_t numChannels);
void defineCodecs(webrtc::NetEqDecoder* usedCodec, int* noOfCodecs);
-int NetEQTest_free_coders(webrtc::NetEqDecoder coder, int numChannels);
-int NetEQTest_encode(int coder,
- int16_t* indata,
- int frameLen,
- unsigned char* encoded,
- int sampleRate,
- int* vad,
- int useVAD,
- int bitrate,
- int numChannels);
+int NetEQTest_free_coders(webrtc::NetEqDecoder coder, size_t numChannels);
+size_t NetEQTest_encode(int coder,
+ int16_t* indata,
+ size_t frameLen,
+ unsigned char* encoded,
+ int sampleRate,
+ int* vad,
+ int useVAD,
+ int bitrate,
+ size_t numChannels);
void makeRTPheader(unsigned char* rtp_data,
int payloadType,
int seqNo,
@@ -109,13 +111,13 @@ int makeRedundantHeader(unsigned char* rtp_data,
uint16_t* blockLen,
int seqNo,
uint32_t ssrc);
-int makeDTMFpayload(unsigned char* payload_data,
- int Event,
- int End,
- int Volume,
- int Duration);
-void stereoDeInterleave(int16_t* audioSamples, int numSamples);
-void stereoInterleave(unsigned char* data, int dataLen, int stride);
+size_t makeDTMFpayload(unsigned char* payload_data,
+ int Event,
+ int End,
+ int Volume,
+ int Duration);
+void stereoDeInterleave(int16_t* audioSamples, size_t numSamples);
+void stereoInterleave(unsigned char* data, size_t dataLen, size_t stride);
/*********************/
/* Codec definitions */
@@ -264,13 +266,14 @@ SPEEX_encinst_t* SPEEX16enc_inst[2];
#endif
int main(int argc, char* argv[]) {
- int packet_size, fs;
+ size_t packet_size;
+ int fs;
webrtc::NetEqDecoder usedCodec;
int payloadType;
int bitrate = 0;
int useVAD, vad;
int useRed = 0;
- int len, enc_len;
+ size_t len, enc_len;
int16_t org_data[4000];
unsigned char rtp_data[8000];
int16_t seqNo = 0xFFF;
@@ -282,14 +285,14 @@ int main(int argc, char* argv[]) {
int red_PT[2] = {0};
uint32_t red_TS[2] = {0};
uint16_t red_len[2] = {0};
- int RTPheaderLen = 12;
+ size_t RTPheaderLen = 12;
uint8_t red_data[8000];
#ifdef INSERT_OLD_PACKETS
uint16_t old_length, old_plen;
- int old_enc_len;
+ size_t old_enc_len;
int first_old_packet = 1;
unsigned char old_rtp_data[8000];
- int packet_age = 0;
+ size_t packet_age = 0;
#endif
#ifdef INSERT_DTMF_PACKETS
int NTone = 1;
@@ -298,8 +301,8 @@ int main(int argc, char* argv[]) {
bool dtmfSent = false;
#endif
bool usingStereo = false;
- int stereoMode = 0;
- int numChannels = 1;
+ size_t stereoMode = 0;
+ size_t numChannels = 1;
/* check number of parameters */
if ((argc != 6) && (argc != 7)) {
@@ -449,12 +452,13 @@ int main(int argc, char* argv[]) {
FILE* out_file = fopen(argv[2], "wb");
CHECK_NOT_NULL(out_file);
printf("Output file: %s\n\n", argv[2]);
- packet_size = atoi(argv[3]);
- if (packet_size <= 0) {
- printf("Packet size %d must be positive", packet_size);
+ int packet_size_int = atoi(argv[3]);
+ if (packet_size_int <= 0) {
+ printf("Packet size %d must be positive", packet_size_int);
return -1;
}
- printf("Packet size: %d\n", packet_size);
+ printf("Packet size: %d\n", packet_size_int);
+ packet_size = static_cast<size_t>(packet_size_int);
// check for stereo
if (argv[4][strlen(argv[4]) - 1] == '*') {
@@ -653,10 +657,6 @@ int main(int argc, char* argv[]) {
enc_len =
NetEQTest_encode(usedCodec, org_data, packet_size, &rtp_data[12], fs,
&vad, useVAD, bitrate, numChannels);
- if (enc_len == -1) {
- printf("Error encoding frame\n");
- exit(0);
- }
if (usingStereo && stereoMode != STEREO_MODE_FRAME && vad == 1) {
// interleave the encoded payload for sample-based codecs (not for CNG)
@@ -729,12 +729,12 @@ int main(int argc, char* argv[]) {
return -1;
}
#ifdef RANDOM_DATA
- for (int k = 0; k < 12 + enc_len; k++) {
+ for (size_t k = 0; k < 12 + enc_len; k++) {
rtp_data[k] = rand() + rand();
}
#endif
#ifdef RANDOM_PAYLOAD_DATA
- for (int k = 12; k < 12 + enc_len; k++) {
+ for (size_t k = 12; k < 12 + enc_len; k++) {
rtp_data[k] = rand() + rand();
}
#endif
@@ -822,7 +822,7 @@ int main(int argc, char* argv[]) {
void NetEQTest_GetCodec_and_PT(char* name,
webrtc::NetEqDecoder* codec,
int* PT,
- int frameLen,
+ size_t frameLen,
int* fs,
int* bitrate,
int* useRed) {
@@ -887,14 +887,14 @@ void NetEQTest_GetCodec_and_PT(char* name,
}
int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
- int enc_frameSize,
+ size_t enc_frameSize,
int bitrate,
int sampfreq,
int vad,
- int numChannels) {
+ size_t numChannels) {
int ok = 0;
- for (int k = 0; k < numChannels; k++) {
+ for (size_t k = 0; k < numChannels; k++) {
VAD_inst[k] = WebRtcVad_Create();
if (!VAD_inst[k]) {
printf("Error: Couldn't allocate memory for VAD instance\n");
@@ -962,7 +962,7 @@ int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
WebRtcG729_EncoderInit(G729enc_inst[k], vad);
if ((vad == 1) && (enc_frameSize != 80)) {
printf("\nError - This simulation only supports VAD for G729 at "
- "10ms packets (not %dms)\n", (enc_frameSize >> 3));
+ "10ms packets (not %" PRIuS "ms)\n", (enc_frameSize >> 3));
}
} else {
printf("\nError - g729 is only developed for 8kHz \n");
@@ -1018,7 +1018,7 @@ int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
}
if ((vad == 1) && (enc_frameSize != 160)) {
printf("\nError - This simulation only supports VAD for Speex at "
- "20ms packets (not %dms)\n",
+ "20ms packets (not %" PRIuS "ms)\n",
(enc_frameSize >> 3));
vad = 0;
}
@@ -1049,7 +1049,7 @@ int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
}
if ((vad == 1) && (enc_frameSize != 320)) {
printf("\nError - This simulation only supports VAD for Speex at "
- "20ms packets (not %dms)\n",
+ "20ms packets (not %" PRIuS "ms)\n",
(enc_frameSize >> 4));
vad = 0;
}
@@ -1238,8 +1238,7 @@ int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
"instance\n");
exit(0);
}
- if (((enc_frameSize / 320) < 0) || ((enc_frameSize / 320) > 3) ||
- ((enc_frameSize % 320) != 0)) {
+ if (((enc_frameSize / 320) > 3) || ((enc_frameSize % 320) != 0)) {
printf("\nError - AMRwb must have frameSize of 20, 40 or 60ms\n");
exit(0);
}
@@ -1320,7 +1319,8 @@ int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
bitrate);
exit(0);
}
- WebRtcIsac_Control(ISAC_inst[k], bitrate, enc_frameSize >> 4);
+ WebRtcIsac_Control(ISAC_inst[k], bitrate,
+ static_cast<int>(enc_frameSize >> 4));
} else {
printf("\nError - iSAC only supports 480 or 960 enc_frameSize (30 or "
"60 ms)\n");
@@ -1379,7 +1379,8 @@ int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
"56000 bps (not %i)\n", bitrate);
exit(0);
}
- WebRtcIsac_Control(ISACSWB_inst[k], bitrate, enc_frameSize >> 5);
+ WebRtcIsac_Control(ISACSWB_inst[k], bitrate,
+ static_cast<int>(enc_frameSize >> 5));
} else {
printf("\nError - iSAC SWB only supports 960 enc_frameSize (30 "
"ms)\n");
@@ -1424,8 +1425,8 @@ int NetEQTest_init_coders(webrtc::NetEqDecoder coder,
return (0);
}
-int NetEQTest_free_coders(webrtc::NetEqDecoder coder, int numChannels) {
- for (int k = 0; k < numChannels; k++) {
+int NetEQTest_free_coders(webrtc::NetEqDecoder coder, size_t numChannels) {
+ for (size_t k = 0; k < numChannels; k++) {
WebRtcVad_Free(VAD_inst[k]);
#if (defined(CODEC_CNGCODEC8) || defined(CODEC_CNGCODEC16) || \
defined(CODEC_CNGCODEC32) || defined(CODEC_CNGCODEC48))
@@ -1552,35 +1553,34 @@ int NetEQTest_free_coders(webrtc::NetEqDecoder coder, int numChannels) {
return (0);
}
-int NetEQTest_encode(int coder,
- int16_t* indata,
- int frameLen,
- unsigned char* encoded,
- int sampleRate,
- int* vad,
- int useVAD,
- int bitrate,
- int numChannels) {
- int cdlen = 0;
+size_t NetEQTest_encode(int coder,
+ int16_t* indata,
+ size_t frameLen,
+ unsigned char* encoded,
+ int sampleRate,
+ int* vad,
+ int useVAD,
+ int bitrate,
+ size_t numChannels) {
+ size_t cdlen = 0;
int16_t* tempdata;
static int first_cng = 1;
- int16_t tempLen;
-
+ size_t tempLen;
*vad = 1;
// check VAD first
if (useVAD) {
*vad = 0;
- int sampleRate_10 = 10 * sampleRate / 1000;
- int sampleRate_20 = 20 * sampleRate / 1000;
- int sampleRate_30 = 30 * sampleRate / 1000;
- for (int k = 0; k < numChannels; k++) {
+ size_t sampleRate_10 = static_cast<size_t>(10 * sampleRate / 1000);
+ size_t sampleRate_20 = static_cast<size_t>(20 * sampleRate / 1000);
+ size_t sampleRate_30 = static_cast<size_t>(30 * sampleRate / 1000);
+ for (size_t k = 0; k < numChannels; k++) {
tempLen = frameLen;
tempdata = &indata[k * frameLen];
int localVad = 0;
/* Partition the signal and test each chunk for VAD.
- All chunks must be VAD=0 to produce a total VAD=0. */
+ All chunks must be VAD=0 to produce a total VAD=0. */
while (tempLen >= sampleRate_10) {
if ((tempLen % sampleRate_30) == 0) { // tempLen is multiple of 30ms
localVad |= WebRtcVad_Process(VAD_inst[k], sampleRate, tempdata,
@@ -1607,7 +1607,7 @@ int NetEQTest_encode(int coder,
if (!*vad) {
// all channels are silent
cdlen = 0;
- for (int k = 0; k < numChannels; k++) {
+ for (size_t k = 0; k < numChannels; k++) {
WebRtcCng_Encode(CNGenc_inst[k], &indata[k * frameLen],
(frameLen <= 640 ? frameLen : 640) /* max 640 */,
encoded, &tempLen, first_cng);
@@ -1621,9 +1621,9 @@ int NetEQTest_encode(int coder,
}
// loop over all channels
- int totalLen = 0;
+ size_t totalLen = 0;
- for (int k = 0; k < numChannels; k++) {
+ for (size_t k = 0; k < numChannels; k++) {
/* Encode with the selected coder type */
if (coder == webrtc::kDecoderPCMu) { /*g711 u-law */
#ifdef CODEC_G711
@@ -1652,7 +1652,8 @@ int NetEQTest_encode(int coder,
#endif
#ifdef CODEC_ILBC
else if (coder == webrtc::kDecoderILBC) { /*iLBC */
- cdlen = WebRtcIlbcfix_Encode(iLBCenc_inst[k], indata, frameLen, encoded);
+ cdlen = static_cast<size_t>(std::max(
+ WebRtcIlbcfix_Encode(iLBCenc_inst[k], indata, frameLen, encoded), 0));
}
#endif
#if (defined(CODEC_ISAC) || \
@@ -1660,28 +1661,30 @@ int NetEQTest_encode(int coder,
// NETEQ_ISACFIX_CODEC
else if (coder == webrtc::kDecoderISAC) { /*iSAC */
int noOfCalls = 0;
- cdlen = 0;
- while (cdlen <= 0) {
+ int res = 0;
+ while (res <= 0) {
#ifdef CODEC_ISAC /* floating point */
- cdlen =
+ res =
WebRtcIsac_Encode(ISAC_inst[k], &indata[noOfCalls * 160], encoded);
#else /* fixed point */
- cdlen = WebRtcIsacfix_Encode(ISAC_inst[k], &indata[noOfCalls * 160],
- encoded);
+ res = WebRtcIsacfix_Encode(ISAC_inst[k], &indata[noOfCalls * 160],
+ encoded);
#endif
noOfCalls++;
}
+ cdlen = static_cast<size_t>(res);
}
#endif
#ifdef CODEC_ISAC_SWB
else if (coder == webrtc::kDecoderISACswb) { /* iSAC SWB */
int noOfCalls = 0;
- cdlen = 0;
- while (cdlen <= 0) {
- cdlen = WebRtcIsac_Encode(ISACSWB_inst[k], &indata[noOfCalls * 320],
- encoded);
+ int res = 0;
+ while (res <= 0) {
+ res = WebRtcIsac_Encode(ISACSWB_inst[k], &indata[noOfCalls * 320],
+ encoded);
noOfCalls++;
}
+ cdlen = static_cast<size_t>(res);
}
#endif
indata += frameLen;
@@ -1757,11 +1760,11 @@ int makeRedundantHeader(unsigned char* rtp_data,
return rtpPointer - rtp_data; // length of header in bytes
}
-int makeDTMFpayload(unsigned char* payload_data,
- int Event,
- int End,
- int Volume,
- int Duration) {
+size_t makeDTMFpayload(unsigned char* payload_data,
+ int Event,
+ int End,
+ int Volume,
+ int Duration) {
unsigned char E, R, V;
R = 0;
V = (unsigned char)Volume;
@@ -1778,11 +1781,11 @@ int makeDTMFpayload(unsigned char* payload_data,
return (4);
}
-void stereoDeInterleave(int16_t* audioSamples, int numSamples) {
+void stereoDeInterleave(int16_t* audioSamples, size_t numSamples) {
int16_t* tempVec;
int16_t* readPtr, *writeL, *writeR;
- if (numSamples <= 0)
+ if (numSamples == 0)
return;
tempVec = (int16_t*)malloc(sizeof(int16_t) * numSamples);
@@ -1797,7 +1800,7 @@ void stereoDeInterleave(int16_t* audioSamples, int numSamples) {
writeR = &audioSamples[numSamples / 2];
readPtr = tempVec;
- for (int k = 0; k < numSamples; k += 2) {
+ for (size_t k = 0; k < numSamples; k += 2) {
*writeL = *readPtr;
readPtr++;
*writeR = *readPtr;
@@ -1809,7 +1812,7 @@ void stereoDeInterleave(int16_t* audioSamples, int numSamples) {
free(tempVec);
}
-void stereoInterleave(unsigned char* data, int dataLen, int stride) {
+void stereoInterleave(unsigned char* data, size_t dataLen, size_t stride) {
unsigned char* ptrL, *ptrR;
unsigned char temp[10];

Powered by Google App Engine
This is Rietveld 408576698