IMFDeviceTransform::P rocessOutput 方法 (mftransform.h)

ProcessOutput方法會從裝置 MFT 輸出資料流程取得已處理的輸出。

語法

HRESULT ProcessOutput(
  [in] DWORD                  dwFlags,
  [in] DWORD                  cOutputBufferCount,
  [in] MFT_OUTPUT_DATA_BUFFER *pOutputSample,
  [in] DWORD                  *pdwStatus
);

參數

[in] dwFlags

_MFT_PROCESS_OUTPUT_FLAGS 列舉中 零個或多個旗標的位 OR。

[in] cOutputBufferCount

pOutputSamples陣列中的元素數目。 此值必須至少為 1。

[in] pOutputSample

呼叫端所配置 之MFT_OUTPUT_DATA_BUFFER 結構的陣列指標。 MFT 會使用此陣列將輸出資料傳回給呼叫端。

[in] pdwStatus

_MFT_PROCESS_OUTPUT_STATUS 列舉接收零個或多個旗標的位 OR。

傳回值

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

傳回碼 描述
S_OK
方法成功。
E_INVALIDARG
傳遞不正確引數。
MF_E_INVALIDREQUEST
裝置 MFT 目前無法支援要求。
MF_E_INVAILIDSTREAMNUMBER
傳遞不正確資料流程識別碼。
MF_E_INVALID_STREAM_STATE
無法進行要求的資料流程轉換。
MF_E_TRANSFORM_TYPE_NOT_SET
尚未設定輸入媒體類型。

備註

在大部分情況下,如果方法成功,媒體基礎轉換 (MFT) 會儲存樣本,並在 IMFSample 指標上保留參考計數。 使用範例完成 MFT 時,它必須釋放它以避免記憶體流失。

在裝置轉換管理員 (DTM) 在所有資料流程上設定有效的媒體類型之後,MFT 應該一律能夠接受更多輸入,並能夠產生更多輸出。

如果 MFT 在輸入資料中遇到非嚴重錯誤,它可以直接卸載資料,並在取得更多輸入資料時嘗試復原。 如果 MFT 卸載任何資料,它應該在下一個輸出範例上設定 MFSampleExtension_Discontinuity 屬性,以通知呼叫端資料流程中有間距。

需求

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

另請參閱

IMFDeviceTransform