Compartilhar via


Método ICaptureGraphBuilder::RenderStream (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Nota A interface ICaptureGraphBuilder foi preterida. Em vez disso, use ICaptureGraphBuilder2 .
 
Conecta o pino de um filtro de origem, de uma categoria opcionalmente especificada, ao filtro de renderização e, opcionalmente, por meio de outro filtro.

Sintaxe

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

Parâmetros

[in] pCategory

Ponteiro para um GUID que especifica qual pino de saída do filtro de origem deve ser conectado. Consulte Fixar Conjunto de Propriedades para obter uma lista de todas as categorias de pino. NULL indica renderizar o único pino de saída, independentemente da categoria.

[in] pSource

Ponteiro para um IBaseFilter ou uma interface IPin que representa o filtro de origem ou um pino de saída. Os filtros de origem normalmente são um filtro de origem de arquivo, como um filtro de origem de arquivo AVI ou um filtro de captura.

[in] pfCompressor

Ponteiro para uma interface IBaseFilter que representa o filtro de compactação opcional.

[in] pfRenderer

Ponteiro para uma interface IBaseFilter que representa o renderizador. Você pode usar o parâmetro ppf (multiplexer) de ICaptureGraphBuilder::SetOutputFileName para fornecer esse valor.

Retornar valor

Retorna VFW_S_NOPREVIEWPIN se o filtro de captura tiver um pino de captura, mas nenhum pino de visualização e você chamar RenderStream com a categoria &PIN_CATEGORY_PREVIEW no pino de captura. Nesse caso, RenderStream renderizará o pino de visualização do filtro Smart Tee . Para obter mais informações, consulte Comentários.

Comentários

Se você especificar um GUID de conjunto de propriedades de pin não NULL para pCategory e um filtro de captura para pSource, esse método criará uma instância e conectará filtros upstream adicionais necessários, como sintonizadores de TV e barras cruzadas. Em seguida, ele renderiza o pino de captura de pSource.

Se pSource for um pin, especifique NULL para pCategory e esse método renderizará o fluxo desse pino.

Se o filtro de origem tiver apenas um pino de saída, especifique NULL para pCategory.

Os filtros pSource, pfCompressor e pfRenderer dados como parâmetros devem estar presentes no grafo antes que esse método seja chamado.

Se você estiver criando um grafo de captura usando filtros de captura do WDM, esse método criará todos os filtros de upstream necessários, bem como os filtros downstream.

Alguns filtros de captura que funcionam com o novo hardware de captura de vídeo WDM VPE (Extensão de Porta de Vídeo) têm pinos de porta de vídeo em vez de pinos de visualização destinados à visualização. Os pinos de porta de vídeo não se conectam diretamente a um renderizador de vídeo, mas sim a um filtro especial chamado Mixer de Sobreposição. Seu aplicativo não precisa se preocupar com isso. Tudo o que você precisa fazer é chamar RenderStream com PIN_CATEGORY_PREVIEW e o construtor de grafo de captura renderizará corretamente o pino DE PORTA DE VÍDEO por meio de um mixer de sobreposição se for necessário.

Quando você renderiza um pino de captura ou visualização de um filtro de captura de vídeo (usando RenderStream com a categoria PIN_CATEGORY_CAPTURE ou PIN_CATEGORY_PREVIEW) e o filtro de captura tem um pino de captura, mas nenhum pino de visualização, o filtro Smart Tee será usado automaticamente para permitir a captura e a visualização simultâneas. Por exemplo, chamar RenderStream com a categoria PIN_CATEGORY_CAPTURE realmente conectará um filtro Smart Tee ao pino de captura do filtro e, em seguida, renderizará o pino de captura do Tee Inteligente. Se você chamar RenderStream com a categoria PIN_CATEGORY_PREVIEW no pino de captura, ele realmente renderizará o pino de visualização do Smart Tee. Se chamar RenderStream com PIN_CATEGORY_PREVIEW resultar no uso do pin de captura e de um filtro Smart Tee, RenderStream retornará VFW_S_NOPREVIEWPIN para indicar isso. Portanto, se FindInterface não encontrar uma interface de visualização, talvez seja necessário chamar FindInterface com a categoria PIN_CATEGORY_PREVIEW e com a categoria PIN_CATEGORY_CAPTURE, pois a interface de visualização pode ser encontrada examinando downstream do pino de captura do filtro de captura.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)

Confira também

Códigos de erro e êxito

ICaptureGraphBuilder Interface