2009-09-03 3 views
0

Я довольно новичок в DirectShow и на самом деле просто чувствую свой путь на данный момент. Я хочу разместить окно рендеринга directshow графика directshow в приложении WPF, и в настоящее время я использую класс HwndHost, чтобы попытаться достичь этого. Что мне нужно, но для HwndHost это дескриптор окна, которое отображает видео. Я нашел пример, который показывает получение дескриптора путем перечисления контактов интерфейса IVideoWindow и запросов для IOverlay, поэтому метод GetWindowHandle может использоваться для получения дескриптора.Является интерфейсом IOverlay в DirectShow.Net

Проблема в IOverlay, похоже, не доступна в DirectShow.Net. Чтение страницы DirectShow.Net About, IOverlay приведено в таблице с заголовком «Эти интерфейсы находятся в исходном коде, но являются устаревшими, недокументированными, предназначенными для Ole Automation или иначе не подлежащими тестированию, что означает, что они не являются и не будут испытано ".

Так что же мне делать, чтобы получить доступ к этому определению? Это исключено из сборки, которая распространяется как библиотека, и поэтому я должен сам построить библиотеку из исходного кода?

ИЛИ Есть ли лучший способ делать то, что я пытаюсь сделать? Anyhelp оценили бы, как будто я сказал, что я новичок во всем этом.

Заранее спасибо.

EDIT: Не так много разработчиков DirectShow там? Или это глупый вопрос, безусловно, открытый для любых советов, которые могут иметь ...

ответ

2

Обычный способ сделать это, чтобы повторно открыть окно видео с помощью IVideoWindow :: put_Owner, чтобы сделать его дочерним по отношению к вашему собственному окну. Вы также захотите установить свойства AutoShow (false), Visible, Width и Height и изменить свойство WindowStyle, чтобы сделать его дочерним окном.

Интерфейс IOverlay был реализован в первой версии DirectShow (1996) для поддержки некоторых аппаратных декодеров, которые уже давно не функционируют. Я не думаю, что нынешние видеоресиверы поддержат его.

Ручка окна была затруднена, потому что плохое программирование приложений вызвало частые взаимоблокировки в видео для Windows, и разработчики почувствовали, что между потоками DirectShow и окнами, которыми они владеют, и любыми приложениями, требуется четкое разделение.

G

+0

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

Смежные вопросы