IMFDeviceTransform::P rocessEvent 方法 (mftransform.h)
ProcessEvent 方法會將事件傳送至此媒體基礎轉換上的輸入數據流, (MFT) 。
語法
HRESULT ProcessEvent(
[in] DWORD dwInputStreamID,
[in] IMFMediaEvent *pEvent
);
參數
[in] dwInputStreamID
Stream識別碼。 若要取得數據流標識符的清單,請呼叫 IMFDeviceTransform::GetStreamIDs。
[in] pEvent
事件物件的 IMFMediaEvent 介面指標。
傳回值
方法會傳回 HRESULT。 可能的值包括但不限於下表中所提供的值。
傳回碼 | 描述 |
---|---|
|
已成功處理事件。 事件將會傳播到數據流中。 |
|
傳遞無效的數據流標識碼。 |
|
表示裝置 MFT 不想要進一步傳播事件。 |
|
函式未實作。 |
備註
MFT 可以處理傳送事件下游,也可以讓 DTM 執行此動作,如傳回值所示:
- E_NOTIMPL: MFT 會忽略所有事件,而 DTM 應該傳送下游的所有事件。 管線收到此傳回值之後
- S_OK: MFT 已檢查此事件,但 DTM 應該傳送事件下游。 在內部,MFT 可能會以某種方式回應事件,或者可能會忽略事件。
- MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: DTM 不應該傳播此事件下游。 MFT 會傳送下游事件,否則 MFT 會取用事件,而不是將它傳送至下游。 如果事件應該在此 MFT 停止,且不會進一步下游移動,則 MFT 應該只取用事件。 但在大部分情況下,事件應該會流向下游。
事件必須以之前和之後的範例串行化。 將事件附加至事件後面的輸出範例。 (管線會先處理事件,然後再處理sample.) 如果 MFT 在對 IMFTransform::P rocessInput 和 IMFTransform::ProcessOutput 的呼叫之間保留一或多個範例,MFT 應該處理所有下游事件,因為在此情況下,管線無法將輸入範例與輸出範例相互關聯。
如果 MFT 沒有保留樣本,而且不需要檢查任何事件,它可以傳回 E_NOTIMPL。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 1703) |
目標平台 | Windows |
標頭 | mftransform.h |