diff options
author | Dhavalkumar Chaudhary <dhavalc@google.com> | 2023-04-06 09:10:41 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-04-06 09:10:41 +0000 |
commit | 66a1e4e8ba1de00a600c078e98946c0580bc4922 (patch) | |
tree | 576730d8bdf33408a0249f6f1766e628bbefd7cf | |
parent | d4c3efd7bf41577ec5d5738a106ccfb896e1c9ba (diff) | |
parent | 89541d635dd9cd45061f16c0d9cb39ee7494b201 (diff) | |
download | ImsMedia-66a1e4e8ba1de00a600c078e98946c0580bc4922.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 am: 89541d635d
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/ImsMedia/+/22343297
Change-Id: Idfdb54980a0a29f295116a9d2aa20336d0bda98d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
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; |