Supongo que está utilizando el VMR con múltiples pines de entrada. El VMR se renderizará en una sola superficie, que debe estar en una sola pantalla. Debería poder renderizar sus flujos en múltiples VMR, con cada VMR colocado en una pantalla separada dentro de su ventana maximizada.
Parece que tiene todos los flujos en un solo gráfico. Puede separarlos en diferentes gráficos, con cada gráfico con una fuente y un renderizador. Iniciar los gráficos en sincronización significa usar IMediaFilter :: Run en lugar de IMediaControl :: Ejecutar:
- Elija un gráfico como maestro.
- Asegúrese de que el maestro tenga un reloj. Esto normalmente se hace cuando se activa, pero puede forzarlo a que ocurra antes llamando a SetDefaultSyncSource en el gráfico.
- Consulta los gráficos de IMediaFilter, obtén el reloj del gráfico maestro con GetSyncSource y pásalo a los otros gráficos usando SetSyncSource.
- Pausa todos los gráficos.
- Espere hasta que GetState devuelva S_OK (la pausa está completa).
- Obtenga la hora del gráfico y agregue 10 ms o menos.
- Llamada IMediaFilter :: Ejecutar en todos los gráficos, pasando esta vez (ahora + 10ms) como el parámetro.
Muchas gracias Geraint. Voy a intentar eso. –