Как установить вывод вывода для фильтра FilterDirectShow? - PullRequest
0 голосов
/ 21 октября 2011

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

Я могу перечислить контакты и увидеть их типы носителей, но не знаю, как сказать DirectShow: «Эй, это тот вывод, который я хочу, чтобы вы использовали в качестве выходного вывода».

Ответы [ 3 ]

0 голосов
/ 21 октября 2011

Если вы нашли нужную булавку, вы можете использовать IGraphBuilder::Render для рендеринга только этой булавки:

IPin myOutput = ...;
hr = pGraph.Render(myOutput);

Если у вас также есть средство визуализации (и его входной вывод), вы также можете использовать IGraphBuilder::Connect.

0 голосов
/ 21 октября 2011

Вы можете перечислить выводы «определить тип вывода, который вам нужен, выходной», получить тип и тип носителя для каждого вывода IPin :: EnumMediaTypes, а если тип носителя совпадает с тем, который вам нужен, вы можете установить соединение между выходом и введите контакт с помощью метода подключения. http://msdn.microsoft.com/en-us/library/windows/desktop/dd375620(v=vs.85).aspx http://www.flipcode.com/archives/DirectShow_For_Media_Playback_In_Windows-Part_III_Customizing_Graphs.shtml

0 голосов
/ 21 октября 2011

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

См. Настройка формата вывода видео на MSDN, как использовать IAMStreamConfig::SetFormat для этого.

Чтение бонуса: Типы носителей DirectShow и соединения контактов .

...