8.15. VIDIX
Indietro | Capitolo 8. Dispositivi di uscita video | Avanti

## 8.15. VIDIX

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:

1. 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.

2. 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.

3. Per creare i dispositivi necessari nella directory `/dev`, esegui, come root,

       make device

   nella directory `svgalib_helper`.

4. Sposta la directory `svgalib_helper` nella sotto-directory `vidix` nei sorgenti di MPlayer.

5. Togli il commento prima della riga con CFLAGS che contiene "svgalib_helper" dal file `vidix/Makefile`.

6. Ricompila.

### 8.15.1. Schede ATI

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.

### 8.15.2. Schede Matrox

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.

### 8.15.3. Schede Trident

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.

### 8.15.4. Schede 3DLabs

Anche se esiste un driver per i chip 3DLabs GLINT R3 e Permedia3, nessuno lo ha provato, perciò delle informazioni sono benvenute.

### 8.15.5. Schede nVidia

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

### 8.15.6. Schede SiS

Questo codice è davvero sperimentale, proprio come nvidia_vid.

E' stato testato su SiS 650/651/740 (i chipset più diffusi usati nelle versioni SiS dello "Shuttle XPC").

Si attendono resoconti!

Indietro | Risali | Avanti
8.14. X11 | Partenza | 8.16. DirectFB