Community
cancel
Showing results for 
Search instead for 
Did you mean: 
D_S_
Beginner
73 Views

Distorted Audio In G.729A Decoder

I am having problems with distorted audio in the G.729A decoder.
I was wondering if anyone is having problems with this for both IPP 6.0 and 5.3.
I have a conference mixer that is using this codec for connections to IP phones.
I can tell that it is the decoder because when I call in using ulaw (different codec), I can hear the ulaw phone clearly from the G.729A phone, but it is distorted when I speak into the G.729A phone.
G.729A phone to G.729A phone is distorted both ways.
When I plug in the VoiceAge G.729A codec, there is clear audio all around.
I know the APIs are different and it could still be a problem with my code, but I would like to know if people have gotten the G.729A codec working properly and what it takes to make it so.
0 Kudos
1 Reply
Vyacheslav_Baranniko
New Contributor II
73 Views

Quoting - D.S.
I am having problems with distorted audio in the G.729A decoder.
I was wondering if anyone is having problems with this for both IPP 6.0 and 5.3.
I have a conference mixer that is using this codec for connections to IP phones.
I can tell that it is the decoder because when I call in using ulaw (different codec), I can hear the ulaw phone clearly from the G.729A phone, but it is distorted when I speak into the G.729A phone.
G.729A phone to G.729A phone is distorted both ways.
When I plug in the VoiceAge G.729A codec, there is clear audio all around.
I know the APIs are different and it could still be a problem with my code, but I would like to know if people have gotten the G.729A codec working properly and what it takes to make it so.
Hi there,

Please make sure you have linked properly. i.e. toUSC_G729A_Fxns,check ifthe status USC_NoError is returned after Init(), andthe critical option modevad is set to 1.
You might also need to check other setting in decoder Init(), first parameter options, which is of USC_Option type:
Init_G729I(const USC_Option *options, const USC_MemBank *pBanks, USC_Handle *handle).

Settings required:

direction = 1// decode)
law = 0 // linear pcm
framesize = 160 // 10ms frame
bitrate = 8000 // 8 kbps
pcmType.bitPerSample = 16// 16bit pcm
pcmType.sample_frequency=8000 // 8 Khz audio
pcmType.nChannels = 1 // mono
options->modes.vad = 1 // CNG/DTX/VAD

You need also to check RTP packect is10 ms, otherwiseeach packet must be splited anddecoder called multiple times.

Some care needed forlost packets.Paremetr in=0orin->pBuffer=0in Decode() must be set to make sure decoder conceals for losts. And setin->frametype normallyto3 (Voice, good packet) and 1 (SID, also good,withRTP payload length 2 which is compressed silence) , 0 (Untransmitted, RTP zero payload length), -1 (Bad or Lost).

Let me know if thishelps
Wbr, Vyacheslav, IPP , Speech coding
Reply