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.]
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) |