Suppongo che tu stia utilizzando il VMR con più pin di input. Il VMR renderà su una singola superficie, che deve essere su un singolo display. Dovresti essere in grado di eseguire il rendering dei tuoi stream su più VMR, con ogni VMR posizionato su un display separato all'interno della tua finestra ingrandita.
Sembra che tu abbia tutti i flussi in un singolo grafico. Puoi separarli in grafici diversi, con ciascun grafico con una sorgente e un riproduttore. Avviare i grafici in sincronizzazione significa utilizzare IMediaFilter :: Esegui invece di IMediaControl :: Esegui:
- Selezionare un grafico come master.
- Assicurarsi che il master abbia un orologio. Normalmente questo viene fatto quando si attiva, ma è possibile forzarlo ad accadere prima chiamando SetDefaultSyncSource sul grafico.
- Interrogare i grafici per IMediaFilter, ottenere l'orologio dal grafico master utilizzando GetSyncSource e passarlo agli altri grafici utilizzando SetSyncSource.
- Mettere in pausa tutti i grafici.
- Attendere fino a quando GetState restituisce S_OK (la pausa è completa).
- Prendi il tempo dal grafico e aggiungi 10ms circa.
- Chiama IMediaFilter :: Esegui su tutti i grafici, passando questa volta (ora + 10 ms) come parametro.
fonte
2009-08-19 15:39:59
Grazie mille Geraint. Ci proverò. –