summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDhavalkumar Chaudhary <dhavalc@google.com>2023-04-06 08:36:04 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2023-04-06 08:36:04 +0000
commit89541d635dd9cd45061f16c0d9cb39ee7494b201 (patch)
tree576730d8bdf33408a0249f6f1766e628bbefd7cf
parent3cf487ecf694e32c508046b98e9701edfc88d4df (diff)
parentb8f9b2e19b229559fad0e853a98d227223871220 (diff)
downloadImsMedia-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
-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;