Sincronizzazione della vmR alla frequenza di aggiornamento del monitoraggio

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture 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.

In rari scenari, è possibile sincronizzare con precisione il rendering video con la frequenza di aggiornamento del monitoraggio, in modo che venga presentato esattamente un nuovo frame ogni volta che il monitoraggio aggiorna. Il modo più affidabile per eseguire questa operazione consiste nel creare un relatorere allocatore personalizzato che usa un'operazione di capovolgimento anziché un'operazione blit per scrivere i bit video nella superficie primaria. "Flip" viene chiamato ogni volta che il monitoraggio viene aggiornato, quindi se il flusso video non contiene timestamp, vmR eseguirà il rendering più veloce possibile alla superficie primaria, ma la superficie bloccherà il flusso fino al completamento dell'operazione Flip. Ciò significa che, purché la CPU non sia sovraccaricata, il frame successivo sarà sempre in attesa nella superficie primaria ogni volta che il monitoraggio viene aggiornato. Tuttavia, se è in esecuzione un altro processo a elevato utilizzo della CPU, potrebbe essere possibile modificare il thread di streaming DirectShow in modo che non possa recapitare fotogrammi video abbastanza velocemente alla superficie primaria.

Modalità di riproduzione senza rendering di VMR (relatori allocatori personalizzati)