summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbodamnam <bodamnam@google.com>2022-11-18 10:30:51 +0000
committerbodamnam <bodamnam@google.com>2022-11-21 01:03:53 +0000
commitd52483903ec389c2a627f6ffad7b3659dcf36b6b (patch)
treeec150a573e17d64f369cf21827f2f36fc93a2157
parent393ea33536657376d53587a2406e670c78c2119e (diff)
downloadImsMedia-d52483903ec389c2a627f6ffad7b3659dcf36b6b.tar.gz
Fix the potential infinite loop error in MediaQualityAnalyzer
Fix potential infinite loop in MediaQualityAnalyzer Modify to keep maximum number of packets stored in MediaQualityAnalyzer Modify to use signed integer in loop Bug: 259051981 Test: Long voice call case with device, atest ImsMediaNativeTests Change-Id: I9b8a01f2d777217e0aa58e4ffaf655ca0ec74938
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp44
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp25
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/RtcpXrEncoder.cpp2
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBinaryFormat.cpp4
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp2
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/ImsMediaVideoUtil.cpp24
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp2
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp6
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp2
-rw-r--r--tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp6
10 files changed, 74 insertions, 43 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp
index 3893e50c..0ab5134f 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp
@@ -256,11 +256,10 @@ void AudioJitterBuffer::Add(ImsMediaSubType subtype, uint8_t* pbBuffer, uint32_t
else
{
// find the position of current data and insert current data to the correct position
- uint32_t i;
bool bIsLateArrival = false;
mDataQueue.SetReadPosFirst();
- for (i = 0; mDataQueue.GetNext(&pEntry); i++)
+ for (int32_t i = 0; mDataQueue.GetNext(&pEntry); i++)
{
// late arrival packet
if (!USHORT_SEQ_ROUND_COMPARE(nSeqNum, pEntry->nSeqNum))
@@ -598,8 +597,8 @@ bool AudioJitterBuffer::Get(ImsMediaSubType* psubtype, uint8_t** ppData, uint32_
break;
}
- IMLOGD4("[Get] D [ %d / %u / %u / %d ]", pEntry->nSeqNum, pEntry->nTimestamp,
- mCurrPlayingTS, mDataQueue.GetCount());
+ IMLOGD_PACKET4(IM_PACKET_LOG_JITTER, "[Get] D [ %d / %u / %u / %d ]", pEntry->nSeqNum,
+ pEntry->nTimestamp, mCurrPlayingTS, mDataQueue.GetCount());
}
// decrease jitter buffer
@@ -766,12 +765,13 @@ bool AudioJitterBuffer::Get(ImsMediaSubType* psubtype, uint8_t** ppData, uint32_
if (mLastPlayedSeqNum > 0)
{
/** Report the loss gap if the loss gap is over 0 */
- uint32_t lossGap = GET_SEQ_GAP(pEntry->nSeqNum, mLastPlayedSeqNum) - 1;
+ uint16_t lostGap = GET_SEQ_GAP(pEntry->nSeqNum, mLastPlayedSeqNum);
- if (lossGap > 0)
+ if (lostGap > 1)
{
- SessionCallbackParameter* param = new SessionCallbackParameter(
- kReportPacketLossGap, mLastPlayedSeqNum + 1, lossGap);
+ uint16_t lostSeq = mLastPlayedSeqNum + 1;
+ SessionCallbackParameter* param =
+ new SessionCallbackParameter(kReportPacketLossGap, lostSeq, lostGap - 1);
mCallback->SendEvent(kCollectOptionalInfo, reinterpret_cast<uint64_t>(param), 0);
}
}
@@ -836,14 +836,20 @@ bool AudioJitterBuffer::CheckPartialRedundancyFrame(ImsMediaSubType* psubtype, u
uint32_t* pnDataSize, uint32_t* pnTimestamp, bool* pbMark, uint32_t* pnSeqNum,
uint32_t* pnChecker)
{
- DataEntry* pEntry;
+ if (mDataQueue.GetCount() == 0)
+ {
+ return false;
+ }
+
+ DataEntry* pEntry = NULL;
uint32_t nFindPartialRedundancyFrameSeq = mCurrPlayingSeq + mRedundancyOffSet;
bool nFindPartialFrame = false;
- // 1. find redundancy Frame from DataQueue using CAM offset(mRedundancyOffSet)
- for (uint32_t i = 0; i < mDataQueue.GetCount(); i++)
+ // Find redundancy frame from the DataQueue using CAM offset(mRedundancyOffSet)
+ for (int32_t i = 0; i < mDataQueue.GetCount(); i++)
{
mDataQueue.GetAt(i, &pEntry);
+
if ((pEntry != NULL) && (pEntry->nSeqNum == nFindPartialRedundancyFrameSeq))
{
if (psubtype)
@@ -863,7 +869,12 @@ bool AudioJitterBuffer::CheckPartialRedundancyFrame(ImsMediaSubType* psubtype, u
}
}
- // 2. check bitrate using dataSize (13.2kbps : data size -> 33 byte)
+ if (pEntry == NULL)
+ {
+ return false;
+ }
+
+ // Check bitrate using dataSize (13.2kbps : data size -> 33 byte)
if ((nFindPartialFrame != true) || (pEntry->nBufferSize != 33))
{
IMLOGD1("[CheckPartialRedundancyFrame] not found or not adjust CAM -- PartialFrame[%d]",
@@ -871,19 +882,20 @@ bool AudioJitterBuffer::CheckPartialRedundancyFrame(ImsMediaSubType* psubtype, u
return false;
}
- // 3. check PartialRedundancyFrame using provided QCT code.
- // need to porting QCT code.
int16_t nPartialFrameOffset = 0;
int16_t nPartialFlag = 0;
- // 4. if PartialRedundancyFrame is useable, send ppData and set nChecker variable to
- // 1, after that, return true. if not, return false.
+ // If PartialRedundancyFrame is useable, send ppData and set nChecker variable to 1, after that,
+ // return true. if not, return false.
if ((nPartialFlag == 1) && (mRedundancyOffSet == (uint32_t)nPartialFrameOffset))
{
IMLOGD2("[CheckPartialRedundancyFrame] adjust CAM -- redundancyOffSet[%d], adjust seq[%d]",
mRedundancyOffSet, pEntry->nSeqNum);
if (pnChecker)
+ {
*pnChecker = 1;
+ }
+
return true;
}
else
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp
index 2a8074f3..c1e88977 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp
@@ -21,14 +21,13 @@
#include <ImsMediaTrace.h>
#include <ImsMediaAudioUtil.h>
#include <RtcpXrEncoder.h>
-
#include <AudioConfig.h>
-
#include <stdlib.h>
#define DEFAULT_PARAM -1
#define DEFAULT_INACTIVITY_TIME 5
#define CALL_QUALITY_MONITORING_TIME 5
+#define MAX_NUM_PACKET_STORED 500
MediaQualityAnalyzer::MediaQualityAnalyzer()
{
@@ -151,9 +150,22 @@ void MediaQualityAnalyzer::stopTimer()
void MediaQualityAnalyzer::collectInfo(const int32_t streamType, RtpPacket* packet)
{
+ if (packet == NULL)
+ {
+ return;
+ }
+
if (streamType == kStreamRtpTx)
{
mListTxPacket.push_back(packet);
+
+ if (mListTxPacket.size() >= MAX_NUM_PACKET_STORED)
+ {
+ RtpPacket* pPacket = mListTxPacket.front();
+ mListTxPacket.pop_front();
+ delete pPacket;
+ }
+
mMediaQuality->setNumRtpPacketsTransmitted(
mMediaQuality->getNumRtpPacketsTransmitted() + 1);
IMLOGD_PACKET1(IM_PACKET_LOG_RTP, "[collectInfo] tx list size[%d]", mListTxPacket.size());
@@ -211,6 +223,13 @@ void MediaQualityAnalyzer::collectInfo(const int32_t streamType, RtpPacket* pack
mNumRxPacket++;
mListRxPacket.push_back(packet);
+ if (mListRxPacket.size() >= MAX_NUM_PACKET_STORED)
+ {
+ RtpPacket* pPacket = mListRxPacket.front();
+ mListRxPacket.pop_front();
+ delete pPacket;
+ }
+
IMLOGD_PACKET3(IM_PACKET_LOG_RTP, "[collectInfo] seq[%d], jitter[%d], rx list size[%d]",
packet->seqNum, packet->jitter, mListRxPacket.size());
}
@@ -242,7 +261,7 @@ void MediaQualityAnalyzer::collectOptionalInfo(
LostPktEntry* entry = new LostPktEntry(seq, value);
mListLostPacket.push_back(entry);
- for (uint32_t i = 0; i < value; i++)
+ for (int32_t i = 0; i < value; i++)
{
// for rtcp xr
mRtcpXrEncoder->stackRxRtpStatus(kRtpStatusLost, 0);
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/RtcpXrEncoder.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/RtcpXrEncoder.cpp
index e8e3ddae..1069e32c 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/RtcpXrEncoder.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/RtcpXrEncoder.cpp
@@ -221,7 +221,7 @@ tLossReport* RtcpXrEncoder::createLossAnalysisReport(std::list<RtpPacket*>* pack
{
if (packet->seqNum >= beginSeq && packet->seqNum <= endSeq)
{
- for (uint32_t i = 0; i < packet->param1; i++)
+ for (int32_t i = 0; i < packet->param1; i++)
{
if (packet->seqNum + i > endSeq)
{
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBinaryFormat.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBinaryFormat.cpp
index be543a7c..3d802bc4 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBinaryFormat.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBinaryFormat.cpp
@@ -141,7 +141,7 @@ static bool BinaryToBase64(char* pszDst, uint32_t nDstBuffSize, uint8_t* pbSrc,
if ((nDstBuffSize - 1) < ((nSrcSize + 2) / 3 * 4))
return false;
- for (uint32_t nPos = 0; nPos < nSrcSize; ++nPos)
+ for (int32_t nPos = 0; nPos < nSrcSize; ++nPos)
{
c6bit = (pbSrc[nPos] >> 2) & 0x3F;
(*pEncBuffer) = BASE64_ENCODING_TABLE[(uint8_t)c6bit];
@@ -202,7 +202,7 @@ static bool Base64ToBinary(uint8_t* pbDst, uint32_t* pnDstSize, uint32_t nDstBuf
if (nDstBuffSize < ((nSrcLen >> 2) * 3 + (nSrcLen & 0x3)))
return false;
- for (uint32_t nPos = 0; nPos < nSrcLen; ++nPos)
+ for (int32_t nPos = 0; nPos < nSrcLen; ++nPos)
{
if (pszSrc[nPos] == LF)
nPos += 1;
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp
index 7bafc1c1..bc0bf902 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp
@@ -103,7 +103,7 @@ void ImsMediaBitWriter::WriteByteBuffer(uint32_t value)
{
uint32_t nRemainBitSize = 32;
- for (uint32_t i = 0; i < 4; i++)
+ for (int32_t i = 0; i < 4; i++)
{
nRemainBitSize -= 8;
uint8_t v = (value >> nRemainBitSize) & 0x00ff;
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/ImsMediaVideoUtil.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/ImsMediaVideoUtil.cpp
index 636364ed..4635925e 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/ImsMediaVideoUtil.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/ImsMediaVideoUtil.cpp
@@ -95,7 +95,7 @@ bool ImsMediaVideoUtil::ModifyAvcSpropParameterSet(
memset(pSPSConfig, 0x00, MAX_CONFIG_LEN);
- for (uint32_t i = 0; i < MAX_CONFIG_LEN; i++)
+ for (int32_t i = 0; i < MAX_CONFIG_LEN; i++)
{
uint8_t Comma = ',';
uint8_t cmpConfig = *(inSpropparam + i);
@@ -179,7 +179,7 @@ ImsMediaResult ImsMediaVideoUtil::ParseAvcSpropParam(const char* szSpropparam, t
memset(pSPSConfig, 0x00, MAX_CONFIG_LEN);
- for (uint32_t i = 0; i < MAX_CONFIG_LEN; i++)
+ for (int32_t i = 0; i < MAX_CONFIG_LEN; i++)
{
uint8_t Comma = ',';
char cmpConfig = *(szSpropparam + i);
@@ -269,7 +269,7 @@ ImsMediaResult ImsMediaVideoUtil::ParseAvcSpropParam(const char* szSpropparam, t
bitreader.ReadByUEMode(); // Read offset_for_top_to_bottom_field
uint32_t num_ref_frames_in_pic_order_cnt_cycle =
bitreader.ReadByUEMode(); // Read num_ref_frames_in_pic_order_cnt_cycle
- for (uint32_t i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++)
+ for (int32_t i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++)
{
bitreader.ReadByUEMode(); // Read offset_for_ref_frame[i];
}
@@ -378,7 +378,7 @@ ImsMediaResult ImsMediaVideoUtil::ParseHevcSpropParam(const char* szSpropparam,
uint32_t nOffset = 0;
- for (uint32_t i = 0; i < nSPSConfigSize - 6; i++)
+ for (int32_t i = 0; i < nSPSConfigSize - 6; i++)
{
// NAL unit header offset
if (pszSpropparam[i] == 0x00 && pszSpropparam[i + 1] == 0x00 &&
@@ -422,7 +422,7 @@ ImsMediaResult ImsMediaVideoUtil::ParseHevcSpropParam(const char* szSpropparam,
uint8_t sub_layer_profile_present_flag[sps_max_sub_layers_minus1];
uint8_t sub_layer_level_present_flag[sps_max_sub_layers_minus1];
- for (uint32_t i = 0; i < sps_max_sub_layers_minus1; i++)
+ for (int32_t i = 0; i < sps_max_sub_layers_minus1; i++)
{
sub_layer_profile_present_flag[i] = objBitReader.Read(1);
sub_layer_level_present_flag[i] = objBitReader.Read(1);
@@ -430,13 +430,13 @@ ImsMediaResult ImsMediaVideoUtil::ParseHevcSpropParam(const char* szSpropparam,
if (sps_max_sub_layers_minus1 > 0)
{
- for (uint32_t j = sps_max_sub_layers_minus1; j < 8; j++)
+ for (int32_t j = sps_max_sub_layers_minus1; j < 8; j++)
{
objBitReader.Read(2);
}
}
- for (uint32_t i = 0; i < sps_max_sub_layers_minus1; i++)
+ for (int32_t i = 0; i < sps_max_sub_layers_minus1; i++)
{
if (sub_layer_profile_present_flag[i])
{
@@ -595,7 +595,7 @@ bool ImsMediaVideoUtil::ParseAvcSps(uint8_t* pbBuffer, uint32_t nBufferSize, tCo
bitreader.ReadByUEMode(); // Read offset_for_top_to_bottom_field
uint32_t num_ref_frames_in_pic_order_cnt_cycle = bitreader.ReadByUEMode();
- for (uint32_t i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++)
+ for (int32_t i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++)
{
bitreader.ReadByUEMode(); // Read offset_for_ref_frame[i];
}
@@ -665,7 +665,7 @@ bool ImsMediaVideoUtil::ParseHevcSps(uint8_t* pbBuffer, uint32_t nBufferSize, tC
uint32_t nOffset = 0;
- for (uint32_t i = 0; i < nBufferSize - 6; i++)
+ for (int32_t i = 0; i < nBufferSize - 6; i++)
{
// NAL unit header offset
if (pbBuffer[i] == 0x00 && pbBuffer[i + 1] == 0x00 && pbBuffer[i + 2] == 0x00 &&
@@ -698,7 +698,7 @@ bool ImsMediaVideoUtil::ParseHevcSps(uint8_t* pbBuffer, uint32_t nBufferSize, tC
uint8_t sub_layer_profile_present_flag[sps_max_sub_layers_minus1];
uint8_t sub_layer_level_present_flag[sps_max_sub_layers_minus1];
- for (uint32_t i = 0; i < sps_max_sub_layers_minus1; i++)
+ for (int32_t i = 0; i < sps_max_sub_layers_minus1; i++)
{
sub_layer_profile_present_flag[i] = objBitReader.Read(1);
sub_layer_level_present_flag[i] = objBitReader.Read(1);
@@ -706,13 +706,13 @@ bool ImsMediaVideoUtil::ParseHevcSps(uint8_t* pbBuffer, uint32_t nBufferSize, tC
if (sps_max_sub_layers_minus1 > 0)
{
- for (uint32_t j = sps_max_sub_layers_minus1; j < 8; j++)
+ for (int32_t j = sps_max_sub_layers_minus1; j < 8; j++)
{
objBitReader.Read(2);
}
}
- for (uint32_t i = 0; i < sps_max_sub_layers_minus1; i++)
+ for (int32_t i = 0; i < sps_max_sub_layers_minus1; i++)
{
if (sub_layer_profile_present_flag[i])
{
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp
index 37823bfa..1cc28bc2 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp
@@ -796,7 +796,7 @@ void VideoJitterBuffer::CheckPacketLoss(uint16_t seqNum, uint16_t nLastRecvPkt)
bool bPLIPkt = false;
bool bSentPLI = false;
- for (uint32_t index = 0; index < nLossGap; index++)
+ for (int32_t index = 0; index < nLossGap; index++)
{
if (UpdateLostPacketList(PID + index, &countSecondNack, &nPLIPkt, &bPLIPkt))
{
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp
index eb2f41c0..32bdc4bd 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp
@@ -637,8 +637,8 @@ void OnSessionClosed(void* context, ACameraCaptureSession* session)
void OnSessionReady(void* context, ACameraCaptureSession* session)
{
IMLOGW1("[OnSessionReady] session[%p] ready", session);
- reinterpret_cast<ImsMediaCamera*>(context)->OnSessionState(session,
- CaptureSessionState::kStateReady);
+ reinterpret_cast<ImsMediaCamera*>(context)->OnSessionState(
+ session, CaptureSessionState::kStateReady);
}
void OnSessionActive(void* context, ACameraCaptureSession* session)
@@ -883,7 +883,7 @@ bool ImsMediaCamera::MatchCaptureSizeRequest(ANativeWindow* window)
ACameraMetadata_const_entry entry;
ACameraMetadata_getConstEntry(metadata, ACAMERA_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, &entry);
- for (uint32_t i = 0; i < entry.count; i += 4)
+ for (int32_t i = 0; i < entry.count; i += 4)
{
int32_t input = entry.data.i32[i + 3];
int32_t format = entry.data.i32[i + 0];
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp
index f67a020f..1d30f520 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp
@@ -832,7 +832,7 @@ void IVideoRendererNode::QueueConfigFrame(uint32_t timestamp)
nNumOfConfigString = 3;
}
- for (uint32_t i = 0; i < nNumOfConfigString; i++)
+ for (int32_t i = 0; i < nNumOfConfigString; i++)
{
uint8_t* pConfigData = NULL;
uint32_t nConfigLen = mConfigLen[i];
diff --git a/tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp b/tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp
index bb49c036..af9320f4 100644
--- a/tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp
+++ b/tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp
@@ -148,7 +148,7 @@ TEST_F(MediaQualityAnalyzerTest, TestCallQualityLevelChanged)
EXPECT_CALL(callback, onEvent(kAudioCallQualityChangedInd, _, _)).Times(2);
analyzer->startTimer(1000);
- for (uint32_t i = 0; i < 10; i++)
+ for (int32_t i = 0; i < 10; i++)
{
RtpPacket* packet = new RtpPacket();
@@ -177,7 +177,7 @@ TEST_F(MediaQualityAnalyzerTest, TestJitterInd)
analyzer->setJitterThreshold(1, 10);
analyzer->startTimer(1000);
- for (uint32_t i = 0; i < 20; i++)
+ for (int32_t i = 0; i < 20; i++)
{
RtpPacket* packet = new RtpPacket();
packet->seqNum = i;
@@ -197,7 +197,7 @@ TEST_F(MediaQualityAnalyzerTest, TestPacketLossInd)
analyzer->setPacketLossThreshold(1, 1);
analyzer->startTimer(1000);
- for (uint32_t i = 0; i < 10; i++)
+ for (int32_t i = 0; i < 10; i++)
{
RtpPacket* packet = new RtpPacket();