IMFTransform::SetOutputType 方法 (mftransform.h)
設定、測試或清除此媒體基礎上輸出數據流的媒體類型, (MFT) 。
語法
HRESULT SetOutputType(
[in] DWORD dwOutputStreamID,
[in] IMFMediaType *pType,
[in] DWORD dwFlags
);
參數
[in] dwOutputStreamID
輸出數據流識別碼。 若要取得數據流標識碼的清單,請呼叫 IMFTransform::GetStreamIDs。
[in] pType
IMFMediaType 介面的指標,或 NULL。
[in] dwFlags
_MFT_SET_TYPE_FLAGS 列舉中的 零個或多個旗標。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
轉換無法使用建議的媒體類型。 |
|
無效的數據流標識碼。 |
|
建議的類型無效。 此錯誤碼表示媒體類型本身未正確設定;例如,它可能包含相互衝突的旗標。 |
|
MFT 無法在處理數據時切換類型。 請嘗試清空或排清 MFT。 |
|
您必須先設定輸入類型,才能設定輸出類型。 |
|
MFT 找不到適當的 DirectX 影片加速 (DXVA) 組態。 |
備註
這個方法可用來設定、測試而不設定,或清除媒體類型:
- 若要設定媒體類型,請將 dwFlags 設定為零,並將 pType 設定為指定媒體類型的非 NULL 指標。
- 若要在不設定媒體類型的情況下測試媒體類型,請將 dwFlags 設定為 MFT_SET_TYPE_TEST_ONLY ,並將 pType 設定為指定媒體類型的非 NULL 指標。 如果可接受媒體類型,方法會傳回 S_OK。 否則,它會傳回 MF_E_INVALIDMEDIATYPE。 不論傳回值為何,目前的媒體類型都不會變更。
- 若要清除媒體類型,請將 pType 設定為 NULL。
在設定輸出類型之前,MFT 可能需要呼叫端設定一或多個輸入類型。 如果是,方法會傳回 MF_E_TRANSFORM_TYPE_NOT_SET。
如果 MFT 支援 DirectX 影片加速 (DXVA) 但找不到適當的 DXVA 組態 (例如,如果圖形驅動程式沒有正確的功能) ,則方法應該會傳回 MF_E_UNSUPPORTED_D3D_TYPE。 如需詳細資訊,請參閱 在媒體基礎中支援 DXVA 2.0。
如果在包含 mftransform.h 之前定義 MFT_UNIQUE_METHOD_NAMES ,這個方法會重新命名 為 MFTSetOutputType。 請參閱 建立混合式 DMO/MFT 物件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mftransform.h |
程式庫 | Mfuuid.lib |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應