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 图面,请使用 MFCreateDXGISurfaceBufferMFCreateDXSurfaceBuffer 函数。

要求

   
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 mfapi.h
Library Mfplat.lib
DLL Mfplat.dll

另请参阅

媒体基础函数