Я использую настраиваемый фильтр источника, чтобы получить поток видео в реальном времени из Интернета, не зная, как он работает. Этот исходный фильтр предлагает два выходных вывода, которые являются аудио/видео отдельно. Когда я просто использую его для захвата livestream в файл avi, вот так: Directshow - IMediaControl :: Run зависает при использовании настраиваемого источника, InfTee и AVI Mux
Это сработало хорошо. Однако, когда я пытаюсь сделать предварительный просмотр в то время как все еще остается отлов, я первый добавил фильтр Infinite Pin Tee между настраиваемым фильтром и AVI Mux, как это:
Тогда граф в GraphEdit просто не может быть запущен (Когда я нажал кнопку «Начать график», он ничего не делает и не дает никакой реакции).
(пс:. Я думал, что это лучше, используя Infinite Tee вместо смарта-Tee здесь, потому что пользовательский фильтр выглядит не фильтр захвата)
Я попытался написать Визуальный-C++ код делая то же самое, просто используя CoCreateInstance, IGraphBuilder :: AddFilter и IGraphBuilder :: Connect. Чтобы узнать, что случилось, и что такое HRESULT. Затем я обнаружил, что программа зависла, когда вызывается IMediaControl :: Run. (Экземпляр IMediaControl был запрошен из экземпляра IGraphBuilder).
Я не знаю, почему это так будет вести себя, и я не знаю, как отлаживать это. Так кто-нибудь дает мне помощь или подсказку?
спасибо. :)
Спасибо за советы! У меня есть исходный код этого настраиваемого фильтра и искал, что делает его блокировкой. Наконец, я понял, что у меня неправильная версия этого фильтра. Затем я перестроил его для того же соединения, и он больше не блокирует, но некоторые другие ошибки произошли. Тем не менее я не знаю, почему произошли эти ошибки, но в любом случае ваша логика правильная. Это мне очень помогло. Спасибо! –