Поделиться через


Метод ICaptureGraphBuilder::RenderStream (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Примечание Интерфейс ICaptureGraphBuilder является устаревшим. Вместо этого используйте ICaptureGraphBuilder2 .
 
Подключает контакт исходного фильтра с необязательно указанной категорией к фильтру отрисовки и при необходимости через другой фильтр.

Синтаксис

HRESULT RenderStream(
  [in] const GUID  *pCategory,
  [in] IUnknown    *pSource,
  [in] IBaseFilter *pfCompressor,
  [in] IBaseFilter *pfRenderer
);

Параметры

[in] pCategory

Указатель на GUID, указывающий, к какому выходному контакту исходного фильтра следует подключиться. Список всех категорий закрепления см. в разделе Набор свойств закрепления. ЗНАЧЕНИЕ NULL указывает, что отображается только выходной контакт независимо от категории.

[in] pSource

Указатель на интерфейс IBaseFilter или интерфейс IPin , представляющий фильтр источника или выходной контакт. Фильтры источника обычно являются фильтром источника файлов, например фильтром источника файлов AVI или фильтром записи.

[in] pfCompressor

Указатель на интерфейс IBaseFilter, представляющий необязательный фильтр сжатия.

[in] pfRenderer

Указатель на интерфейс IBaseFilter , представляющий отрисовщик. Для указания этого значения можно использовать параметр ppf (мультиплексор) из ICaptureGraphBuilder::SetOutputFileName .

Возвращаемое значение

Возвращает VFW_S_NOPREVIEWPIN, если фильтр отслеживания имеет закрепление, но не контакт предварительного просмотра, и вызывается RenderStream с &PIN_CATEGORY_PREVIEW категорией в контакте захвата. В этом случае RenderStream будет отображаться контакт предварительного просмотра фильтра Smart Tee . Дополнительные сведения см. в подразделе "Примечания".

Комментарии

Если для pCategory задан guid, отличный от NULL, и фильтр записи для pSource, этот метод создает экземпляры и подключает дополнительные необходимые фильтры вышестоящий, такие как ТВ-тюнеры и перекладины. Затем отрисовывается контакт захвата pSource.

Если pSource является закреплением, укажите значение NULL для параметра pCategory , и этот метод отрисовывает поток из этого контакта.

Если исходный фильтр имеет только один выходной контакт, укажите значение NULL для параметра pCategory.

Фильтры pSource, pfCompressor и pfRenderer, заданные в качестве параметров, должны присутствовать в графе перед вызовом этого метода.

Если вы создаете граф захвата, использующий фильтры записи WDM, этот метод создаст все необходимые вышестоящий фильтры, а также подчиненные фильтры.

Некоторые фильтры захвата, которые работают с новым оборудованием для захвата видео WDM VPE (расширение видеопорта), имеют контакты видеопорта вместо контактов предварительного просмотра, предназначенных для предварительного просмотра. Контакты видеопорта подключаются не напрямую к отрисовщику видео, а к специальному фильтру, который называется Overlay Mixer. Приложению не нужно беспокоиться об этом. Все, что вам нужно сделать, это вызвать RenderStream с помощью PIN_CATEGORY_PREVIEW, и построитель графов захвата правильно отрисует закрепление VIDEO PORT через наложенный микшер, если это необходимо.

Если вы отрисовываете закрепление или предварительный просмотр фильтра видеозахвата (с помощью RenderStream PIN_CATEGORY_CAPTURE или PIN_CATEGORY_PREVIEW категории) и фильтр захвата имеет закрепление, но без предварительного просмотра, фильтр Smart Tee будет автоматически использоваться для одновременного захвата и предварительного просмотра. Например, вызов RenderStream с PIN_CATEGORY_CAPTURE категории фактически подключит фильтр Smart Tee к контакту захвата фильтра, а затем отрисовывает контакт захвата Smart Tee. Если затем вызвать RenderStream с PIN_CATEGORY_PREVIEW категорией на контакте захвата, он фактически отрисовывает контакт предварительного просмотра Smart Tee. Если вызов RenderStream с PIN_CATEGORY_PREVIEW приводит к использованию пин-кода захвата и фильтра Smart Tee, RenderStream возвращает VFW_S_NOPREVIEWPIN, указывающее на это. Таким образом, если FindInterface не удается найти интерфейс предварительной версии, может потребоваться вызвать Метод FindInterface с категорией PIN_CATEGORY_PREVIEW и с категорией PIN_CATEGORY_CAPTURE, так как интерфейс предварительного просмотра можно найти, просмотрев вниз по контакту захвата фильтра отслеживания.

Требования

Требование Значение
Целевая платформа Windows
Header strmif.h (включая Dshow.h)

См. также раздел

Коды ошибок и успешности

Интерфейс ICaptureGraphBuilder