- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've been reviewing the IPP's AAC implementation, and I have a few questions. My goal is to implement a directshow decoder filter using the IPP.
- Which version of the AAC library should I be using? I see both floating point and integer versions of the library, but I'm not clear on the pros/cons of going with either. I'm leaning towards the floating point simply because it seems more full-featured.
- I see that the AAC decoder is part of some larger media framework called UMC. I am really not interested in this larger framework, since I already have a framework I'm attempting to integrate with (DirectShow). So, this leads to several other questions:
- How do I use just the AAC decoder?
- What #includes do I need, and what do I need to link against, to use just the AAC decoder?
- How do I create instances of samples to pass to the decoder? (I see there's a sample class implemented as in/out parameters to the library)
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
You can also use AAC decoding function directly from IPP library (without using UMC sample code). IPP library has got set of functions is sufficient to implement a portable optimized MPEG-4 AAC Main profile decoder and a portable optimized MPEG-1, 2 Layer III encoder (see [ISO/IEC 11172-3] and [ISO13818]).
Regarding header file and linkage library for IPP AAC functions, refer to IPP user manual - http://software.intel.com/sites/products/documentation/hpc/ipp/pdf/userguide_win_ia32.pdf
This manual has got information about header file required to add for using audio coding functions.
Regards,
Naveen Gv
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Naveen,
Thanks, I understand how to link against the IPP - the documentation is quite clear on that. My question is: how do I link against UMC? There is (to the best of my knowledge) no clear documentation on this.
Are there no other options to use a standalone AAC decoder besides using the entire UMC? Is there any example of instantiating a standalone encoder/decoder and feeding it samples?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Okay, I figured it out. For reference, the ipp-sample documentation on the AACDecoder is most helpful. And starting with the samples provided (i.e. "The only substantive help is audio-video-codecs\application\simple_player\src\simple_player.cpp and audio-video-codecs\pipeline\umc_pipeline\src\avsync.cpp. In the latter you will find proper use of AACDecoder and DualThreadedCodec."--this is a complete waste of time if you're only interested in the AACDecoder) is the absolute worst place you could direct someone.
The most difficult part for me was figuring out how to use the UMC::AudioData classes. It's not clear what the difference is between Allocate and SetBufferPointer/SetDataSize, or how one uses those with raw samples; the documentation could be vastly clarified. Also, the IPP sample for AACDecoder that uses the MP4 Splitter is a pointless/worthless example for someone trying to use just the AACDecoder. That sample code should be reworked, and/or sample code that works with raw input/raw output shold be included (would have saved me about eight hours).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Thanks for sharing the experience. It is very helpful for those who want to use AAC Decoder decoder directly.
Thanks,
Chao
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page