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 (per esempio la 1.9.17), OPPURE scarica una versione fatta da Alex appositamente per essere usata con MPlayer (non ha bisogno dei sorgenti di svgalib per la compilazione) da qui.
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, come root,
make device
nella directory svgalib_helper.
Sposta la directory svgalib_helper nella sotto-directory vidix nei sorgenti di MPlayer.
Togli il commento prima della riga con CFLAGS che contiene "svgalib_helper" dal file vidix/Makefile.
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