summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDhavalkumar Chaudhary <dhavalc@google.com>2023-04-06 09:10:41 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-04-06 09:10:41 +0000
commit66a1e4e8ba1de00a600c078e98946c0580bc4922 (patch)
tree576730d8bdf33408a0249f6f1766e628bbefd7cf
parentd4c3efd7bf41577ec5d5738a106ccfb896e1c9ba (diff)
parent89541d635dd9cd45061f16c0d9cb39ee7494b201 (diff)
downloadImsMedia-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>
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/IAudioPlayerNode.cpp16
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h1
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;