summaryrefslogtreecommitdiff
path: root/service/src/com/android/telephony/imsmedia
diff options
context:
space:
mode:
authorBodam Nam <bodamnam@google.com>2023-03-10 01:55:49 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-03-10 01:55:49 +0000
commitac0ecc07d7ebb0f24f6ee552e4be2216af35a6bd (patch)
treeb84006a85f5183cc02caa0449fc8a18d4481246b /service/src/com/android/telephony/imsmedia
parent033f3477d72db5c418fd9262fded4fa4e40e8b29 (diff)
parentc1b54809c10c384bdb7731d24f4fd7c0b3ca08ff (diff)
downloadImsMedia-ac0ecc07d7ebb0f24f6ee552e4be2216af35a6bd.tar.gz
Merge "Fix the JitterNetworkAnalyzer crash" into udc-dev am: c1b54809c1
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/ImsMedia/+/21899061 Change-Id: Ie7464b606ee8bece0eb6f35c06387ee5c3c09dc1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'service/src/com/android/telephony/imsmedia')
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/JitterNetworkAnalyser.cpp8
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/JitterNetworkAnalyser.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/JitterNetworkAnalyser.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/JitterNetworkAnalyser.cpp
index 85757c84..065b013f 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/JitterNetworkAnalyser.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/JitterNetworkAnalyser.cpp
@@ -48,6 +48,8 @@ void JitterNetworkAnalyser::Reset()
mNetworkStatus = NETWORK_STATUS_NORMAL;
mGoodStatusEnteringTime = 0;
mBadStatusChangedTime = 0;
+
+ std::lock_guard<std::mutex> guard(mMutex);
mListJitters.clear();
}
@@ -79,6 +81,8 @@ int32_t JitterNetworkAnalyser::CalculateTransitTimeDifference(
int32_t inputTimestampGap = timestamp - mBasePacketTime;
int32_t inputTimeGap = arrivalTime - mBaseArrivalTime;
int32_t jitter = inputTimeGap - inputTimestampGap;
+
+ std::lock_guard<std::mutex> guard(mMutex);
mListJitters.push_back(jitter);
if (mListJitters.size() > MAX_JITTER_LIST_SIZE)
@@ -91,6 +95,8 @@ int32_t JitterNetworkAnalyser::CalculateTransitTimeDifference(
double JitterNetworkAnalyser::CalculateDeviation(double* pMean)
{
+ std::lock_guard<std::mutex> guard(mMutex);
+
if (mListJitters.empty())
{
*pMean = 0;
@@ -114,6 +120,8 @@ double JitterNetworkAnalyser::CalculateDeviation(double* pMean)
int32_t JitterNetworkAnalyser::GetMaxJitterValue()
{
+ std::lock_guard<std::mutex> guard(mMutex);
+
if (mListJitters.empty())
{
return 0;
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/JitterNetworkAnalyser.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/JitterNetworkAnalyser.h
index 341d4043..e328a21a 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/JitterNetworkAnalyser.h
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/JitterNetworkAnalyser.h
@@ -19,6 +19,7 @@
#include <stdint.h>
#include <list>
+#include <mutex>
enum NETWORK_STATUS
{
@@ -67,6 +68,7 @@ private:
double CalculateDeviation(double* pMean);
int32_t GetMaxJitterValue();
+ std::mutex mMutex;
uint32_t mMinJitterBufferSize;
uint32_t mMaxJitterBufferSize;
uint32_t mBasePacketTime;