diff options
author | bodamnam <bodamnam@google.com> | 2023-03-23 13:38:02 +0000 |
---|---|---|
committer | bodamnam <bodamnam@google.com> | 2023-04-05 06:44:45 +0000 |
commit | 4ecaf6596c9439bf5e40859cf0cc40e256b7aa22 (patch) | |
tree | 0abfe83ca2e70993d77fdabfe628b6f4a0986eba /service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp | |
parent | 982e54e3fea845dd9c853b8133c9092b4355edc6 (diff) | |
download | ImsMedia-4ecaf6596c9439bf5e40859cf0cc40e256b7aa22.tar.gz |
Fix to handle empty redundant payload in RTT decoder
The current code could not recover lost packet from the redundant packets by the code skip the empty payload in TextRtpPayloadDecoderNode. Therefore, I change the below point to pass the empty redundant payload to recover the text payload when the packet is lost.
1) Modify TextRtpPayloadDecoder to send empty redundant payload to next node
2) Move the setting the flag in TextJitterBuffer from first frame received to the first frame processed.
3) Remove the code ignoring the empty frames in TextRendererNode
Bug: 274881848
Test: Verified packet loss simulation in RTT call using ImsMediaTestingApp, atest ImsMediaNativeTests, Pass the TC LTE_BTR_5_9439.
Change-Id: I09afff3eb288a0d0318eadcaa53966c0745931f9
Diffstat (limited to 'service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp')
-rw-r--r-- | service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp index 628248cc..254081d1 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp @@ -114,20 +114,6 @@ void TextRendererNode::ProcessData() "[ProcessData] size[%u], TS[%u], mark[%u], seq[%u], last seq[%u]", size, timestamp, mark, seq, mLastPlayedSeq); - // ignore empty t.140 - if (size == 0) - { - mLastPlayedSeq = (uint16_t)seq; - DeleteData(); - break; - } - - if (data == nullptr) - { - IMLOGD0("[ProcessData] invalid data"); - break; - } - if (mFirstFrameReceived) { // detect lost packet |