Filtro mixer sovrimpressione
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee Acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di usare un nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Il filtro Overlay Mixer è un renderer video progettato appositamente per la riproduzione dvd e trasmettere flussi video con sottotitoli line-21. Overlay Mixer supporta anche le estensioni di porta video (VPEs), consentendo di lavorare con decodificatori MPEG-2 hardware o sintonizzatori TV analogici che inviano video direttamente alla scheda grafica, anziché tramite il bus PCI.
Nota
Il Video Mixing Renderer 9 è ora preferibile rispetto al filtro Mixer di sovrimpressione, ad eccezione degli scenari VPE.
Overlay Mixer usa DirectDraw per il rendering. Richiede una superficie di sovrapposizione sulla scheda grafica. Il flusso video principale deve essere connesso al pin 0. I flussi secondari (grafica con sottotitoli o sottopicture DVD) sono connessi ai pin 1 e versioni successive. Overlay Mixer blits the secondary streams directly on the primary suface; non si mescola o alfa si fondono.
Overlay Mixer usa il renderer video per la gestione delle finestre. Il renderer video si connette al pin di output di Overlay Mixer.
Questo filtro viene aggiunto automaticamente al grafico dei filtri quando le applicazioni usano l'IIGraphBuilder e interfacce ICaptureGraphBuilder2 per creare il grafico. Filter Graph Manager non aggiungerà automaticamente il mixer di sovrimpressione al grafico.
Nota
Nella tabella seguente, i sottotipi multimediali accettati sul pin di input 0 dipendono dall'hardware. Overlay Mixer non è in grado di determinare se un particolare sottotipo è supportato fino a quando non crea la superficie DirectDraw. Pertanto, l'unico modo per un filtro upstream per determinare se è supportato un sottotipo è tentare una connessione con tale sottotipo.
Etichetta | Valore |
---|---|
Interfacce di filtro | IAMOverlayFX, IAMVideoDecimationProperties, IBaseFilter, IDDrawExclModeVideo, IKsPropertySet, IMediaPosition, IMediaSeeking, IMixerOCX, IQualProp, IVPNotify, IVPNotify2 |
Tipi di supporti pin di input | Tipo principale: MEDIATYPE_Video Sottotipi:
|
Interfacce del pin di input | IAMVideoAccelerator, IKsPin, IKsPropertySet, IMemInputPin, IMixerPinConfig, IMixer IMixerPinConfig2, IOverlay (solo pin 0), IPin, IPinConnection, IQualityControl, IVPNotify, IVPNotify2 |
Tipi di supporti pin di output | MEDIATYPE_Video, MEDIASUBTYPE_Overlay |
Interfacce pin di output | IMediaPosition, IMediaSeeking, IPin, IQualityControl |
Filtrare CLSID | CLSID_OverlayMixer |
CLSID della pagina delle proprietà | Nessuna pagina delle proprietà. |
Eseguibile | qdvd.dll |
Merit | MERIT_DO_NOT_USE |
categoria filtro | CLSID_LegacyAmFilterCategory |
Osservazioni
Overlay Mixer usa il tasto colore di destinazione per combinare le superfici video con le sovrimpressioni. Blitta la chiave di colore e il video secondario alla superficie primaria e invia il video primario alla superficie di sovrapposizione. La scheda grafica crea quindi la composizione delle due superfici nel buffer dei fotogrammi.
Per verificare se il driver grafico supporta la sovrimpressione hardware, chiamare IDirectDraw7::GetCaps. Se il campo dwMaxVisibleOverlays nella struttura DDCAPS è maggiore di zero, il driver supporta la sovrimpressione hardware.
Le applicazioni possono controllare alcuni comportamenti in Overlay Mixer tramite l'interfaccia IMixerPinConfig2. Gli sviluppatori di giochi possono usare overlay mixer per visualizzare video in modalità esclusiva DirectDraw, come descritto più avanti in questa sezione. Il Video Mixing Renderer Filter 9 (VMR-9) offre ora un supporto migliore per i video nei giochi. Per altre informazioni, vedere Uso del renderer di combinazione video.
Le informazioni seguenti vengono fornite a vantaggio degli sviluppatori di filtri e degli sviluppatori di giochi che vogliono usare overlay mixer in modalità esclusiva DirectDraw.
operazioni interne del mixer di sovrimpressione
Overlay Mixer espone un pin di input per ogni flusso in ingresso. In genere, ci sono tre pin di input: pin 0 per i dati video e pin 1 e 2 per i dati secondari riga 21 e DVD. Internamente, overlay mixer crea un oggetto DirectDraw con una superficie primaria che comprende l'intero desktop, più una superficie di sovrapposizione il cui rettangolo è definito dalle dimensioni del flusso video sul Pin 0. Se il decodificatore non specifica una chiave di colore, overlay mixer usa i tasti di colore predefiniti: grigio scuro per schede grafiche più recenti e magenta per le schede di colore precedenti di 256 colori.
Nota
I risultati non sono definiti se il decodificatore recapita simultaneamente due flussi video secondari nella stessa posizione sulla superficie di sovrapposizione. Questo problema si verifica talvolta con DVD che contengono sottopicture e flussi di riga 21. Il video potrebbe essere sfarfallio o visualizzare solo uno dei flussi.
In Windows Vista o versione successiva, overlay mixer disabilita la composizione di Desktop Window Manager (DWM) se il driver di visualizzazione supporta la sovrimpressione hardware. Le applicazioni devono evitare di usare il filtro Mixer overlay; usare invece VMR-9 o EVR (Enhanced Video Renderer).
connessione upstream con il decodificatore video
In genere i pin di input di Overlay Mixer si connettono a un decodificatore video upstream. Il flusso video primario deve connettersi al pin 0. I flussi della riga 21 o dell'area secondaria si connettono al pin 1 o versione successiva. Se il decodificatore è un decodificatore software che usa esclusivamente la CPU host, la connessione tra il decodificatore e il Pin 0 è una connessione IMemInputPin. Se il decodificatore usa l'accelerazione hardware, la connessione al Pin 0 deve usare il IAMVideoAccelerator inferface. Questi due tipi di connessioni si escludono a vicenda.
Se il decodificatore si disegna direttamente sulla superficie di sovrapposizione, deve usare l'interfacciaIOverlaysul pin 0 e implementare l'interfaccia IOverlayNotify.
I filtri che incapsulano un decodificatore hardware e si connettono al mixer di sovrimpressione tramite una porta video devono implementare l'interfacciaIVPConfig. Overlay Mixer implementa l'interfacciaIVPNotify. Queste due interfacce consentono al decodificatore di specificare le superfici di sovrapposizione necessarie e consentono al mixer di sovrapposizione di informare il decodificatore della posizione di tali superfici in memoria video.
Il mixer di sovrimpressione garantisce anche che il rettangolo video venga ridimensionato correttamente. L'acquisizione video comporta alcuni problemi relativi al ridimensionamento dell'immagine di anteprima e all'acquisizione di fotogrammi video interleaved. Se si sta sviluppando un filtro o un driver WDM per un dispositivo di acquisizione video hardware, fare riferimento alleIVPConfige IVPNotify pagine di riferimento per altre informazioni su questi argomenti.
Il mixer di sovrimpressione non viene usato negli scenari di acquisizione USB o 1394. Viene usato nell'acquisizione video sul bus PCI.
connessione downstream con l' del renderer video
Overlay Mixer ha un pin di output che si connette al filtro renderer video. Il renderer video in questo caso non esegue il rendering del video; gestisce semplicemente la finestra video.
La connessione pin usa l'interfaccia IOverlay anziché l'interfacciaIMemInputPin. Il renderer video passa il relativo handle di finestra attraverso il mixer di sovrimpressione a DirectDraw, che gestisce il ritaglio del rettangolo. Le applicazioni possono controllare il Renderer video tramite le interfacce IVideoWindow e IBasicVideo2 in Filter Graph Manager.
modalità esclusiva DirectDraw
La modalità esclusiva DirectDraw di Overlay Mixer consente ai giochi di visualizzare video in alcune parti dello schermo. In questa modalità, overlay mixer esegue il rendering del video direttamente in una superficie DirectDraw creata dall'applicazione di gioco, anziché in una finestra fornita dal Renderer video. Ciò consente ai giochi di controllare il tasto colore. Overlay Mixer espone un solo pin di input in modalità esclusiva DirectDraw, il che significa che in questa modalità non è possibile eseguire alcuna combinazione di sottopicture Line 21 o DVD.
Per usare overlay mixer in modalità esclusiva DirectDraw, creare un'istanza del mixer overlay ed eseguirne una query per l'interfaccia IDDrawExclModeVideo prima di compilare il grafico del filtro. Chiamare quindi IDDrawExclModeVideo::SetDDrawSurface per specificare la superficie DirectDraw per il rendering. Una limitazione significativa di questa modalità è che il gioco non ottiene l'accesso ai bit video effettivi. Se si usa IDDrawExclModeVideo, l'applicazione crea la superficie primaria e overlay mixer crea la superficie di sovrapposizione.
È anche possibile usare la modalità esclusiva DirectDraw per eseguire il rendering senza finestra, ad esempio in una pagina Web, ma non è consigliabile, perché overlay mixer non esegue alcuna combinazione in questa modalità. Ciò significa che non è possibile visualizzare alcuna riga 21 o dati secondari.
Argomenti correlati