我正在寫有兩個輸入和一個輸出(它結合了兩個視頻流爲一體)的自定義MFT。
我的MFT要求在其輸入之前設置媒體類型,然後才能提供輸出類型。
我已經通過連接兩個源節點(它們將來自聚合媒體源的不同流)連接到我的變換節點,然後將EVR連接到我的單個輸出來設置我的拓撲。
當我開始媒體會話時,我看到拓撲在第一個輸入上調用了SetInputType
,並且成功。
但隨後立即嘗試得到一個輸出型:通過調用GetOutputAvailableType
,這是我做回MF_E_TRANSFORM_TYPE_NOT_SET
按照文檔(第一個通過我的MFT,它返回MF_E_TRANSFORM_TYPE_NOT_SET
因爲它無法提供一個呼叫GetOutputCurrentType
,然後說你必須設置輸入類型之前設置輸出類型;我也試圖輸出一些部分媒體類型,但它是一樣的)。
問題出在這之後,拓撲似乎放棄了我的MFT:它從來不會在第二個輸入上調用SetInputType
。
問題
我如何可以強制拓撲處理在輸出之前將所有的輸入類型?