Reputation: 5994
I'm building some kind of scan algorithm for audio files. I am using multiple threads that are processing their assigned segments of the file. The performance is quite good, but if I compare it with the Microsoft Media Foundation Transcode APIs it is still much slower. So I've removed the processing of audio frames so it is only the IO-access left. But it is still much slower than MediaFoundation. So I was wondering how it is possible that just reading out the whole file using a FileStream is slower than processing the whole file using MediaFoundation. I've a had a look at the processing using the API Monitor but the result is quite strange:
I can't see any file system access in the API Monitor(I've turned on all Data Access APIs in the monitor):
So are there any faster APIs, a developer can't use? What am I missing?
Upvotes: 0
Views: 78
Reputation: 583
I would like to point your attention on Multimedia Class Scheduler Service (MMCSS) of Windows - MMCSS. MediaFoundation is media framework which is optimized for processing of media content. As a result it could process reading - writing with the specific optimized mode. MMCSS has the next names - modes: Audio, Capture, Distribution, Games, Playback, Pro Audio, Window Manager
MediaFoundation creates WorkQueue via MFAllocateWorkQueue and executes task via MFBeginRegisterWorkQueueWithMMCSS
Upvotes: 0