c # directshow обработка нескольких окон

#c# #directshow

#c# #directshow

Вопрос:

У меня проблема с обработкой нескольких видеоокон в directshow. У меня есть приложение на c #, которое захватывает видеопоток с моей веб-камеры и отправляет его через бесконечное дерево контактов в 2 отдельных средства визуализации. Когда я запускаю приложение, каждый из средств визуализации получает свое собственное видеоокно. Теперь, когда я устанавливаю стиль видеоокна, я вижу изменения только в одном из них (похоже, это 2-е окно рендеринга). Второе окно вообще не выполняется. Что я должен сделать, чтобы получить доступ к ним обоим? Существует только один график для построения всего. Есть ли способ ссылаться на videowindow с помощью средства визуализации, а не с помощью графика? Я просматривал веб, но нет ничего, что могло бы указать мне правильное направление.

Комментарии:

1. Длинный выстрел заключается в том, что вы вообще не инициализируете второй рендеринг видео ( частая проблема). Ваш вопрос неполный: сначала вы должны понять свой график и включить соответствующую информацию в вопрос, а также добавить некоторый код.

2. Ну, я инициализирую второй рендерер, и у меня есть vidostream в обоих окнах. Большая часть кода взята из graphedit, так что эта часть должна быть в порядке. Проблема заключается в IVideoWindow. Стиль, потому что я понимаю, что он должен указывать на график, и когда это происходит, только первое из двух видеоокон выполняется заданным мной стилем.

3. Graphedit не создает код, и ваш комментарий предполагает, что вы не понимаете проблему, объясненную linked (слово «частый» выше; в частности, слова «… вам нужно запросить IVideoWindow из соответствующего объекта фильтра …») post. То есть мой первый комментарий выше остается в силе.

4. Grapheditplus действительно создает код 😉 Ty для ответа я посмотрю на ссылку.

5. Роман, ваша ссылка проливает немного света на проблему, и спасибо вам за это. К сожалению, код, представленный там, как заявил автор, не справляется с задачей, и он написан на c , и в моем случае его немного сложно использовать (я пишу это приложение на c #). Я хотел бы знать, как это сделать на C #.