IMFDeviceTransform::GetInputStreamPreferredState 方法 (mftransform.h)

GetInputStreamPreferredState方法會取得裝置 MFT 輸入資料流程的慣用狀態和媒體類型。

語法

HRESULT GetInputStreamPreferredState(
  [in]  DWORD             dwStreamID,
  [out] DeviceStreamState *value,
  [out] IMFMediaType      **ppMediaType
);

參數

[in] dwStreamID

需要擷取其狀態之輸入資料流程的資料流程識別碼。

[out] value

指定指定輸入裝置 MFT 資料流程的目前 DeviceStreamState

[out] ppMediaType

輸入資料流程的慣用媒體類型會透過此參數傳入。

傳回值

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

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

備註

此介面函式有助於查詢需要轉換的裝置 MFT 輸入資料流程慣用狀態和媒體類型。

當輸出資料流程的媒體類型變更需要輸入中的對應變更時,Device MFT 會將 METransformInputStreamStateChanged 張貼至 DTM,以變更相關的輸入資料流程。 DTM 會呼叫 GetInputStreamPreferredState 來擷取裝置 MFT 輸入資料流程的慣用媒體類型和狀態。

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

需求

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

另請參閱

IMFDeviceTransform