Hi Experts,
I'm working on decoding G.729 received by RTP packets from Cisco Call Manager. I'm able to playback the sound, although the voice sounds almost alien or like a robot, with some clicking noises. I'm using the Open G.729 lib from VoiceAge.
I supose my question is: can I simply take the payload from the RTP packet and split it in half, sending the first 10 Bytes to the decoder, then the second 10 Bytes to the decoder? Or is there some byte order that I must format the payload from the RTP packet into?
For example, let's say the payload looks like this:
64 61 75 af 35 6b d4 31 8e 96 62 05 a8 a6 bc bb dc 42 b7 51
Can I send the following "64 61 75 af 35 6b d4 31 8e 96" (in this order as an array of 1 Byte unsigned chars) to the decoder first then getting back PCM1 (an array of 2 Byte words), then send "62 05 a8 a6 bc bb dc 42 b7 51" (just like the first 10 Bytes) to the decoder then getting back PCM2? Once I have PCM1 and PCM2 just concatinating the arrays together?
I'm not sure if that example made sense, but I'm curious if because the RTP payload is 20ms of G.729 (which is normally decoded in 10ms) is there a special way in which this payload needs to be extracted and ordered before converting to PCM? I'm thinking this might be my problem, but I'm not sure.
Also my wave format for the data once decoded is:
nBlockAlign = 2;
wBitsPerSample = nBlockAlign * 8;
wFormatTag = 1;
nChannels = 1;
nSamplesPerSec = 8000;
nAvgBytesPerSec = (nSamplesPerSec * nChannels * wBitsPerSample)/8;
Ok, so I realize this is a pretty big question, but really any help I can get will be greatly appreciated!
Thanks in advance,
Brandon
Start Free Trial