2011-12-14 12 views
5

È necessario visualizzare contemporaneamente un video riprodotto nella mia applciazione, a schermo intero su un monitor più grande. Su alcune schede video, si chiama modalità Teatro e viene configurato utilizzando uno strumento fornito dal produttore della scheda.Ricreare la modalità Teatro con DirectX

Mi piacerebbe farlo solo con il software. Posso farlo con DirectX?

La mia idea è di riprodurre il video attualmente attivo utilizzando DirectShow e ridisegnarlo su un secondo schermo (come configurato dall'utente) in modalità schermo intero.

Quali tecnologie o metodi utilizzerei per questo?

risposta

2

Il modo semplice è quello di dividere video ancora codificati in due rami e utilizzare due set di renderer video per presentare il video su diversi monitor. Un renderer potrebbe essere una parte dell'interfaccia utente dell'applicazione, l'altro potrebbe espandersi a schermo intero sul monitor secondario di grandi dimensioni.

enter image description here

Splitting codificato il video vi darà la possibilità di sfruttare ancora decodifica hardware assistita (DXVA), se disponibile. Potresti preferire usare solo decodificatore software e dividere video già decodificati, anche questo funzionerà.

Si potrebbe inoltre voler implementare un filtro che disabiliterebbe temporaneamente temporaneamente uno o l'altro renderer, come ad esempio interrompendo il passaggio dei campioni multimediali.

Un'altra cosa che puoi fare è usare il bridging per controllare in modo ancora più flessibile i renderer e poterli staccare dalla fonte multimediale.

+0

Grazie per la risposta. Ti ho mandato un'email e mi piacerebbe poterti fare delle domande. – Jason