Metodo ICaptureGraphBuilder::RenderStream (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Nota L'interfaccia ICaptureGraphBuilder è deprecata. Usare invece ICaptureGraphBuilder2 .
 
Connette il pin di un filtro di origine, di una categoria specificata facoltativamente, al filtro di rendering e, facoltativamente, tramite un altro filtro.

Sintassi

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

Parametri

[in] pCategory

Puntatore a un GUID che specifica il pin di output del filtro di origine da connettere. Per un elenco di tutte le categorie di pin, vedere Pin Property Set .See Pin Property Set for a list of all pin categories. NULL indica il rendering dell'unico pin di output, indipendentemente dalla categoria.

[in] pSource

Puntatore a un IBaseFilter o a un'interfaccia IPin che rappresenta il filtro di origine o un pin di output. I filtri di origine sono in genere un filtro di origine file, ad esempio un filtro origine file AVI o un filtro di acquisizione.

[in] pfCompressor

Puntatore a un'interfaccia IBaseFilter che rappresenta il filtro di compressione facoltativo.

[in] pfRenderer

Puntatore a un'interfaccia IBaseFilter che rappresenta il renderer. È possibile usare il parametro ppf (multiplexer) da ICaptureGraphBuilder::SetOutputFileName per specificare questo valore.

Valore restituito

Restituisce VFW_S_NOPREVIEWPIN se il filtro di acquisizione ha un pin di acquisizione ma non un pin di anteprima e si chiama RenderStream con la categoria &PIN_CATEGORY_PREVIEW sul pin di acquisizione. In questo caso, RenderStream eseguirà il rendering del pin di anteprima del filtro Tee intelligente . Per altre informazioni, vedere la sezione Osservazioni.

Commenti

Se si specifica un GUID set di proprietà pin non NULL per pCategory e un filtro di acquisizione per pSource, questo metodo crea un'istanza e connette altri filtri upstream necessari, ad esempio i sintonizzatori TV e le barre incrociate. Esegue quindi il rendering del pin di acquisizione di pSource.

Se pSource è un pin, specificare NULL per pCategory e questo metodo esegue il rendering del flusso da tale pin.

Se il filtro di origine ha un solo pin di output, specificare NULL per pCategory.

I filtri pSource, pfCompressor e pfRenderer specificati come parametri devono essere presenti nel grafico prima di chiamare questo metodo.

Se si sta creando un grafico di acquisizione che usa filtri di acquisizione WDM, questo metodo creerà tutti i filtri upstream necessari, nonché i filtri downstream.

Alcuni filtri di acquisizione che funzionano con il nuovo hardware di acquisizione video WDM VPE (Video Port Extension) includono pin di porta video anziché pin di anteprima destinati all'anteprima. I pin della porta video non si connettono direttamente a un renderer video, ma a un filtro speciale denominato Mixer overlay. L'applicazione non deve preoccuparsi di questo. Tutto quello che devi fare è chiamare RenderStream con PIN_CATEGORY_PREVIEW e il generatore di grafici di acquisizione eseguirà correttamente il rendering del pin DELLA PORTA VIDEO tramite un mixer di sovrapposizione se questo è ciò che è necessario.

Quando si esegue il rendering di un pin di acquisizione o anteprima di un filtro di acquisizione video (usando RenderStream con la categoria PIN_CATEGORY_CAPTURE o PIN_CATEGORY_PREVIEW) e il filtro di acquisizione ha un pin di acquisizione ma non un pin di anteprima, il filtro Tee intelligente verrà usato automaticamente per consentire l'acquisizione e l'anteprima simultanee. Ad esempio, la chiamata RenderStream con la categoria PIN_CATEGORY_CAPTURE connetterà effettivamente un filtro Smart Tee al pin di acquisizione del filtro e quindi eseguirà il rendering del pin di acquisizione dell'tee intelligente. Se quindi RenderStream chiami con la categoria PIN_CATEGORY_PREVIEW sul pin di acquisizione, eseguirà effettivamente il rendering del pin di anteprima del tee intelligente. Se la chiamata RenderStream con PIN_CATEGORY_PREVIEW comporta l'uso del pin di acquisizione e di un filtro Smart Tee, RenderStream restituirà VFW_S_NOPREVIEWPIN per indicare questo valore. Pertanto, se FindInterface non riesce a trovare un'interfaccia di anteprima, potrebbe essere necessario chiamare FindInterface con la categoria PIN_CATEGORY_PREVIEW e con la categoria PIN_CATEGORY_CAPTURE, perché l'interfaccia di anteprima può essere trovata esaminando downstream del pin di acquisizione del filtro di acquisizione.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)

Vedi anche

Codici di errore e di esito positivo

Interfaccia ICaptureGraphBuilder