ПроблемаMedia Foundation: с множеством входов MFT и топология порядка подключения
Я пишу пользовательский MFT с двумя входами и одним выходом (он объединяет два видеопотока в один).
My MFT требует, чтобы типы носителей устанавливались на его входы до, он может обеспечивать выходной тип.
Я установил свою топологию, соединив два источника (они берут разные потоки из совокупного медиа-источника) в мой узел преобразования, а затем EVR на мой единственный вывод.
Когда я начинаю сеанс мультимедиа, я вижу, что топология вызывает на первом входе SetInputType
, и ему это удается.
Но тогда он сразу же пытается получить тип вывода: во-первых, вызвав GetOutputCurrentType
на моем MFT, который возвращает MF_E_TRANSFORM_TYPE_NOT_SET
как он не в состоянии обеспечить один, а затем по телефону GetOutputAvailableType
, которые я делал вернуться MF_E_TRANSFORM_TYPE_NOT_SET
согласно документации (говорит Вы должны установить типы ввода перед установкой типов вывода; я также попытался вывести некоторые частичные типы носителей, но это то же самое).
И вот в чем проблема: после этого топология, похоже, отказывается от моего MFT: он никогда не вызывает SetInputType
на втором входе.
Вопрос
Как я могу заставить топологию, чтобы установить все типы входных данных, прежде чем дело с выходом?