I'm working on IMX8M Mini EVK with Android Pie (p9.0.0_2.3.0) OS.
I have integrated CX9000 synaptics audio amplifier and CX20921 Dual MIC voice processor to the EVK.
There are two DMICs connected on the CX20921, one for capturing left channel data and other for capturing the right channel data. A 10W speaker is connected on the CX9000 speaker amplifier.
The CX9000 and CX20291 are detected successfully on the EVK. I am also able to play and record audio on the device using tinycap and tinyplay commands.
Then I created a custom WebRTC based Android application to implement VoIP functionality. Using this app I can connect to other Android based device running the same application. When I tested the VoIP functionality, I hear a repetitive noise on the other end i.e. the other Android device.
I have tested the application with several Android devices like Samsung tablets, Google tablets, mobile phones, etc and the same issue is observed.
When I use the application between two mobile devices or tablets or a combination of those, the noise is not produced. Only when IMX8 EVK is connected to other Android device, the noise is produced.
I also tried using other applications from PlayStore like Linphone and Jitsi-Meet to test VoIP functionality, but the same noise is heard on them too.
For reference I have attached a recording file containing the noise that is heard on the other end.
Audio capture and playback using the default recorder and music applications in Android works fine. No noise is observed while using them. Similarly, no noise is observed during playback/capture through tinycap and tinyplay.
I tested the same use-case on a Qualcomm EVM with Snapdragon 625 processor, but in that device the noise is not observed during VoIP. In this case, the HW connections, Codec drivers and the Android applications used were same as that were used in IMX8MM.
From the above observations, it seems the issue is introduced in the Android framework.
How can I go about to remove the noise during VoIP call ?