DirectShow Graph с фильтром преобразования, обеспечивающим как предварительный просмотр, так и захват - PullRequest
0 голосов
/ 02 октября 2018

У меня есть фильтр преобразования (один входной контакт, один выходной контакт), который фактически является фильтром наложения для добавления текста в видеопоток.

Существует график фильтра, работающий с устройства захвата, предварительный просмотрдля рендеринга экрана (vmr9) и захвата на GMFBridge, который отправляет дальше на устройство записи файлов.Существуют промежуточные преобразователи и компрессоры, но для упрощения, скажем, это та часть графика, о которой мне хотелось бы получить несколько советов.

[Source Filter] -> [?Smart Tee?] -> capture graph
                                 -> preview graph

Смарт-тройник может присутствовать или не присутствовать на основедоступные контакты на устройстве захвата, но, так или иначе, всегда есть вывод предварительного просмотра и вывод захвата на источнике или Smart Tee непосредственно после него.

Я хотел бы добавить один экземплярФильтр преобразования, так что его эффекты очевидны как при захвате, так и при предварительном просмотре.

Очевидно, первое, что приходит в голову:

[Source Filter] -> [Transform] -> [Smart Tee] -> capture graph
                                              -> preview graph

Я, однако, прочитал, что не должен получатьЯ вообще не знаю, что происходит между источником и Smart Tee, и есть ли какая-то веская техническая причина для этого, или просто потому, что он не будет хорошо работать с интеллектуальным соединением, но может быть обойденвручную построив график.

Однако, если я не буду использовать Smart Tee для своих собственных целей,Неужели работа с бесконечным контактом, только подключение к одному контакту на устройстве захвата?Может быть:

    [Source Filter] -> [Transform] -> [Inf Tee] -> capture graph
   Ignore preview pin                           -> preview graph

Буду благодарен за любой ввод.

----------------------- Добавлены дополнительныеподробнее ---------------------------

(Наиболее вероятный) текущий график будет выглядеть следующим образом.Обратите внимание, что фильтр Sink Bridge ведет к следующему сегменту захвата, который может содержать компрессор и запись в файл.В зависимости от подключенного устройства может быть больше или меньше преобразователей цвета.Фильтром наложения является RGB24.

enter image description here

Сейчас я пытаюсь добиться того, чтобы переместить фильтр наложения перед разделением между предварительным просмотром Capture, чтобы егопреобразование видно как в захваченном файле, так и в предварительном просмотре.

...