PREAMBOLO. VIDIX è un nome breve che sta per VIDeo Interface per *niX. VIDIX è stato progettato ed introdotto com un'interfaccia per driver veloci nello spazio utente, fornendo delle prestazioni video come quelle che fornisce mga_vid per le schede Matrox. E' anche molto portabile.
Quest'interfaccia è stata progettata come un tentativo di riunire le interfacce di accelerazione video già esistenti (conosciute come mga_vid, rage128_vid, radeon_vid, pm3_vid) in uno schema fissato. Fornisce un'interfaccia di alto livello a chip conosciuti come BES (BackEnd scalers) o OV (Video Overlays). Non fornisce un'interfaccia a basso livello a cose conosciute come server grafici (non voglio entrare in competizione con il gruppo di X11 per le modifiche alla modalità grafica). Per es. l'obiettivo principale di quest'intarfaccia è quello di velocizzare la riproduzione video.
USO
Puoi usare un driver di uscita video a sé stante: -vo xvidix
.
Questo driver è stato sviluppato come un front-end tra X11 e la tecnologia
VIDIX. Richiede l'X server e può funzionare solo dentro all'X server stesso.
Nota che, visto che accede direttamente all'hardware e oltrepassa il driver X,
le immagini memorizzate nella memoria della scheda video possono venir
corrotte. Puoi evitarlo limitando la dimensione della memoria video usata da
X con l'opzine "VideoRam" nella sezione device di XF86Config. Dovresti
impostare tale opzione alla quantità di memoria della tua scheda meno 4MB.
Se hai meno di 8MB di ram video, puoi usare invece l'opzione
"XaaNoPixmapCache" nella sezione screen.
C'è poi un driver VIDIX per la console: -vo cvidix
.
Questo richiede per la maggior parte delle schede un framebuffer
inizializzato e funzionante (altrimenti incasinerai solamente lo schermo), e
otterrai un effetto simile a -vo mga
o
-vo fbdev
. Le schede nVidia tuttavia sono in grado di
emettere video completamente grafico su vere console di testo. Vedi la sezione
nvidia_vid per ulteriori informazioni.
Per evitare il testo sui bordi e il cursore lampeggiante, prova qualcosa tipo
setterm -cursor off > /dev/tty9
(presumendo che tty9
non venga utilizzata) e poi
passa a tty9
.
D'altro canto, -colorkey 0
dovrebbe mostrarti il video sullo
"sfondo", anche se questo dipende dal fatto che colorkey funzioni bene o no.
Puoi usare un sotto-dispositivo VIDIX che sia stato applicato a vari driver
di uscita video, così: -vo vesa:vidix
(solo per Linux) e
-vo fbdev:vidix
.
In verità non conta quale driver di uscita video venga usato con VIDIX.
PREREQUISITI
La scheda video dovrebbe essere in modalità grafica (tranne le schede nVidia
con il driver di uscita -vo cvidix
).
Il driver di uscita video di MPlayer dovrebbe conoscere la modalità video attiva ed essere in grado di fornire al sotto-dispositivo VIDIX alcune caratteristiche video del server.
MODI DI UTILIZZO.
Quando VIDIX viene usato come un
sotto-dispositivo (-vo
vesa:vidix
) allora la configurazione della modalità video viene
eseguita dal dispositivo di uscita video
(vo_server, in breve). Perciò puoi passare
sulla riga comando di MPlayer le stesse chiavi per
vo_server. Inoltre accetta -double
come un parametro globale
(si consiglia di usare questa opzione con VIDIX almeno per le schede ATI).
Come -vo xvidix
, attualmente riconosce le seguenti opzioni:
-fs -zoom -x -y -double
.
Poi puoi specificare il driver VIDIX direttamente sulla riga comando come una terza sotto-opzione:
mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi
o
mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi
ma è pericoloso e non dovresti farlo. In questo caso il driver indicato verrà forzato e i risultati sono imprevedibili (potrebbe mandarti il computer in freeze). Dovresti farlo SOLO se sei assolutamente sicuro che funzionerà e MPlayer non lo farà automaticamente. Per favore dillo agli sviluppatori. Il modo corretto è utilizzare VIDIX senza argomenti per abilitare la rilevazione automatica del driver.
Visto che VIDIX richiede un accesso diretto all'hardware puoi sia eseguirlo come root, sia impostare il bit SUID sull'eseguibile di MPlayer. (Attenzione: questo è un rischio di sicurezza!) Alternativamente puoi usare uno modulo del kernel speciale, come questo:
Scarica la versione di sviluppo di svgalib (1.9.x).
Compila il modulo nella directory
svgalib_helper
(si trova dentro la
directory svgalib-1.9.17/kernel/
se hai
scaricato i sorgenti dal sito di svgalib) e caricalo nel kernel.
Per creare i dispositivi necessari nella directory
/dev
, esegui, da utente root,
make device
nella directory
svgalib_helper
.
Poi esegui di nuovo configure
passando i parametri
--enable-svgalib_helper
e
--extra-cflags=
,
dove /percorso/dei/sorgenti/di/svgalib_helper
kernel/svgalib_helper/percorso/dei/sorgenti/di/svgalib_helper
deve
puntare al percorso dove hai estratto i sorgenti di svgalib_helper.
Ricompila.
Attualmente la maggior parte delle schede ATI è supportata nativamente, dalle Mach64 alle più recenti Radeon.
Ci sono due binari compilati: radeon_vid
per le Radeon e
rage128_vid
per le schede Rage 128. Puoi forzare
l'utilizzo di uno dei due, oppure lasciare che il sistema VIDIX provi tutti i
driver disponibili.
Le Matrox G200, G400, G450 and G550 sono state riportate come funzionanti.
Il driver supporta gli equalizzatori video e dovrebbe essere veloce quasi quanto il framebuffer Matrox.
C'è un driver disponibile per il chipset Trident Cyberblade/i1, che si può trovare sulle schede madri VIA Epia.
Il driver è scritto e mantenuto da Alastair M. Robinson.
Anche se esiste un driver per i chip 3DLabs GLINT R3 e Permedia3, nessuno lo ha provato, perciò delle informazioni sono benvenute.
Una caratteristica unica del driver nvidia_vid è la sua abilità nel mostrare
video su di una
semplice, pura, console di testo - senza alcun
framebuffer o qualche magia di X. Per questo fine, dovremo usare il driver di
uscita video cvidix
, come mostrato nell'esempio che segue:
mplayer -vo cvidix esempio.avi