Comparison Between Media Foundation and DirectShow
We have entered the era of HD Digital Media. In the future, Digital HD will be everywhere. However, he needs robust protection, which is not available on the current digital media platform. Media fundation exists for this purpose.
Let's take a look at the high-definition numbers. This platform needs to be flexible and easy to recover from small failures. A large number of different quality video and audio. Media foundations must be considered for this purpose. For example, supports the next generation of HD technology:
1: DirectX video acceleration (dxva) 2.0 provides more efficient video acceleration than dxva1.0, more stable, the latest video decoding capabilities, and extended hardware video acceleration. In dxva2.0, Windows can directly process Some HD content and easily recover errors.
2: Color-space can be stored throughout the video processing process, so there is no conversion loss in the middle, and users can enjoy high-fidelity image quality. This can also reduce CPU and other consumption.
3: the enhanced video Renderer (enchanced video render EVR) enhances video processing and clock.
Let's take a look at file protection. After a user buys a movie, he can upload the movie to one of his devices (some devices can be recorded directly during playback ), there will be multiple protection modes in this process. After purchase, protection will be used, protection against recording during playback, and replication protection. If a protection is not completed correctly, it will make the whole set of protection meaningless. Therefore, a seamless platform is required to collaborate with each other. Media Foundation exists for this purpose.
Finally, let's take a look at DirectShow. directShow APIs are indeed very common and omnipotent for these Digital HD media applications. However, DirectShow, as an old technology for more than 10 years, is no longer powerful. For example:
1: The process is static, so it is very difficult to implement dynamic graph and Major format change.
2: The thread model of DirectShow filter is very complex. It is too difficult to fully understand and never make mistakes.
3: DirectShow filter can only be used for DirectShow.
4: DirectShow does not support file protection.
As a successor to DirectShow, Media Foundation has appeared and will not immediately replace DirectShow. As a first step, it will show its influence on Vista.
However, until now, the Media Foundation has only been able to implement protection for the media (proteced media process) and has not yet made enough extensions and replacements for DirectShow.
Appendix: feature comparisons
The following table compares the features of Media Foundation with those of DirectShow.
Feature Group |
Feature |
Media Foundation |
DirectShow |
Basic functionality |
Audio and video Rendering |
Yes |
Yes |
|
Event Notification |
Yes |
Yes |
|
Device Enumeration |
No |
Yes |
|
Component Enumeration |
Yes |
Yes |
|
Synchronization to reference clock |
Yes |
Yes |
|
Seeking |
Yes |
Yes |
|
Improved stress resilience |
Yes |
No |
Content Protection |
Component Validation |
Yes |
No |
|
Content Protection policy negotiation |
Yes |
No |
|
Interoperability Between content protection technologies |
Yes |
No |
|
Protection against kernel-mode and user-mode threats |
Yes |
No |
|
Component revocation and Renewal |
Yes |
No |
|
Video output Protection Management |
Yes |
Yes |
Media tasks |
Audio capture |
No |
Yes |
|
Video Capture |
No |
Yes |
|
Video Editing |
No |
Yes |
|
DVD playback and navigation |
No |
Yes |
|
MPEG-2 support |
No |
Yes |
|
ASF support |
No |
Yes |
|
TV technologies |
No |
Yes |
|
Stream Buffer Engine |
No |
Yes |
|
Encoder API |
No |
Yes |
Video Renderer |
Substream mixing using per-pixel or planar alpha blending |
Yes |
Yes |
|
Customizable video Composition |
No |
Yes |
|
Support for custom presenters |
Yes |
Yes |
|
Windowless Rendering |
Yes |
Yes |
|
Multimonitor support |
Yes |
Yes |
|
Dxva |
Yes |
Yes |
|
DirectDraw exclusive mode |
Yes |
Yes |
|
Backward compatibility with existing applications |
Yes |
Yes |
|
Accurate frame stepping |
Yes |
Yes |
|
Alpha blending of image data |
Yes |
Yes |
|
Glitch resilience |
Yes |
No |
|
Enhanced video fidelity |
Yes |
No |
|
Enhanced Content Protection robustness |
Yes |
No |
|
Standalone use |
Yes |
No |
|
Standalone mixing component |
Yes |
No |
Transforms (MFT or DMO) |
Synchronous Data Processing |
Yes |
Yes |
|
Simple programming model |
Yes |
Yes |
|
Standalone use |
Yes |
Yes |
|
Multiple inputs and multiple outputs |
Yes |
Yes |
|
Dynamic Number of streams |
Yes |
No |
|
Access to sample-level metadata |
Yes |
No |
|
In-Place Processing |
Yes |
Yes |
|
Dynamic format changes |
Yes |
No |
|
Quality Adjustment |
Yes |
No |
|
Rate Change |
Yes |
No |
The following table compares the features of Media Foundation with those of the Windows Media Format SDK.
Feature Group |
Feature |
Media Foundation |
Format SDK |
ASF file features |
Audio and Video Streams |
Yes |
Yes |
|
Image streams |
No |
Yes |
|
Arbitrary streams (text, file, web, custom data) |
No |
Yes |
|
Script Commands |
No |
Yes |
|
Data Unit extensions |
Yes |
Yes |
|
SMPTE Time Code support |
No |
Yes |
|
Mutual Exclusion |
Yes |
Yes |
|
Stream prioritization |
Yes |
Yes |
|
Bandwidth sharing |
No |
Yes |
|
Indexes |
Yes |
Yes |
|
Markers |
Yes |
Yes |
|
Multiple bit rate stream |
Yes |
Yes |
|
Multiple Language Support |
Yes |
Yes |
Codec features |
CBR Encoding |
Yes |
Yes |
|
VBR Encoding |
Yes |
Yes |
|
Two-pass encoding |
Yes |
Yes |
|
High-resolution audio support |
Yes |
Yes |
|
Low Delay audio |
Yes |
Yes |
|
S/pdif audio output |
Yes |
Yes |
|
Video Image |
Yes |
Yes |
|
Device conformance Template |
Yes |
Yes |
|
Video complexity settings |
Yes |
Yes |
|
Frame interpolation |
Yes |
Yes |
|
DirectX video Acceleration |
Yes |
Yes |
File writing |
Video resizing |
Yes |
Yes |
|
Color Space Conversion |
Yes |
Yes |
|
Audio resampling |
Yes |
Yes |
|
ASF file sink |
Yes |
Yes |
|
Network sinks |
No |
Yes |
|
Push sinks |
No |
Yes |
|
Watermarking support |
No |
Yes |
|
Input formats, input settings, and data unit extensions |
Yes |
Yes |
|
WMA smart Recompression |
No |
Yes |
|
Multichannel audio |
Yes |
Yes |
File Reading |
User-allocated sample support |
No |
Yes |
|
Synchronous reading |
No |
Yes |
|
Output Format Enumeration |
Yes |
Yes |
|
Multichannel audio |
Yes |
Yes |
|
MP3 support |
Yes |
Yes |
|
Network Sources |
Yes |
Yes |
Metadata |
ID3 support |
No |
Yes |
|
Custom metadata |
Yes |
Yes |
Digital Rights Management |
Live DRM |
No |
Yes |
|
DRM Individualization |
Yes |
Yes |
|
Back up and restore DRM licenses |
Yes |
Yes |
|
View DRM attributes in the metadata Editor |
Yes |
Yes |
|
Output protection levels |
Yes |
Yes |
|
License revocation |
Yes |
Yes |
|
Windows Media DRM for network devices |
Yes |
Yes |
|
Secure audio path |
No |
Yes |
|
Playlist burning |
Yes |
Yes |
|
Third-party trantrans support |
Yes |
No |
|
Local License Issuance |
Yes |
No |
|
Enhanced Windows Media DRM renewability |
Yes |
No |
This article from http://www.cnitblog.com/vcommon/archive/2007/04/29/26384.html