MFCreateMediaBufferFromMediaType 函数 (mfapi.h)
分配最适合指定媒体类型的系统内存缓冲区。
语法
HRESULT MFCreateMediaBufferFromMediaType(
[in] IMFMediaType *pMediaType,
[in] LONGLONG llDuration,
[in] DWORD dwMinLength,
[in] DWORD dwMinAlignment,
[out] IMFMediaBuffer **ppBuffer
);
parameters
[in] pMediaType
指向媒体类型的 IMFMediaType 接口的指针。
[in] llDuration
示例持续时间。 音频格式需要此值。
[in] dwMinLength
缓冲区的最小大小(以字节为单位)。 实际缓冲区大小可能更大。 指定零以为媒体类型分配默认缓冲区大小。
[in] dwMinAlignment
缓冲区的最小内存对齐方式。 指定零以使用默认内存对齐方式。
[out] ppBuffer
接收指向 IMFMediaBuffer 接口的指针。 调用方必须释放接口。
返回值
如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
对于视频格式,如果识别格式,函数将创建实现 IMF2DBuffer2 接口的二维缓冲区。 否则会创建线性缓冲区。 若要获取 IMF2DBuffer2 接口,请在 ppBuffer 中返回的指针上调用 QueryInterface。 如果 QueryInterface 方法失败,请使用 IMFMediaBuffer 接口访问缓冲区内存。
对于音频格式,函数分配一个足够大的缓冲区,以包含 llDuration 音频样本或 dwMinLength(以较大者为准)。
此函数始终分配系统内存。 对于 Direct3D 图面,请使用 MFCreateDXGISurfaceBuffer 或 MFCreateDXSurfaceBuffer 函数。
要求
最低受支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | mfapi.h |
Library | Mfplat.lib |
DLL | Mfplat.dll |