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.