Microsoft Media Foundation官方文档翻译(4)《Media Foundation Headers and Libraries》
官方英文文档链接:https://docs.microsoft.com/en-us/windows/desktop/medfound/media-foundation-headers-and-libraries
基于05/31/2018
此篇列出了 Media Foundation 使用的头文件和库。
如果寻找一些特殊的 API ,查阅 Media Foundation Programming Reference.
Headers
- codecapi.h
- d3d11.h
- d3d9.h
- d3d9caps.h
- d3d9types.h
- dxva.h
- dxva2api.h
- dxvahd.h
- evr.h
- evr9.h
- mfapi.h
- mfcaptureengine.h
- mferrors.h
- mfidl.h
- mfmediacapture.h
- mfmediaengine.h
- mfmp2dlna.h
- mfobjects.h
- mfplat.lib
- mfplay.h
- mfreadwrite.h
- mftransform.h
- opmapi.h
- wmcodecdsp.h (注意包含此文件时编译可能会出现链接错误,解决方法是加 wmcodecdspuuid.lib)
- wmcontainer.h
Libraries
- dxva2.lib
- evr.lib
- mf.lib
- mfplat.lib
- mfplay.lib
- mfreadwrite.lib
- mfuuid.lib
- wmcodecdspuuid.lib (这个官方文档里没说,但包含 wmcodecdsp.h 使用 CLSID 时必须加)
Library Changes in Windows 7
从 Windows 7 开始,一些基础函数包含在了不同的DLL文件里。
影响包括以下lib文件:
- evr.lib
- mf.lib
- mfplat.lib
只要用到了这些函数,就必须根据不同的 SDK 版本和 target platform 链接不同的lib文件。
SDK Version | Libraries |
---|---|
Windows SDK for Windows Vista Windows SDK for Windows Server 2008 |
evr.lib mf.lib mfplat.lib |
Windows SDK for Windows 7 | 如果 target platform 是 Windows Vista or Windows Server 2008, 链接以下库文件:
|
Additional Info on Helper Functions
Windows 8 的 MFPlat.dll 是 Windows 系统中的一个组件,其中包含了许多功能。
MFPlat 实现了用于低级内存分配、操作调度 fifo 和 win32 文件访问抽象的帮助器功能。具体说:实现了以下功能:
- 申请和初始化 memory buffers (known as ‘samples’),并方便地管理他们的生命周期
- memory buffer 数据的高效复制
- 分配和初始化 FIFO 操作 (known as ‘events’)
- 实现了一个简单的 clock object
- 实现了对 win32 文件的封装
- 申请和初始化 CPU 和 GPU memory buffers
如果 MFStartup 方法调用成功,提供了以下 work queue 功能:
- 内部支持的 I/O items (as used by the win32 file wrapper and socket libraries)
- 提供一系列支持线程优先级的多线程工作队列
- 支持 work items, timer items, and wait items through the work queues
MFPlat 提供了用于查找和创建在系统上注册的媒体转换和媒体源以及创建和操作媒体类型的帮助器功能, 尽管 MFPlat 本身无法创建实际的媒体, 也无法播放它。