I need a project developed in Visual C++ 6 that, given a video file supported by DirectShow (AVI, MPEG, MP4, WMV, etc.), can extract the contained audio stream, or a given range in milliseconds of the audio stream, into a memory buffer in PCM or WMA format (no resampling needed actually).
Mandatory conditions:
- the source code should be embedded within a C++ class named CDSAudioGrabber.
- the grabbing operation must be as fast as possible and should allow knowing the grabbing advancement state through a callback which would receive the percentage of advancement.
- the code must not make use of external DLLs or third party source code (open source, GPLed, etc.)
- final source code must contain comments, at least on the most difficult steps and, if possible, should make use of the Hungarian notation.
- the source code must perform strong error checking in order to avoid deadlocks, use of null pointers, buffer overflow,etc. and to allow reporting error conditions on return values (for example if a video file is not supported or there is a low memory condition, etc.)
## Deliverables
1) Complete and fully-functional C++ (MFC would be fine) application for testing purposes that will wrap the CDSAudioGrabber class source code: the application must be able to open a video file and perform the grabbing in a memory buffer of a given range of the audio stream in both PCM and WMA format.
2) Complete source code of all work done
3) Deliverables must be in ready-to-run condition for desktop software or software the buyer intends to distribute.
4) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows 2000 and higher