IMFDeviceTransform::GetStreamIDs 方法 (mftransform.h)

GetStreamIDs方法會取得此媒體基礎轉換 (MFT) 之輸入和輸出資料流程的資料流程識別碼。

語法

HRESULT GetStreamIDs(
  [in]  DWORD dwInputIDArraySize,
  [out] DWORD *pdwInputStreamIds,
  [out] DWORD dwOutputIDArraySize,
        DWORD *pdwOutputStreamIds
);

參數

[in] dwInputIDArraySize

pdwInputStreamID中的元素數目

[out] pdwInputStreamIds

呼叫端所配置的陣列指標。 方法會將陣列填入輸入資料流程識別碼。 陣列大小至少必須等於輸入資料流程的數目。 若要取得輸入資料流程的數目,請呼叫 IMFDeviceTransform::GetStreamCount

如果呼叫端傳遞大於輸入資料流程數目的陣列,MFT 不得將值寫入額外的陣列專案。

[out] dwOutputIDArraySize

pdwOutputStreamID 中的元素數目。

pdwOutputStreamIds

呼叫端所配置的陣列指標。 方法會以輸出資料流程識別碼填入陣列。 陣列大小至少必須等於輸出資料流程的數目。 若要取得輸出資料流程的數目,請呼叫 IMFDeviceTransform::GetStreamCount

傳回值

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

傳回碼 描述
S_OK
轉換資料流程狀態成功。
E_POINTER
傳遞的指標無效。
MF_E_BUFFERTOOSMALL
傳入的緩衝區沒有足夠的空間來填入資料流程識別碼。

備註

串流識別碼是必要的,因為某些 MFT 可以新增或移除資料流程,因此資料流程的索引可能不是唯一的。 因此,在資料流程上運作的 IMFDeviceTransform 方法會採用資料流程識別碼。

所有輸入資料流程識別碼都必須在 MFT 內是唯一的,而且所有輸出資料流程識別碼都必須是唯一的。 不過,輸入資料流程和輸出資料流程可以共用相同的識別碼。 I

如果用戶端新增輸入資料流程,則用戶端會指派識別碼,因此 MFT 必須允許任意識別碼,只要它們是唯一的。 如果 MFT 建立輸出資料流程,MFT 會指派識別碼。

根據慣例,如果 MFT 只有一個固定輸入資料流程和一個固定輸出資料流程,它應該將識別碼 0 指派給這兩個數據流。

需求

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

另請參閱

IMFDeviceTransform