diff options
author | Bodam Nam <bodamnam@google.com> | 2023-03-10 01:55:49 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-03-10 01:55:49 +0000 |
commit | ac0ecc07d7ebb0f24f6ee552e4be2216af35a6bd (patch) | |
tree | b84006a85f5183cc02caa0449fc8a18d4481246b /service/src/com/android/telephony/imsmedia | |
parent | 033f3477d72db5c418fd9262fded4fa4e40e8b29 (diff) | |
parent | c1b54809c10c384bdb7731d24f4fd7c0b3ca08ff (diff) | |
download | ImsMedia-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')
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; |