2011-12-14 18 views
5

Necesito mostrar simultáneamente un video que se está reproduciendo en mi aplicación, pantalla completa en un monitor más grande. En algunas tarjetas de video, esto se llama modo Teatro y se configura utilizando una herramienta que suministra el fabricante de la tarjeta.Recreando el Modo Teatro con DirectX

Me gustaría hacer esto solo con el software. ¿Puedo hacer esto con DirectX?

Mi idea es tomar la reproducción de video actualmente activa usando DirectShow y volver a pintarla en una segunda pantalla (según lo configurado por el usuario) en modo de pantalla completa.

¿Qué tecnologías o métodos usaría para esto?

Respuesta

2

La manera directa es dividir el video codificado en dos ramas y usar dos procesadores de video para presentar video en diferentes monitores. Un renderizador podría ser parte de su UI de aplicación, el otro podría expandirse a pantalla completa en el monitor secundario grande.

enter image description here

La división codificada de vídeo que dan aún una opción para aprovechar el hardware de decodificación asistida (DXVA) si está disponible. Es posible que prefiera utilizar el decodificador solo de software y dividir el video ya decodificado; esto también va a funcionar.

Es posible que también desee implementar un filtro que deshabilitaría temporalmente uno u otro renderizador, como por ejemplo al detener el paso de muestras de medios.

Otra cosa que puede hacer es usar puentes para controlar aún más flexiblemente los procesadores y poder separarlos de la fuente de medios.

+0

Gracias por su respuesta. Le disparé un correo electrónico y me gustaría poder hacerle algunas preguntas. – Jason