I downloaded Intel IPP and now I'm trying to use it for decoding ADPCM32.
As I understood from the manual, the way I should do it is the following:
1. Invoke ippStaticInit() at the start of my program.
2. Invoke ippsDecodeGetStateSize_G726_8u16s (&decSize), where decSize is an unsigned integer.
3. Allocate [decSize] bytes of memory for storing the decoder state, in the following way: m_pDecMem = (IppsDecoderState_G726_16s*)malloc(decSize); where pDecMem is a variable of type IppsDecoderState_G726_16s*
4. Invoke ippsDecodeInit_G726_8u16s(m_pDecMem, IPP_SPCHBR_32000, IPP_PCM_LINEAR) to init the G726 decoder.
5. Every time I should decode an ADPCM32 buffer, I should invoke the following command: ippsDecode_G726_8u16s(m_pDecMem, audio, (Ipp16s *)linearBuffer, numOfBytes); Where audio is the ADPCM32 encoded buffer, linearBuffer is the decoded audio (in pcm linear format) and numOfBytes is the size of the audio in ADPCM32 format.
But when I play the decoded audio, all I get is noise, although I have another ADPCM32 decoder that succeeds to decode the same buffers (although with bad quality).
did you notice that thereis IPP sample package, where you can get many samples on how to use IPP functions and how to build with IPP different media codecs, including (but not limited to) H.264, JPEG2000 and G.726?