IMFDeviceTransform::SetOutputStreamState 方法 (mftransform.h)

SetOutputStreamState方法會設定裝置 MFT 輸出資料流程狀態和媒體類型。

語法

HRESULT SetOutputStreamState(
  [in] DWORD             dwStreamID,
  [in] IMFMediaType      *pMediaType,
  [in] DeviceStreamState value,
  [in] DWORD             dwFlags
);

參數

[in] dwStreamID

需要變更狀態和媒體類型之輸入資料流程的資料流程識別碼。

[in] pMediaType

輸入資料流程的慣用媒體類型會透過此參數傳入。 只有在傳入媒體類型與目前的媒體類型不同時,裝置 MFT 才應該變更媒體類型。

[in] value

指定輸入資料流程應該轉換至的 DeviceStreamState

[in] dwFlags

必須為零。

傳回值

方法會傳回 HRESULT。 可能的值包括但不限於下表中指定的值。

傳回碼 描述
S_OK
轉換資料流程狀態成功。
MF_E_INVALIDREQUEST
裝置 MFT 目前不支援要求。
MF_E_INVAILIDSTREAMNUMBER
傳遞了不正確資料流程識別碼。
MF_E_INVALID_STREAM_STATE
無法轉換要求的資料流程。

備註

這個介面方法有助於將輸出資料流程轉換成指定狀態,並在輸出資料流程上設定指定的媒體類型。 當裝置來源要求變更特定輸出資料流程的狀態和媒體類型時,DTM 將會使用此專案。 裝置 MFT 應該將指定的輸出資料流程媒體類型和狀態變更為要求的媒體類型。

如果傳入媒體類型和資料流程狀態與目前的媒體類型和資料流程狀態相同,方法會 傳回S_OK

如果資料流程的傳入媒體類型和目前的媒體類型相同,裝置 MFT 必須將資料流程的狀態變更為要求的值,並傳回適當的 HRESULT

當輸出資料流程媒體類型的變更需要輸入中的對應變更時,Device MFT 必須將 METransformInputStreamStateChanged 事件張貼至 DTM,才能變更相關的輸入資料流程。 只有在變更輸入資料流程的媒體類型和適當的 HRESULT之後,才會傳回呼叫。

例如,假設有兩個輸入資料流程和三個輸出資料流程的裝置 MFT。 讓 [輸出 1] 和 [輸出 2] 來源從 Input 1 和 stream at 720p。 現在,讓我們說輸出 2 的媒體類型變更為 1080p。 若要滿足此要求,裝置 MFT 必須將輸入 1 媒體類型變更為 1080p,方法是將 METransformInputStreamStateChanged 事件張貼至 DTM。 DTM 會呼叫 SetInputStreamState 來變更輸入資料流程的媒體類型和狀態。 在此呼叫之後, SetOutputStreamState 必須傳回。

需求

   
最低支援的用戶端 Windows 10 (版本 1703)
目標平台 Windows
標頭 mftransform.h

另請參閱

IMFDeviceTransform