One of our customers wants to add a VOIP feature to an existing board. This device is already equipped with a microphone connected to ADC, and they already succeeded in sampling the voice, sending it over the Ethernet and playing it back.
The problem is that they send the samples as raw data and there is no QoS management. So the communication channel is unable to support the data flow and a good part of the packets is lost.
My first suggestion (use a hardware codec like TLV320) is not possible because the board is in full production and they can't change it.
So I am exploring the firmware only option.
I suppose that Speex could be a good option, as we only need to exchange voice, but I was unable to find any actual proof of successful porting to UC3.
According to Speex documentation, the codec should run on any MCU with enough core speed + ability to natively multiply two 16-bit words...
Any suggestions or hints?