I have several media files that will are available for download via link provided and I need a software component that will be able to:
- extract audio data from it
- perform certain operations on audio data
- return result of that operation in memory buffer - since I am using c# I guess that it will be byte[]
More to follow...
## Deliverables
I have following media files that need to be scanned:
- WMA
- WMV
- MP3
- AAC (aacplus captured from internet via streaming)
Now, I need the component that will perform some calculation on a decoded audio data from that files.
I guess that best approach to do this is via DirectShow that will construct the graph to render the file, and then use SampleGrabber to get audio data from the graph and do the calculation upon it.
C#/ .NET 2.0 should be used.
Operation on audio data is defined as follows:
File is chunked in 40ms intervals. Each interval is processed in one of the following ways (that should be selectable outside of the component):
- max level should be taken and scaled down to BYTE interval
- LOG(max_level) should be taken and scaled down to BYTE interval
- average should be taken and scaled down to BYTE interval
- LOG (average) should be taken and scaled down to BYTE interval
Algorithm for processing audio samples should be clearly visible so new ones could be added at will.
Component should have interface similar to this:
class AudioIndexer {
void SetAlgorithm(AlgType Alg);
}
You should have some experience here, and know that there are signed and unsigned samples, and so on.
If DirectShow is used, it should be it's managed version:
[login to view URL]
For MP3, AACplus, ... proper codecs should be identified and proposed, to be included with the installation of the component.
Coder should be SUBVERSION COMPATIBLE! Please, for easy code maintenance and collaboration, it's imperative we don't send ZIP files back and forth - we will post them to RAC for logging, of course.
And yes, component shouldn't play audio file at all. It should run at maximum speed, and not use any DirectShow clock that would slow it to media file real-time speed.
Sample media files are available at:
[login to view URL]