DirectShow - передача параметров в пользовательский push-фильтр источника - PullRequest
4 голосов
/ 27 января 2010

Я работаю над решением, которое будет использоваться для получения видеопотока с удаленных хостов и размещения различных текстов поверх него. В настоящее время он состоит из специального push-фильтра DirectShow (C ++), который получает данные от удаленных хостов по протоколу RTP, и крошечного приложения C #, которое устанавливает граф DirectShow и используется в качестве контейнера для видео. Я использую библиотеку взаимодействия DirectShowLib. Однако я не уверен, как передать параметры из этого приложения C # в мой пользовательский фильтр. Каковы возможные способы сделать это?

Ответы [ 2 ]

3 голосов
/ 27 января 2010

самый простой способ - зарегистрировать свой собственный протокол (создайте ключ myproto в HKCR, а затем создайте значение «Source Filter», содержащее ваш clsid под ним). Затем вы можете отобразить «myproto: //ip=192.168.0.1&port=12&param1=x», и они будут переданы в ваш метод IFileSourceFilter :: Load.

G

2 голосов
/ 24 марта 2010

Создание ключа:

HKEY_CLASS_ROOT

  • myproto
    • "Фильтр источника" = "187463A0-5BB7-11D3-ACBE-0080C75E246E"

недостаточно в Windows 7. С этим связаны две проблемы:

  • вам нужно заключить CLSID в фигурные скобки
  • вам нужно добавить «Протокол URL»

Правильная версия выглядит так:

HKEY_CLASS_ROOT

  • myproto
    • "Исходный фильтр" = "{187463A0-5BB7-11D3-ACBE-0080C75E246E}"
    • "Протокол URL" = ""

Кроме того, вы можете проверить HKEY_CLASS_ROOT-> MMS для справки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...