MFCreateMediaBufferWrapper 函数 (mfapi.h)

创建包装现有媒体缓冲区的媒体缓冲区。 新媒体缓冲区指向与原始媒体缓冲区相同的内存,或指向与内存开头的偏移量。

语法

HRESULT MFCreateMediaBufferWrapper(
  [in]  IMFMediaBuffer *pBuffer,
  [in]  DWORD          cbOffset,
  [in]  DWORD          dwLength,
  [out] IMFMediaBuffer **ppBuffer
);

参数

[in] pBuffer

指向原始媒体缓冲区的 IMFMediaBuffer 接口的指针。

[in] cbOffset

新缓冲区的开头,作为与原始缓冲区开头的偏移量(以字节为单位)。

[in] dwLength

新缓冲区的大小。 cbOffset + dwLength 的值必须小于或等于原始缓冲区中有效数据的大小。 (IMFMediaBuffer::GetCurrentLength 方法返回有效数据的大小。)

[out] ppBuffer

接收指向 IMFMediaBuffer 接口的 指针。 调用方必须释放接口。

返回值

函数返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
函数成功。
E_INVALIDARG
请求的偏移量或请求的长度无效。

注解

包装器缓冲区的最大大小限制为原始缓冲区中有效数据的大小。 这可能小于原始缓冲区的分配大小。 若要设置有效数据的大小,请调用 IMFMediaBuffer::SetCurrentLength

如果安装了 Windows Media Format 11 SDK 可再发行组件,则此函数在以下平台上可用:

  • Windows XP with Service Pack 2 (SP2) 及更高版本。
  • Windows XP Media Center Edition 2005 KB900325 (windows XP Media Center Edition 2005) 和KB925766 (2006 年 10 月 Windows XP Media Center Edition 更新汇总) 安装。

要求

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

另请参阅

媒体缓冲区

媒体基础函数