Graphedit Smart Connect - странное поведение

Я строю график, используя ICaptureGraphBuilder2 в моем коде DirectShow.

Я добавляю к графику экземпляр моей камеры и средство визуализации VMR9 и пытаюсь интеллектуально подключить его с помощью API RenderStream, используя пин-код захвата и реализованный формат MEDIATYPE_video.

Если я использую ROT для экспорта построенного результирующего графика, я могу видеть фильтр smarttee, фильтр декомпрессора и фильтр преобразователя цветового пространства между моими фильтрами источника и рендеринга.

Но в Graphedit я строю свой собственный граф с тем же исходным кодом и фильтрами рендеринга и пытаюсь интеллектуально соединить его, используя rightclick->renderpin в моем выводе захвата, промежуточные продукты не добавляются.

Почему это странное поведение?

1 ответ

Решение

Это поведение по замыслу, IGraphBuilder::Render против ICaptureGraphBuilder2::RenderStream, MSDN имеет документированные различия:

Смарт Ти. Некоторые фильтры захвата имеют вывод захвата, но не предварительный просмотр. Для предварительного просмотра пин-код должен быть подключен к фильтру Smart Tee. Этот фильтр разделяет данные на два потока: поток захвата и поток предварительного просмотра. Когда вы указываете PIN_CATEGORY_PREVIEW или PIN_CATEGORY_CAPTURE, метод вставляет фильтр Smart Tee, если он необходим. Затем он отображает указанный поток в фильтре Smart Tee. Если вы визуализируете поток предварительного просмотра и метод использует фильтр Smart Tee, он возвращает VFW_S_NOPREVIEWPIN.

Другие вопросы по тегам