diff options
author | Dhavalkumar Chaudhary <dhavalc@google.com> | 2023-04-06 08:36:04 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-04-06 08:36:04 +0000 |
commit | 89541d635dd9cd45061f16c0d9cb39ee7494b201 (patch) | |
tree | 576730d8bdf33408a0249f6f1766e628bbefd7cf | |
parent | 3cf487ecf694e32c508046b98e9701edfc88d4df (diff) | |
parent | b8f9b2e19b229559fad0e853a98d227223871220 (diff) | |
download | ImsMedia-89541d635dd9cd45061f16c0d9cb39ee7494b201.tar.gz |
Merge "Added implementation for calling AoC decoder every 20ms from IAudioPlayerNode to avoid timing issue on AoC side when SID packets are flowing every 160ms when there is silence in call." into udc-dev
2 files changed, 10 insertions, 7 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/IAudioPlayerNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/IAudioPlayerNode.cpp index 9e57dc90..08975fb9 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/IAudioPlayerNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/IAudioPlayerNode.cpp @@ -80,7 +80,6 @@ ImsMediaResult IAudioPlayerNode::ProcessStart() IMLOGE0("[IAudioPlayer] Not able to start AudioPlayer"); } - mFirstFrame = false; mNodeState = kNodeStateRunning; StartThread(); return RESULT_SUCCESS; @@ -198,6 +197,7 @@ void* IAudioPlayerNode::run() bool bMark = false; uint32_t nSeqNum = 0; uint64_t nNextTime = ImsMediaTimer::GetTimeInMicroSeconds(); + bool isFirstFrameReceived = false; while (true) { @@ -210,24 +210,28 @@ void* IAudioPlayerNode::run() if (GetData(&subtype, &pData, &nDataSize, &nTimestamp, &bMark, &nSeqNum, &datatype) == true) { + IMLOGD_PACKET2(IM_PACKET_LOG_AUDIO, "[run] write buffer size[%d], TS[%u]", nDataSize, + nTimestamp); if (nDataSize != 0) { - IMLOGD_PACKET2(IM_PACKET_LOG_AUDIO, "[run] write buffer size[%d], TS[%u]", - nDataSize, nTimestamp); if (mAudioPlayer->onDataFrame(pData, nDataSize)) { // send buffering complete message to client - if (mFirstFrame == false) + if (isFirstFrameReceived == false) { mCallback->SendEvent(kImsMediaEventFirstPacketReceived, reinterpret_cast<uint64_t>(new AudioConfig(*mConfig))); - mFirstFrame = true; + isFirstFrameReceived = true; } } } - DeleteData(); } + else if (isFirstFrameReceived) + { + IMLOGE0("[run] GetData returned 0 bytes"); + mAudioPlayer->onDataFrame(nullptr, 0); + } nNextTime += 20000; uint64_t nCurrTime = ImsMediaTimer::GetTimeInMicroSeconds(); diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h index a041f25f..afea1a56 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h @@ -49,7 +49,6 @@ private: int32_t mCodecType; uint32_t mMode; ImsMediaCondition mCondition; - bool mFirstFrame; int8_t mEvsChannelAwOffset; kEvsBandwidth mEvsBandwidth; int8_t mSamplingRate; |