MFCreateMediaBufferFromMediaType 函式 (mfapi.h)
配置最適合指定媒體類型的系統記憶體緩衝區。
語法
HRESULT MFCreateMediaBufferFromMediaType(
[in] IMFMediaType *pMediaType,
[in] LONGLONG llDuration,
[in] DWORD dwMinLength,
[in] DWORD dwMinAlignment,
[out] IMFMediaBuffer **ppBuffer
);
參數
[in] pMediaType
媒體類型 之 IMFMediaType 介面的指標。
[in] llDuration
範例持續時間。 音訊格式需要這個值。
[in] dwMinLength
緩衝區的大小下限,以位元組為單位。 實際的緩衝區大小可能較大。 指定零來配置媒體類型的預設緩衝區大小。
[in] dwMinAlignment
緩衝區的最小記憶體對齊方式。 指定零以使用預設記憶體對齊方式。
[out] ppBuffer
接收 IMFMediaBuffer 介面的指標。 呼叫端必須釋放 介面。
傳回值
如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
如果是視訊格式,如果辨識格式,函式會建立實作 IMF2DBuffer2 介面的 2D 緩衝區。 否則,它會建立線性緩衝區。 若要取得IMF2DBuffer2介面,請在ppBuffer中傳回的指標上呼叫QueryInterface。 如果 QueryInterface 方法失敗,請使用 IMFMediaBuffer 介面來存取緩衝區記憶體。
針對音訊格式,函式會配置足以包含 llDuration 音訊樣本或 dwMinLength的緩衝區,無論大小為何。
此函式一律會配置系統記憶體。 針對 Direct3D 表面,請使用 MFCreateDXGISurfaceBuffer 或 MFCreateDXSurfaceBuffer 函式。
需求
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfapi.h |
程式庫 | Mfplat.lib |
Dll | Mfplat.dll |