summaryrefslogtreecommitdiff
path: root/service/src/com/android/telephony/imsmedia/lib
AgeCommit message (Collapse)Author
2023-04-21Merge "Fix the HEVC codec decoding failure in video call" into udc-devandroid14-devBodam Nam
2023-04-19Merge "Don't stop decoding RTCP compound packet when RTCP-XR report block is ↵Treehugger Robot
encountered." into udc-dev
2023-04-19Merge "Change min/initial jitter buffer size to 60ms" into udc-devBodam Nam
2023-04-19Don't stop decoding RTCP compound packet when RTCP-XR report block is ↵Avinash Malipatil
encountered. Skip the XR report or any other unknown report block and continue to decode next report in the RTCP compound packet. Fix possible memory leaks. Bug: 276462829 Test: atest ImsMediaNativeTests and live network verified Change-Id: Ica104680d4a0260d8a28d3eef323e415d5b071b8
2023-04-19Change min/initial jitter buffer size to 60msbodamnam
Bug: 271808260 Test: Verified voice call in live network Change-Id: I9a1e0c28a9e806b447cb3b6b4be03708db8dd57d
2023-04-18Fix the HEVC codec decoding failure in video callbodamnam
Fix the error decoding hevc video frame by changing the flag in the ImsMediaVideoRenderer and logic of parsing SPS in the ImsMediaVideoUtil And additionaly fix the resolution notification failure when the CVO is disabled. Refactoring IVideoRendererNode, rename the valuables, remove redundant and disabled logics Bug: 277720434 Test: Verified AVC/HEVC video call using ImsMediaTestingApp, L_IR94_6853_5 passed. Change-Id: Ic8b3e6943939e8951414d35138e7168df7fa7fc4
2023-04-17Merge "Add UT for AudioManager" into udc-devBodam Nam
2023-04-14Fix the DTMF is not workingbodamnam
When the DTMF payloads have different RTP timestamps as its incremented every 20msec, the RTP payload cannot be recognized by the network side. I fix the problem by changing the RtpEncoderNode to use the fixed timestamp for all DTMF packets when the new DTMF is set. Bug: 275938987 Test: Verified with the dtmf ARS service in live network, Verified LTE-BTR-5-5466, atest ImsMediaNativeTests Change-Id: I2cdc1f442e515fcd0cdb259b0a4300ffb1d19106
2023-04-12Merge "Fix the audio crash when open the audio player failed" into udc-devBodam Nam
2023-04-11Merge "Add unit test cases for RTCP decoder node." into udc-devAvinash Malipatil
2023-04-11Merge "Implementation of video downgrade opreration API" into udc-devBodam Nam
2023-04-11Fix the audio crash when open the audio player failedbodamnam
The ImsMediaAudioPlayer will be crashed by null pointer exception when invokes stop method after openSession is failed. I added initialization of class member parameters to avoid null pointer exception. Bug: 277535685 Bug: 277536259 Test: Verified simulation condition to test the audio player is in exceptional state, atest ImsMediaNativeTests Change-Id: I9f09cdbc44e8acdefbc05e60c76efdf408edbb58
2023-04-07Merge "Fix the video resolution was changing continuously due to the subtype ↵Bodam Nam
being updated to undefined" into udc-dev
2023-04-06Fix the video resolution was changing continuously due to the subtype being ↵bodamnam
updated to undefined This CL also fixes CVO operation was not working due to the incorrect list logic in the SetCvoExtension method in RtpEncoderNode Bug: 242261687 Test: atest ImsMediaNativeTests, Verified with VZW TC RCS 2.27, Video Call simulation test using ImsMediaTestingApp to verify the CVO operation Change-Id: I42b8a676d4face581ccfa8d68900cc035c987cf8
2023-04-06Merge "Added implementation for calling AoC decoder every 20ms from ↵Dhavalkumar Chaudhary
IAudioPlayerNode to avoid timing issue on AoC side when SID packets are flowing every 160ms when there is silence in call." into udc-dev
2023-04-06Merge "Fix to handle empty redundant payload in RTT decoder" into udc-devBodam Nam
2023-04-06Merge "Add UT for AudioRtpPayloadEncoder/Decoder" into udc-devBodam Nam
2023-04-06Add UT for AudioRtpPayloadEncoder/Decoderbodamnam
1) Add UT for AudioRtpPayloadEncoder/Decoder 2) Define default CMR for EVS codec 3) Refactoring debug logs Bug: 272299058 Test: atest ImsMediaNativeTests, Verified voice call of AMR/AMR-WB/EVS codec using ImsMediaTestingApp Change-Id: Id34764633a45cc35bb77cbac9676966824b83fdf
2023-04-06Add unit test cases for RTCP decoder node.Avinash Malipatil
Bug: 272299057 Test: atest ImsMediaNativeTests Change-Id: I90a8da2ef9677267148fb4f9667ed1856dbe872e
2023-04-05Fix video distortion in TX encoded frames.Avinash Malipatil
Video encoder input format has stride not equal to the image width which caused distorted video encoder output. Enhanced image rotation utility and pause image source to accept output image stride and added padding in output buffers. Bug: 266388412 Test: atest ImsMediaNativeTests, tested for all standard resolutions using Media Test App. Change-Id: I1d8ed477e4cb7d4746a32b0f52e64e4660a0014a
2023-04-05Fix to handle empty redundant payload in RTT decoderbodamnam
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
2023-04-05Add UT for AudioManagerbodamnam
Fix the crash during the AudioManager UT by the racing codition accessing the AudioManager instance between AudioManger destruction and processEvent in ImsMediaEventHandler. Bug: 272299058 Test: atest ImsMediaNativeTests, Verified the voice call in live network. Change-Id: I9bed59f9bfe2916ccdc2fae2c671c8811bcdcdca
2023-04-04Added implementation for calling AoC decoder every 20ms from ↵dhavalc
IAudioPlayerNode to avoid timing issue on AoC side when SID packets are flowing every 160ms when there is silence in call. Fix: 275528243 Test: Tested with device and confirmed from logs that decoder is called even no data in jitter buffer Change-Id: I4bf874a8567504e085c40ade426f1aadc2c2bc71
2023-04-03Merge "Add unit test for ImsMediaBitWriter/Reader" into udc-devBodam Nam
2023-03-31Merge "Fix the video call crash in processOutputBuffer" into udc-devBodam Nam
2023-03-29Fix the infinite loop error in AudioJitterBufferbodamnam
There is an issue when the AudioJitterBuffer invoke resync method if the time difference is not fix to any statement in the loop in condition of the audio frame is SID and the time difference lower than current jitter buffer size minus 20msec. I fix the infinite loop problem to add escape. Bug: 275635779 Test: Verified multiple voice call test in live network Change-Id: I0a6a47f81444219b1fdf561fa69d080dba4ac5d1
2023-03-29Fix the video call crash in processOutputBufferbodamnam
1) Change the mutex logic to cover the ImsMediaSourceNode Stop method and ImageReader, Codec and Camera callback. 2) Remove the mutex in IVideoSourceNode to prevent the thread block between Stop() and OnUplinkEvent() invoked after Stop called. 3) Remove the direct frame delivery using recording surface buffer between camera and encoder. Bug: 270023503 Test: Verified Video Call using ImsMediaTestingApp, atest ImsMediaNativeTests Change-Id: Ib5fbdb26c44ecb483cfcfb21602a7e38c3c80664
2023-03-29Implementation of video downgrade opreration APIbodamnam
Add APIs to downgrade the video triggered by bitrate monitoring Bug: 224903790 Test: atest ImsMediaNativeTests, ImsMediaJavaUnitTests, verified with loopback mode using ImsMediaTestingApp, Video Call downgrade test with L_IR94_312601. Change-Id: I407e5b864bf8258ebb22bb47a1aba1eec871bc2c
2023-03-28Add unit test for ImsMediaBitWriter/Readerbodamnam
Bug: 272299058 Test: atest ImsMediaNativeTests Change-Id: I29af6ba0b4f2ca643df83a70841d63110f538f63
2023-03-24Merge "Fix the SID playout delay issue" into udc-devBodam Nam
2023-03-23Modify to notify MediaQualityStatus checking media directionbodamnam
1) Add statement to check the direction in Rtp, Rtcp, Jitter and packet loss notification 2) Modify to reset the statistics status when the direction changed in the MediQualityAnalzyer 3) Modify to check rtcp enabled to reset the inactivity counter for rtcp Bug: 272068717 Test: atest ImsMediaNativeTests, Verified Voice Call hold/resume case in live network. Verified VZW VoWIFI 10.3 which includes hold/resume operation. Change-Id: I61b0b9cce09139e0a9599c4ca4a07e3899b62276
2023-03-23Merge "Shorten latency of the CallQuality notification" into udc-devBodam Nam
2023-03-23Shorten latency of the CallQuality notificationbodamnam
Move the MediaQualityAnalyzer stop invoked at the beginning of the session closing. Bug: 272143186 Test: Verified with voice call in live network, atest ImsMediaNativeTests Change-Id: Ie8a9997c4f0eb92207bd9ddcce1dab49e01dc295
2023-03-22Fix the SID playout delay issuebodamnam
The AudioJitterBuffer is used to store audio frames from multiple threads. One thread stacks audio frames, while another thread retrieves them every 20 milliseconds. When the AudioJitterBuffer starts, it calculates the time delay of the stacked audio frames and discards the old ones, which causes the frames to be resynced to maintain a constant latency as configured in the jitter buffer size. When the resync is done, the jitter buffer decides the playing timestamp and increases it every time a frame is retrieved. The problem is that the AudioJitterBuffer does not increase the playing timestamp when the queue is empty. This causes the discard of audio frames when the audio frame changes from SID to normal frame because the SID interval is 160 milliseconds but audio frames are 20 milliseconds. To fix this, I added a checking condition to increase the playing timestamp for the next interval to correctly get the playable audio frame and prevent the incorrect audio frame discarding. Bug: 271808260 Test: Voice Call in live network checking the SID and normal sound switching period, atest ImsMediaNativeTests Change-Id: I1a08244d03d8cbfb941c68db7bd49e9577ca04e7
2023-03-22Revert "Fix the SID playout delay issue"Bodam Nam
This reverts commit d48560af47c40dd0259a3b5e233a3d8d1bc211ab. Reason for revert: atest failure Bug: 274715723 Change-Id: I681fc792f219467557355e5fe73d6fdb032e37f6
2023-03-17Fix the SID playout delay issuebodamnam
The AudioJitterBuffer is used to store audio frames from multiple threads. One thread stacks audio frames, while another thread retrieves them every 20 milliseconds. When the AudioJitterBuffer starts, it calculates the time delay of the stacked audio frames and discards the old ones, which causes the frames to be resynced to maintain a constant latency as configured in the jitter buffer size. When the resync is done, the jitter buffer decides the playing timestamp and increases it every time a frame is retrieved. The problem is that the AudioJitterBuffer does not increase the playing timestamp when the queue is empty. This causes the discard of audio frames when the audio frame changes from SID to normal frame because the SID interval is 160 milliseconds but audio frames are 20 milliseconds. To fix this, I added a checking condition to increase the playing timestamp for the next interval to correctly get the playable audio frame and prevent the incorrect audio frame discarding. Bug: 271808260 Test: Voice Call in live network checking the SID and normal sound switching period, atest ImsMediaNativeTests Change-Id: I5e3fd176725b26d176c7a58e46fbd4f95e16ade3
2023-03-17Merge "Improve the text sending performance" into udc-devBodam Nam
2023-03-16Merge "Add support for updating the band info to audio HAL" into udc-devJayachandran C
2023-03-16Improve the text sending performancebodamnam
1) The TextSourceNode was sending data to the UTF-8 chunk unit, which was slowing down the performance. I remove the logic splits the text string to UTF-8 unit and send the text string as same as it was received to speed up the performance. 2) Remove the own text list and use the member of data queue in base class instead in the TextSourceNode. Bug: 271626757 Test: 1 to 1 MO/MT RTT test case with device, atest ImsMediaNativeTests Change-Id: Ie4ab8e189e4fc231d6b11707f6adae4fa563d936
2023-03-15Merge "Fix the StreamScheduler thread running infinite loop" into udc-devBodam Nam
2023-03-15Fix the StreamScheduler thread running infinite loopbodamnam
1) The StreamScheduler calls the ProcessData method of the non-runtime node in the RunRegisteredNode method. There used to be a routine that removed nodes if the ProcessData method was invoked once, but it was removed by the change of StreamScheduler before which causes side effect in the video call not playing the video frames and RtpEncoderNode invokes ProcessData without time gap. I have improved that routine and made it more efficient to resolve the side effect. 2) Modify calling ProcessData interval to 1ms Bug: 270524661 Bug: 272724778 Test: Verified Voice Call, Video call and RTT call using loopback mode using the ImsMediaTestingApp, atest ImsMediaNativeTests Change-Id: I8c99cbf367e105a84c0f5dcd6644ffc90729f698
2023-03-15Merge "Fix not to send RTCP in NO_FLOW direction" into udc-devBodam Nam
2023-03-14Add support for updating the band info to audio HALJayachandran C
Bug: 267802258 Test: Live network testing and verified the AudioExt HAL message Change-Id: If8994c944d53f5736a6024fa3700609f49862333
2023-03-13Add unit test cases for RTCP encoder node.Avinash Malipatil
Bug: 272299057 Test: atest ImsMediaNativeTests Change-Id: I5324935dad859de281ca05b1b13ea46814c9f52a
2023-03-13Merge "Fix the video crash in camera and pause image mode" into udc-devBodam Nam
2023-03-10Merge "Added DTX and OctetAligned configuration for audio source and player" ↵Dhavalkumar Chaudhary
into udc-dev
2023-03-10Added DTX and OctetAligned configuration for audio source and playerdhavalc
Fix: 269100741 Test: Tested with device and dtx and octetaligned configuration setting dynamically Change-Id: I4d55f8efe71f347b05557cd3fac8b6afb5baee67
2023-03-10Merge "Fix the JitterNetworkAnalyzer crash" into udc-devBodam Nam
2023-03-09Merge "Rectify RTCP XR Loss RLE Report Block type handling Wrong value was ↵Rakesh Raghava
set to RTCP XR Loss RLE Report Block type." into udc-dev
2023-03-09Fix not to send RTCP in NO_FLOW directionbodamnam
The CL modifies that the RTCP packets are no longer sent in the NO_FLOW direction. The BaseStreamGraph class's Start method was overridden to ensure that each Audio/Text StreamRtcp instance does not send RTCP packets in the NO_FLOW direction Bug: 270893749 Test: atest ImsMediaNativeTests, Verified Voice Call, Video Call and RTT call direction changing cases in loopback mode using ImsMediaTestingApp Change-Id: I361155a4b06cc1fb067844583ebd72371cf7f661