Modalità vmr finestra (compatibilità)

[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.

VmR è progettato per essere compatibile con tutte le applicazioni DirectShow esistenti. Quando viene usato con un'applicazione esistente, VMR opera in modalità finestra con un singolo flusso video, detto anche modalità di compatibilità. Questa modalità viene fornita perché VMR-7 è il renderer predefinito in Windows XP e viene quindi usata automaticamente nelle chiamate ai metodi Intelligent Connect , ad esempio IGraphBuilder::RenderFile. Se l'applicazione usa Intelligent Connect e richiede solo funzionalità di rendering di base, non è necessario alcun codice speciale per il rendering corretto con VMR-7 in Windows XP.

VmR-9 viene eseguito anche in modalità finestra/compatibilità per impostazione predefinita. Tuttavia, VMR-9 non è mai il renderer video predefinito. Per usare VMR-9 in un'applicazione, è necessario aggiungerlo in modo esplicito al grafico dei filtri. Per questo motivo, e poiché la modalità senza finestra offre funzionalità migliori rispetto alla modalità finestra, non esiste alcun vantaggio particolare per l'uso di VMR-9 in modalità finestra/compatibilità.

Uso di VMR-7 in modalità finestra/compatibilità

Non è necessaria alcuna programmazione speciale per configurare o controllare VMR-7 in modalità finestra/compatibilità. È sufficiente compilare il grafico dei filtri usando le chiamate standard per la compilazione di gragrafi e VMR-7 verrà usato per impostazione predefinita in questa modalità.

In modalità finestra/compatibilità, VMR-7 crea la propria finestra per visualizzare il video. A tale scopo, carica il componente Window Manager, che espone le interfacce IVideoWindow e IBasicVideo . L'applicazione può eseguire query su Filter Graph Manager per queste interfacce, esattamente come si farebbe con il vecchio filtro Del renderer video. Per altre informazioni, vedere Uso della modalità finestra.

La figura seguente mostra VMR-7 in modalità finestra/compatibilità.

vmr in modalità di compatibilità

Per garantire il livello massimo di compatibilità, la finestra video ha lo stesso nome di classe di quello creato dal filtro Del renderer video precedente e la maggior parte del codice di Gestione finestre del renderer video precedente è ancora usata da VMR. In modalità finestra/compatibilità, vmR non utilizza più risorse di sistema rispetto al precedente Renderer video. Poiché VMR-7 ha un solo flusso di input in modalità finestra/compatibilità, non carica i componenti mixer o compositor.

Per impostazione predefinita, VMR estende l'immagine per riempire la finestra video. Per mantenere le proporzioni dell'origine, chiamare il metodo IVMRAspectRatioControl::SetAspectRatioMode con il flag VMR_ARMODE_LETTER_BOX.

Nota

Le applicazioni MFC che posizionano la finestra video in una finestra figlio devono definire un gestore di messaggi WM_ERASEBKGND vuoto oppure l'area di visualizzazione video non verrà ridisegnata correttamente.

 

Uso di VMR-7 in modalità finestra/compatibilità con più flussi

In modalità di compatibilità/finestra, VMR-7 crea un singolo pin di input per impostazione predefinita e disabilita la modalità di combinazione. Per abilitare la modalità di combinazione, è necessario configurare la macchina virtuale prima di connetterla. Per altre informazioni, vedere VMR con più flussi (modalità di combinazione). In modalità di combinazione, VMR carica i componenti di combinazione e compositore, che richiedono più risorse di sistema.

Uso di VMR-9 in modalità finestra

Poiché VMR-9 non è il renderer predefinito, non ha una modalità di compatibilità come tale. Il valore predefinito di VMR-9 è invece la modalità finestrata con quattro pin di input. È possibile usare questa modalità per combinare fino a quattro flussi video. Se è necessario combinare un numero maggiore di flussi, è necessario configurarlo come descritto in VMR con più flussi (modalità di combinazione). In caso contrario, VMR-9 in modalità finestra si comporta esattamente come VMR-7 in modalità finestra/compatibilità.