Summary
The library implements some of the speech codecs provided with Intel IPP Library samples (G.726, G.728, GSM 06.90 AMR) as DirectShow filters (using DirectX Media Object technology) making it available to a wide range of DirectX 9 compatible applications.
Usage of Intel Integrated performance primitives make the processing performance efficient.
See DirectX GraphEdt utility screenshots below to get an idea about availability of the codecs:
Requirements
The library requires the following software items to be installed in system:
- Microsoft C++ runtime version 7.1, MSVCR71.DLL
- Microsoft DirectX runtime, use most recent version from Microsoft’s website
- Intel IPP Library dynamic load libraries; install IPP trial version from Intel’s website to get ones
Installation and Uninstallation
To install the codecs:
- Download the archive and extract contained AudioCodecs.dll file
- Register the library as COM server, e.g. run from command line “rundll32.exe AudioCodecs.dll,DllRegisterServer” (not case is important)
To uninstall the codecs:
- Unregister the library, e.g. run from command line “rundll32.exe AudioCodecs.dll,DllUnregisterServer“
- Delete the library file AudioCodecs.dll
Implementation
The library is implemented in C++ using Microsoft Visual Studio .NET, using Active Templates Library (ATL) and Windows Templates Library (WTL) version 7.5.
The implementation of the codecs is based on Intel Intergrated Performance Primitives (IPP) Library version 5.0 and accompanying samples.
Download
Speech Codecs Library Demo: AudioCodecs-Demo-1.0.0.226.zip
Hi there,
i am doing almost the same thing right now and i am running in some problems here.
I need to Decode G726 Data in Directshow. So i wrote a DMO that uses the Intel IPP (5.3) in C# with Visual Studion 2005. That worked quite ok, but the calls to the IPP just dont seem to do the right thing.No Errormessage, but only noise in the speaker. Can you give me some advice how you used the IPP g.726 gecoder?
thank you
hannes
forgot my email: h***@l***.de
It was over two years ago and I used IPP 5.1 AFAIR which was quite different in interface from IPP 5.2 and 5.3 released later (hopefully there will be no major changes in coming IPP 6.0). So my speech codecs code does not compile right now with IPP 5.3 installed.
The idea was that IPP implemented codecs use common USC interface implemeted by Intel.
From you description it looks like you are losing some data buffers and receive noise instead of data.
In IMediaObject::ProcessInput I saved a reference to provided buffer and in IMediaObject::ProcessOutput I used the buffer to pass atomic data buffers to IPP and use returned data to fill output buffers.
I suggest that you put a breakpoint on USC_Fxns* Decode function call and check what are you pushing as input and what you are getting as output.
P.S. I edited your post to hide email.
i am trying to make G.722.1 DMO filter according to your example. But the problem is audio capture filter.
The input pin of G.722.1 DMO filter should be 16KHz, 16Bit, mono.
I can not set the audio capture filter output pin to that value.
Mostly audio capture filter in Window doesn’t provide 16KHz, 16Bit audio, does it ?
Your comment is highly appreciated.
Jaisonkim, as far as I remember, DirectShow wold provide ACM conversion filter to convert to/from PCM 16 KHz sample rate if hardware does not support this format. I wold rather say that the problem is in AM_MEDIA_TYPE you enumerate and/or accept on the pins of your filter. Can you re-check everything is OK there?
Hi ,could you please provide me the AudioCodecs-Demo-1.0.0.226.zip?. It seems the download location is not available. Please help
I re-uploaded the files, the links are good.
Hi,
Thanks for the link. Is is possible for you to give me the source code? Do you maintain any licensing policy for this?
Please let me know
Thanks
Sorry, source code is not available. If the binaries are suitable for you, you can use them in your application, including commercial. These codecs are quite old and I don’t keep them up to date, so they are only available “as is”.