tags:

views:

30

answers:

1

Please bear with me as my understanding of audio codec is limited. I have this audio source from a IPCAM (through a htto//... CGI interface). I am trying to write several client programs to play this audio source on Windows, MAC, as well as Android phone. The audio is encoded in G711 (PCM ulaw).

Do I need to decode the PCM audio data to a raw audio data before I could pass it to the audio engine to play? If so, is there some sample code on how to decode it? I am confused as somehow I believe PCM is already RAW. Could I just feed it directly to the audio engine on Android for example?

thanks much in advance

A: 

It depends on what API you are using to play sound, but most require linear PCM and you have µ-law PCM, so unless your API supports µ-law playback you will need to convert the µ-law sample values to linear.

With G.711 the compressed µ-law samples are 8 bits and these will be converted to 14 bit linear values which you will store in a buffer as 2 bytes per sample. There is a brief description of the µ-law encoding on the G.711 Wikipedia page.

Paul R