Mercurial > mplayer.hg
changeset 23682:4d2f01cbea0a
first step of video.xml translation... (it's soooo huuuuuge..... :))
author | ptt |
---|---|
date | Mon, 02 Jul 2007 15:32:28 +0000 |
parents | 605ae92c644e |
children | ce6ecb20fb44 |
files | DOCS/xml/it/video.xml |
diffstat | 1 files changed, 2630 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DOCS/xml/it/video.xml Mon Jul 02 15:32:28 2007 +0000 @@ -0,0 +1,2630 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 52% synced with r23272 --> +<chapter id="video"> +<title>Dispositivi di uscita video</title> + +<sect1 id="mtrr"> +<title>Impostare gli MTRR</title> + +<para> +Si consiglia vivamente di controllare che i registri MTRR siano impostati +correttamente, poiché possono aumentare di molto le prestazioni. +</para> + +<para> +Fai un <command>cat /proc/mtrr</command>: +<screen> +<prompt>--($:~)--</prompt> cat /proc/mtrr +reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9 +reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1<!-- +--></screen> +</para> + +<para> +E' giusto, mostra la mia Matrox G400 con 16MB di memoria. L'ho fatto da +XFree 4.x.x, che imposta i registri MTRR automaticamente. +</para> + +<para> +Se non ha funzionato, devi farlo a mano. Per prima cosa, devi trovare +l'indirizzo di base. Hai 3 modi per trovarlo: + +<orderedlist> +<listitem><para> + dai messaggi di avvio di X11, per esempio: + <screen> +(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 +(--) SVGA: Linear framebuffer at 0xD8000000<!-- + --></screen> +</para></listitem> +<listitem><para> + da <filename>/proc/pci</filename> (usa il comando + <command>lspci -v</command>): + <screen> +01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 +Memory at d8000000 (32-bit, prefetchable)<!-- + --></screen> +</para></listitem> +<listitem><para> + dai messaggi del driver del kernel mga_vid (usa <command>dmesg</command>): + <screen>mga_mem_base = d8000000</screen> +</para></listitem> +</orderedlist> +</para> + +<para> +Ora troviamo la dimensione della memoria. Questo è molto facile, converti +semplicemente la video RAM in esadecimale, o usa questa tabella: +<informaltable frame="none"> +<tgroup cols="2"> +<tbody> + <row><entry>1 MB</entry><entry>0x100000</entry></row> + <row><entry>2 MB</entry><entry>0x200000</entry></row> + <row><entry>4 MB</entry><entry>0x400000</entry></row> + <row><entry>8 MB</entry><entry>0x800000</entry></row> + <row><entry>16 MB</entry><entry>0x1000000</entry></row> + <row><entry>32 MB</entry><entry>0x2000000</entry></row> +</tbody> +</tgroup> +</informaltable> +</para> + +<para> +Ora che sai l'indirizzo di base e la dimensione della memoria, impostiamo i +registri MTRR! +Per esempio, per la scheda Matrox suddetta (<literal>base=0xd8000000</literal>) +con 32MB di ram (<literal>size=0x2000000</literal>) esegui semplicemente: +<screen> +echo "base=0xd8000000 size=0x2000000 type=write-combining" > /proc/mtrr +</screen> +</para> + +<para> +Non tutte le CPU hanno gli MTRR. Per esempio le CPU K6-2 più vecchie (intorno +ai 266MHz, stepping 0) non hanno degli MTRR, ma gli stepping 12 invece sì +(esegui <command>cat /proc/cpuinfo</command> per verificarlo). +</para> +</sect1> + + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + +<sect1 id="xv"> +<title>Xv</title> + +<para> +In XFree86 4.0.2 o successivi, puoi utilizzare le funzioni YUV hardware della +tua scheda usando l'estensione XVideo. Questo è quello che fa l'opzione +<option>-vo xv</option>. Inoltre, il driver supporta l'impostazione di +luminosità/contrasto/tonalità/etc (a meno che tu non usi il vecchio e +lento codec DirectShow DivX, che le supporta ovunque), vedi la pagina man. +</para> + +<para> +In order to make this work, be sure to check the following: +Per far sì che funzioni, assicurati di controllare le seguenti: + +<orderedlist> +<listitem><para> + Che tu usi XFree86 4.0.2 o superiore (le versioni precedenti non hanno XVideo) +</para></listitem> +<listitem><para> + Che la tua scheda supporti l'accellerazione hardware (le schede moderne + la supportano) +</para></listitem> +<listitem><para> + Che X carichi l'estensione XVideo, è un qualcosa del genere: + <programlisting>(II) Loading extension XVideo</programlisting> + in <filename>/var/log/XFree86.0.log</filename> + <note><para> + Questo carica solo l'estensione per XFree86. In una buona installazione + viene sempre caricata, e non significa che il supporto per l'XVideo della + <emphasis role="bold">scheda</emphasis> sia supportato! + </para></note> +</para></listitem> +<listitem><para> + Che la tua scheda abbia il supporto Xv sotto Linux. Per controllare, prova con + <command>xvinfo</command>, è parte della distribuzione di XFree86. Dovrebbe + mostrarti un lungo testo, simile al seguente: + <screen> +X-Video Extension version 2.2 +screen #0 + Adaptor #0: "Savage Streams Engine" + number of ports: 1 + port base: 43 + operations supported: PutImage + supported visuals: + depth 16, visualID 0x22 + depth 16, visualID 0x23 + number of attributes: 5 +(...) + Number of image formats: 7 + id: 0x32595559 (YUY2) + guid: 59555932-0000-0010-8000-00aa00389b71 + bits per pixel: 16 + number of planes: 1 + type: YUV (packed) + id: 0x32315659 (YV12) + guid: 59563132-0000-0010-8000-00aa00389b71 + bits per pixel: 12 + number of planes: 3 + type: YUV (planar) +(...etc...)<!-- +--></screen> + Deve supportare i formati pixel YUY2 packed e YV12 planar per poter essere + utilizzabile con <application>MPlayer</application>. +</para></listitem> +<listitem><para> + E infine, controlla che <application>MPlayer</application> sia stato compilato + col supporto per 'xv'. Lancia un <command>mplayer -vo help | grep xv </command>. + Se il supporto per 'xv' è compilato, dovrebbe uscire una linea come la + seguente: + <screen> xv X11/Xv</screen> +</para></listitem> +</orderedlist> +</para> + + +<sect2 id="tdfx"> +<title>Schede 3dfx</title> + +<para> +I vecchi driver 3dfx erano conosciuti per aver problemi con l'accellerazione +XVideo, non supportavano gli spazi colore YUY2 o YV12. Verifica di avere XFree86 +4.2.0 o superiore, può gestire YV12 e YUY2, mentre le versioni precedenti, +4.1.0 incluso, <emphasis role="bold">vanno in crash con YV12</emphasis>. +Se hai degli strani risultati usando <option>-vo xv</option>, prova SDL +(anch'essa ha XVideo) e vedi se aiuta. Controlla la sezione su +<link linkend="sdl">SDL</link> per i dettagli. +</para> + +<para> +<emphasis role="bold">OPPURE</emphasis>, prova il NUOVO driver +<option>-vo tdfxfb</option>! Vedi la sezione +<link linkend="tdfxfb">tdfxfb</link> +</para> +</sect2> + + +<sect2 id="s3"> +<title>Schede S3</title> + +<para> +Le S3 Savage3D dovrebbero funzionare bene, ma per le Savage4, usa XFree86 4.0.3 +o superiore (nel caso tu abbia problemi di immagini, prova a 16bpp). Per le +S3 Virge invece: c'è il supporto per xv, ma la scheda in sé è molto lenta, +per cui ti conviene venderla. +</para> + +<para> +Non c'è un driver framebuffer nativo per le schede S3 Virge simile a tdfxfb. +Configura il tuo framebuffer (per es. aggiungi +"<option>vga=792 video=vesa:mtrr</option>" alla riga di avvio del kernel) e usa +<option>-vo s3fb</option> (<option>-vf yuy2</option> e <option>-dr</option> +aiutano). +</para> + +<note><para> +Non è ben chiaro il perché i modelli Savage non abbiano il supporto YV12 e +facciano la conversione con il driver (lento). Se pensi sia colpa della scheda, +cerca un driver più nuovo, o chiedi gentilmente di un driver abilitato +MMX/3DNow! sulla mailing list MPlayer-users. +</para></note> +</sect2> + + +<sect2 id="nvidia"> +<title>Schede nVidia</title> + +<para> +nVidia non è sempre una scelta molto buona sotto Linux ... Il driver +open-source di XFree86 supporta la maggior parte di queste schede, ma in alcuni +casi, dovrai usare il driver a sorgenti chiusi di nVidia, disponibile sul +<ulink url="http://www.nvidia.com/object/linux.html">sito nVidia</ulink>. +Ti servirà sempre questo driver anche se vuoi l'accellerazione 3D. +</para> + +<para> +Le schede Riva128 non hanno il supporto XVideo con il driver nVidia di +XFree86 :( +Lamentati con nVidia. +</para> + +<para> +Tuttavia, <application>MPlayer</application> contiene un driver +<link linkend="vidix">VIDIX</link> per la maggior parte delle schede nVidia. +Attualmente è a livello di sviluppo beta, è ha alcuni problemi. Per +ulteriori informazioni, vedi la sezione +<link linkend="vidix-nvidia">VIDIX nVidia</link>. +</para> +</sect2> + + +<sect2 id="ati"> +<title>Schede ATI</title> + +<para> +Il <ulink url="http://gatos.sf.net">driver GATOS</ulink> +(che dovresti usare a meno che tu non abbia una Rage128 o una Radeon) di +default ha il VSYNC abilitato. Ciò significa che la velocità di decodifica +(!) è sincronizzata alla frequenza di aggiornamento del monitor. Se la +riproduzione ti pare lenta, prova a disabilitare in qualche modo VSYNC, o ad +impostare la frequenza di aggiornamento a n*(fps del film) Hz. +</para> + +<para> +Read the <link linkend="vidix">VIDIX</link> section. +Radeon VE - se ti serve X, per questa scheda usa XFree86 4.2.0 o superiore. +Il TV out non è supportato. Ovviamente con <application>MPlayer</application> +puoi felicemente avere un display <emphasis role="bold">accellerato</emphasis>, +con o senza l'<emphasis role="bold">uscita TV</emphasis>, e non servono +librerie né X. +Leggi la sezione <link linkend="vidix">VIDIX</link>. +</para> +</sect2> + + +<sect2 id="neomagic"> +<title>Schede NeoMagic</title> + +<para> +Queste schede si possono trovare in molti portatili. Devi usare XFree86 4.3.0 o +superiore, o alternativamente usare i +<ulink url="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/">driver con Xv</ulink> +di Stefan Seyfried. +Scegli semplicemente quello che ti serve in base alla tua versione di XFree86. +</para> + +<para> +XFree86 4.3.0 include il supporto per Xv, caomunque Bohdan Horst ha postato +una piccola <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neo_driver.patch">patch</ulink> ai sorgenti di XFree86 che velocizza fino a +quattro volte tanto le operazioni sul framebuffer (quindi XVideo). +La patch è stata poi incorporata in XFree86 CVS e dovrebbe esserci nei rilasci +successivi al 4.3.0. +</para> + +<para> +Per permettere la riproduzione di contenuti della dimensione DVD, modifica il +tuo XF86Config in questo modo: +<programlisting> +Section "Device" + [...] + Driver "neomagic" + <emphasis>Option "OverlayMem" "829440"</emphasis> + [...] +EndSection<!-- +--></programlisting> +</para> +</sect2> + + +<sect2 id="trident"> +<title>Schede Trident</title> + +<para> +Se vuoi usare Xv con una scheda Trident, assunto il fatto che con 4.1.0 non +funziona, intalla Xfree 4.2.0. Il 4.2.0 aggiunge il supporto per Xv a schermo +intero con la scheda Cyberblade XP. +</para> + +<para> +Alternativamente, <application>MPlayer</application> contiene un driver +<link linkend="vidix">VIDIX</link> per le schede Cyberblade/i1. +</para> +</sect2> + + +<sect2 id="kyro"> +<title>Schede Kyro/PowerVR</title> + +<para> +Se vuoi usare Xv con una scheda basata su Kyro (per esempio la Hercules +Prophet 4000XT), dovresti scaricare i driver dal +<ulink url="http://www.powervr.com/">sito di PowerVR</ulink>. +</para> +</sect2> +</sect1> + +<!-- ********** --> + +<sect1 id="dga"> +<title>DGA</title> + +<formalpara> +<title>PREAMBOLO</title> +<para> +Questa documento cerca di spiegare in poche parole cosa sia DGA e cosa possa +fare (e cosa no) il driver di uscita video DGA di +<application>MPlayer</application>. +</para> +</formalpara> + +<formalpara> +<title>COS'E' DGA</title> +<para> +<acronym>DGA</acronym> è il nome breve di <emphasis>Direct Graphics +Access</emphasis> (accesso grafico diretto) ed è un modo per fa sì +che un programma oltrepassi l'X server e modifichi direttamente la memoria +del framebuffer. In termini tecnici la memoria del framebuffer viene +rimappata nello spazio di memoria del tuo processo. +Questo è permesso dal kernel solo se hai provilegi di superutente. Puoi averli +o autenticandoti come <systemitem class="username">root</systemitem> o +impostando il bit SUID sull'eseguibile di <application>MPlayer</application> +(<emphasis role="bold">sconsigliato</emphasis>). +</para> +</formalpara> +<para> +Ci sono due versioni di DGA: DGA1 usato da XFree 3.x.x e DGA2 che è stato +introdotto con XFree 4.0.1. +</para> + +<para> +DGA1 fornisce solamente accesso diretto al framebuffer come descritto sopra. +Per modificare la risoluzione del segnale video devi affidarti all'estensione +XVidMode. +</para> + +<para> +DGA2 include le funzionalità dell'estensione XVidMode e inoltre permette la +modifica della profondità colore del display. Così, anche se stai facendo +girare un X server con profondità di 32 bit, puoi passare a una di 15 e +__viceversa__. +</para> + +<para> +Tuttavia DGA ha dei punti deboli. Sembra sia in qualche modo dipendente dal +chip grafico utilizzato e dall'implementazione del driver video dell'X server +che controlla tale chip. Per cui non funziona su tutti i sistemi... +</para> + +<formalpara> +<title>INSTALLARE IL SUPPORTO PER DGA IN MPLAYER</title> + +<para> +Per prima cosa assicurati che X carichi l'estensione DGA, guarda in +<filename>/var/log/XFree86.0.log</filename>: + +<programlisting>(II) Loading extension XFree86-DGA</programlisting> + +Attenzione, si <emphasis role="bold">consiglia vivamente </emphasis> +XFree86 4.0.x o superiore! +Il driver DGA di <application>MPlayer</application> viene rilevato +automaticamente da <filename>./configure</filename>, ovvero puoi forzarlo +con <option>--enable-dga</option>. +</para> +</formalpara> + +<para> +Se il driver non è riuscito a reimpostare una risoluzione inferiore, fai delle +prove con le opzioni <option>-vm</option> (solo con X 3.3.x), +<option>-fs</option>, <option>-bpp</option>, <option>-zoom</option> per trovare +una modalità video in cui ci stia il film. Per ora non c'è un convertitore :( +</para> + +<para> +Diventa <systemitem class="username">root</systemitem>. A DGA serve l'accesso +da root per essere in grado di scrivere direttamente sulla memoria video. Se +vuoi eseguirlo come utente, allora installa <application>MPlayer</application> +SUID root: + +<screen> +chown root <replaceable>/usr/local/bin/mplayer</replaceable> +chmod 750 <replaceable>/usr/local/bin/mplayer</replaceable> +chmod +s <replaceable>/usr/local/bin/mplayer</replaceable> +</screen> + +Ora funziona anche da utente normale. +</para> + +<caution> +<title>Rischi di sicurezza</title> +<para> +Questo porta un <emphasis role="bold">grosso</emphasis> rischio di sicurezza! +Non farlo <emphasis role="bold">mai</emphasis> su un server o su un computer +che può essere utilizzato da altre persone, perché si possono ottenere +privilegi di root attraverso <application>MPlayer</application> SUID root. +</para> +</caution> + +<para> +Ora usa l'opzione <option>-vo dga</option>, e sei a cavallo! (speralo:) +Potresti anche provare se ti funziona l'opzione +<option>-vo sdl:driver=dga</option>! +E' molto più veloce! +</para> + + +<formalpara id="dga-modelines"> +<title>MODIFICARE LA RISOLUZIONE</title> + +<para> +Il driver DGA permette la modifica della risoluzione del segnale di uscita. +Questo evita la necessità di eseguire un (lento) ridimensionamento software e +allo stesso tempo fornisce un'immagine a schermo pieno. Idealmente dovrebbe +ridimensionarsi alla risoluzione precisa (rispettando il rapporto di aspetto) +dei dati video, ma l'X server permette solo di impostare le risoluzioni +precedentemente definite in <filename>/etc/X11/XF86Config</filename> +(<filename>/etc/X11/XF86Config-4</filename> per XFree 4.X.X). +Queste ultime sono conosciute come "modelines" e dipendono dalle potenzialità +del tuo hardware video. Il server X legge questo file di configurazione +all'avvio e disabilita le modelines incompatibili col tuo hardware. +Puoi scoprire quali modalità ti restano attraverso il file di log di X11. +Si può trovare qui: <filename>/var/log/XFree86.0.log</filename>. +</para> +</formalpara> + +<para> +Queste modalità si sa che funzionano correttamente con un chip Riva128, +usando il driver nv.o del server X. +</para> + +<para><programlisting> +Section "Modes" + Identifier "Modes[0]" + Modeline "800x600" 40 800 840 968 1056 600 601 605 628 + Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 + Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 + Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan + Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 + Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan + Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan +EndSection +</programlisting></para> + + +<formalpara> +<title>DGA & MPLAYER</title> +<para> +DGA is used in two places with <application>MPlayer</application>: The SDL +driver can be made to make use of it (<option>-vo sdl:driver=dga</option>) and +within the DGA driver (<option>-vo dga</option>). The above said is true +for both; in the following sections I'll explain how the DGA driver for +<application>MPlayer</application> works. +DGA viene usato con <application>MPlayer</application> in due posti: può +essere usato attraverso il driver SDL (<option>-vo sdl:driver=dga</option>) e +con il driver DGA (<option>-vo dga</option>). Quanto detto sopra è valido per +entrambi; nei paragrafi seguenti viene spiegato come il driver DGA funziona per +<application>MPlayer</application>. + +</para> +</formalpara> + + +<formalpara> +<title>CARATTERISTICHE</title> + +<para> +Il driver DGA viene utilizzato specificando <option>-vo dga</option> sulla riga +comando. Il comportamento di default è di passare ad una risoluzione il più +vicino possibile a quella originaria del video. Ignora volutamente le opzioni +<option>-vm</option> e <option>-fs</option> (abilitazione ridimensionamento +video e schermo intero) - cerca sempre di coprire la più vasta area possibile +dello schermo reimpostando la modalità video, evitando così di sprecare cicli +della CPU per ridimensionare l'immagine. Se la modalità video selezionata non +ti piace, puoi forzarlo a scegliere la modalità più prossima alla risoluzione +specificata con <option>-x</option> e <option>-y</option>. Impostando l'opzione +<option>-v</option>, il driver DGA emetterà, tra una sacco ci altre cose, +un'elenco delle risoluzioni supportate dal tuo file +<filename>XF86Config</filename>. Se hai DGA2, puoi anche forzarlo ad utilizzare +una data profondità usando l'opzione <option>-bpp</option>. Profondità +valide sono 15, 16, 24 e 32. Se queste profondità siano supportate nativamente +oppure se debba venir effettuata una conversione (eventualmente lenta), dipende +dal tuo hardware. +</para> +</formalpara> +<para> +Se dovessi essere abbastanza fortunato da avere sufficiente memoria fuori dalla +visualizzazione per poterci far stare un'immagine intera, il driver DGA userà +un buffering doppio, fornendo una riproduzione più fluida. Ti dirà quando il +doppio buffering sarà abilitato o no. +</para> + +<para> +"Doppio buffering" significa che il fotogramma successivo del video viene +disegnato nella memoria fuori dello schermo, mentre il fotogramma corrente +viene mostrato. Quando il fotogramma successivo è pronto, il chip grafico +rivece solo l'indirizzo in memoria del nuovo fotogramma e semplicemente prende +da là i dati da mostrare. Nel frattempo l'altro buffer di memoria viene +riempito con altri dati video. +</para> + +<para> +Il doppio buffering può venir abilitato usando l'opzione +<option>-double</option> e disabilitato con <option>-nodouble</option>. +L'opzione attuale di default è di disabilitarlo. Usando il driver DGA, la +visualizzazione dati su schermo (OSD, onscreen display) funziona solo con il +doppio buffering abilitato. In ogni caso, abilitare il doppio buffering può +portare una pesante penalizzazione della velocità (sul mio K6-II+ 525 usa +un ulteriore 20% di tempo di CPU) in dipendenza dall'implementazione per DGA +del tuo hardware. +</para> + + +<formalpara> +<title>PROBLEMI DI VELOCITA'</title> + +<para> +In generale, l'accesso DGA al framebuffer dovrebbe essere almeno veloce quanto +utilizzare il driver X11, con il beneficio aggiunto di ottenere un'immagine a +schermo intero. I valori di velocità percentuale emessi da +<application>MPlayer</application> devono essere interpretati con un po' di +attenzione, dato che per esempio con il driver X11 non includono il tempo usato +dal server X per il disegno effettivo. Attacca un terminale sulla seriale della +tua macchina e lancia <command>top</command> per vedere cosa stia davvero +succedendo. +</para> +</formalpara> + +<para> +In linea di massima, l'aumento di velocità usando DGA rispetto all'utilizzo +'normale' di X11 dipende fortemente dalla tua scheda video e da quanto bene il +relativo modulo del server X sia ottimizzato. +</para> + +<para> +Se hai un sistema lento, è meglio usare una profondità di 15 o 16 bit, visto +che richiedono solo la metà della banda di memoria di una visualizzazion a +32 bit. +</para> + +<para> +Usare una profondità di 24 è una buona idea anche se la tua scheda supporta +nativamente solo quella a 32 bit, dato che trasferisce il 25% dei dati in meno +rispetto alla modalità a 32/32. +</para> + +<para> +Ho visto alcuni file AVI riprodotti su Pentium MMX 266. Le CPU AMD K6-2 possono +lavorare a 400 MHz e oltre. +</para> + + +<formalpara> +<title>PROBLEMI/BACHI CONOSCIUTI</title> + +<para> +Bene, secondo gli sviluppatori di XFree, DGA è quasi una bestia. Ti dicono che +è meglio non usarla. La sua implementazione non è sempre perfetta con tutti i +driver dei chip per XFree che ci sono là fuori. +</para> +</formalpara> + +<itemizedlist> +<listitem><para> + Con XFree 4.0.3 e <filename>nv.o</filename> c'è un baco che porta ad avere + strani colori. +</para></listitem> +<listitem><para> + I driver ATI hanno bisogno che la modalità sia reimpostata più di una + volta dopo aver utilizzato DGA. +</para></listitem> +<listitem><para> + Alcuni driver semplicemente non riescono a tornare alla risoluzione normale + (Usa + <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Keypad +</keycap></keycombo> + e + <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Keypad -</keycap></keycombo> + per cambiarla manualmente). +</para></listitem> +<listitem><para> + Alcuni driver semplicemente mostrano strani colori. +</para></listitem> +<listitem><para> + Alcuni driver mentono riguardo alla memoria che mappano nello spazio + indirizzi del processo, perciò vo_dga non usa il doppio buffering (SIS?). +</para></listitem> +<listitem><para> + Alcuni driver sembra che falliscano nel fornire almeno una modalità valida. + In questo caso il driver DGA andrà in crash raccontandoti di una modalità + senza senso tipo 100000x100000 o qualcosa di simile. +</para></listitem> +<listitem><para> + L'OSD funziona solo col doppio buffering abilitato (altrimenti sfarfalla). +</para></listitem> +</itemizedlist> + +</sect1> + +<!-- ********** --> + +<sect1 id="sdl"> +<title>SDL</title> + +<para> +<acronym>SDL</acronym> (Simple Directmedia Layer) è praticamente un'interfaccia +unificata audio/video. I programmi che la usano non sanno che driver video o +audio SDL usi davvero, ma conoscono solo l'interfaccia. Per esempio un porting +di Doom che usi SDL può girara sopra a svgalib, aalib, X, fbdev e altro, devi +semplicemente specificare (per esempio) il driver video da usare attraverso la +variabile d'ambiente <envar>SDL_VIDEODRIVER</envar>. In teoria, perlomeno. +</para> + +<para> +Con <application>MPlayer</application>, usiamo la sua potenzialità di +ridimensionamento via software del driver di X11 per le schede che non +gestiscono XVideo, fino a quando non faremo il nostro (più veloce, più bello) +ridimensionatore software. Abbiamo anche usato la sua uscita per aalib, ma ora +abbiamo la nostra che è più comoda. La sua modalità per DGA era migliore +della nostra fino a poco tempo fa. Hai capito, no? :) +</para> + +<para> +Aiuta anche con alcuni driver/schede bacate, se il video è scattoso (non per +problemi di sistema lento) oppure l'audio è saltellante. +</para> + +<para> +L'uscita video SDL supporta la visualizzazione dei sottotitoli sotto al filmato +ovvero sulla striscia nera (se presente). +</para> +</sect1> + +<!-- ********** --> + +<sect1 id="svgalib"> +<title>SVGAlib</title> + +<formalpara> +<title>INSTALLAZIONE</title> +<para> +Affinché <application>MPlayer</application> compili il suo driver per SVGAlib +(autorilevato, ma può essere forzato), devi installare svgalib e il suo +pacchetto di sviluppo e non dimenticare di modificare +<filename>/etc/vga/libvga.config</filename> in modo che corrisponda alla tua +scheda e al tuo monitor. +</para> +</formalpara> + +<note><para> +Assicurati di non usare l'opzione <option>-fs</option>, dato che attiva +l'utilizzo del ridimensionatore software, ed è lento. Se davvero ti serve, usa +l'opzione <option>-sws 4</option>, che porterà una bassa qualità, ma è in +qualche modo più veloce. +</para></note> + +<formalpara> +<title>SUPPORTO PER EGA (4BPP)</title> +<para> +SVGAlib include EGAlib, e <application>MPlayer</application> ha la possibilità +di mostrare qualsiasi filmato in 16 colori, utilizzabile in queste situazioni: +</para> +</formalpara> + +<itemizedlist> +<listitem><para> + Scheda EGA con monitor EGA: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp +</para></listitem> +<listitem><para> + Scheda EGA con monitor CGA: 320x200x4bpp, 640x200x4bpp +</para></listitem> +</itemizedlist> + +<para> +Il valore dei bpp (bit per pixel) deve essere impostato a 4 manualmente: +<option>-bpp 4</option> +</para> + +<para> +Il filmato probabilmente deve essere rimpicciolito per starci nella modalità +EGA: +<screen>-vf scale=640:350</screen> +or +<screen>-vf scale=320:200</screen> +</para> + +<para> +Per questo ci serve una funzione di ridimensionamento veloce ma a bassa +qualità: +<screen>-sws 4</screen> +</para> + +<para> +Forse la correzione automatica dell'aspetto va disattivata: +<screen>-noaspect</screen> +</para> + +<note><para> +Secondo la mia esperienza la qualità migliore dell'immagine su schermi EGA +può essere ottenuta diminuendo un pochino la luminosità: +<option>-vf eq=-20:0</option>. Sul mio sistema ho anche bisogno di abbassare +la frequenza audio, dato che era rovinata a 44kHz: +<option>-srate 22050</option>. +</para></note> + +<para> +Puoi abilitare l'OSD e i sottotitoli solo con il filtro <option>expand</option>, +vedi la pagina man per i parametri precisi. +</para> +</sect1> + +<!-- ********** --> + +<sect1 id="fbdev"> +<title>Uscita su framebuffer (FBdev)</title> + +<para> +Se compilare l'uscita FBdev o no viene rilevato automaticamente da +<filename>./configure</filename>. Leggi nei sorgenti del kernel la +documentazione sul framebuffer (<filename>Documentation/fb/*</filename>) per +ulteriori informazioni. +</para> + +<para> +Se la tua scheda non supporta lo standard VBE 2.0 (vecchie schede ISA/PCI, come +la S3 Trio64), ma solo VBE 1.2 (o precedente?): bene, c'è ancora VESAfb, ma +ddovrai caricare SciTech Display Doctor (conosciuto precedentemente come UniVBE) +prima di avviare Linux. Usa un disco di avvio DOS o qualcosa del genere. E non +dimenticare di registrare il tuo UniVBE ;)) +</para> + +<para> +L'uscita su FBdev richiede principalmente alcuni parametri addizionali: +</para> + +<variablelist> +<varlistentry> + <term><option>-fb</option></term> + <listitem><para> + specifica il dispositivo framebuffer da usare (default: + <filename>/dev/fb0</filename>) + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-fbmode</option></term> + <listitem><para> + nome della modalità da usare (come in <filename>/etc/fb.modes</filename>) + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-fbmodeconfig</option></term> + <listitem><para> + file di configirazione delle modalità (default: + <filename>/etc/fb.modes</filename>) + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-monitor-hfreq</option></term> + <term><option>-monitor-vfreq</option></term> + <term><option>-monitor-dotclock</option></term> + <listitem><para> + valori <emphasis role="bold">importanti</emphasis>, vedi + <filename>example.conf</filename> + </para></listitem> +</varlistentry> +</variablelist> + +<para> +Se vuoi passare a una modalità particolare, allora usa +<screen> +mplayer -vm -fbmode <replaceable>nome_modalità</replaceable> <replaceable>nomefile</replaceable> +</screen> +</para> + +<itemizedlist> +<listitem><para> + <option>-vm</option> da sola può scegliere la modalità più adatta da + <filename>/etc/fb.modes</filename>. Può essere usata anche insieme con le + opzioni <option>-x</option> e <option>-y</option>. L'opzione + <option>-flip</option> è supportata solo se il formato pixel del film + corrisponde al formato pixel della modalità video. Stai attento al valore + di bpp, il driver fbdev cerca di usare prima quello corrente, poi quello che + indichi tramite l'opzione <option>-bpp</option> option. +</para></listitem> +<listitem><para> + l'opzione <option>-zoom</option> non è supportata + (usa <option>-vf scale</option>). Non puoi usare modalità a 8bbp (o meno). +</para></listitem> +<listitem><para> + Probabilmente vuoi disabilitare il cursore: + <screen>echo -e '\033[?25l'</screen> + o + <screen>setterm -cursor off</screen> + e il salvaschermo: + <screen>setterm -blank 0</screen> + Per riabilitare il cursore: + <screen>echo -e '\033[?25h'</screen> + o + <screen>setterm -cursor on</screen> +</para></listitem> +</itemizedlist> + +<note><para> +La modifica della modalità video di FBdev <emphasis>non funziona</emphasis> +con il framebuffer VESA, e non chiederla, visto che non è una limitazione di +<application>MPlayer</application>. +</para></note> +</sect1> + +<!-- ********** --> + +<sect1 id="mga_vid"> +<title>Framebuffer Matrox (mga_vid)</title> + +<para> +<systemitem>mga_vid</systemitem> è un'incrocio di un driver di uscita video e +di un modulo del kernel, che utilizza il ridimensionatore e l'overlay video +delle Matrox G200/G400/G450/G550 per effettuare una conversione dello spazio +colore YUV->RGB e un ridimensionamento video arbitrario. +<systemitem>mga_vid</systemitem> ha un supporto hardware per VSYNC con triplo +buffering. Funziona sia in una console su framebuffer che dentro X, ma solo con +Linux 2.4.x. +</para> + +<para> +Per una versione del driver per Linux 2.6.x controlla +<ulink url="http://attila.kinali.ch/mga/"/>. +</para> + +<procedure> +<title>Installazione:</title> +<step><para> + Per usarlo, devi innanzitutto compilare <filename>mga_vid.o</filename>: + <screen> +cd drivers +make<!-- +--></screen> +</para></step> +<step><para> + Poi esegui (come <systemitem class="username">root</systemitem>) + <screen>make install</screen> + che dovrebbe installare il modulo e creare per te il nodo del dispositivo. + Carica il driver con + <screen>insmod mga_vid.o</screen> +</para></step> +<step><para> + Dovresti verificare il rilevamento della dimensione della memoria usando il + comando <command>dmesg</command>. Se è errato, usa l'opzione + <option>mga_ram_size</option> (prima fai <command>rmmod mga_vid</command>), + indicando in MB la dimensione della memoria della scheda: + <screen>insmod mga_vid.o mga_ram_size=16</screen> +</para></step> +<step><para> + Per far sì che venga caricato/scaricato quando serve, prima inserisci la + riga seguente alla fine di <filename>/etc/modules.conf</filename>: + + <programlisting>alias char-major-178 mga_vid</programlisting> +</para></step> +<step><para> + Ora devi (ri)compilare <application>MPlayer</application>, + <command>./configure</command> rileverà <filename>/dev/mga_vid</filename> e + compilerà il driver 'mga'. Si potrà usare da + <application>MPlayer</application> con <option>-vo mga</option> se sei su una + console matroxfb, oppure <option>-vo xmga</option> se sei sotto XFree86 3.x.x + o 4.x.x. +</para></step> +</procedure> + +<para> +Il driver mga_vid collabora con Xv. +</para> + +<para> +Si può leggere il file del dispositivo <filename>/dev/mga_vid</filename> per +alcune informazioni, per esempio facendo +<screen>cat /dev/mga_vid</screen> +e ci si può scrivere per modificare la luminosità: +<screen>echo "brightness=120" > /dev/mga_vid</screen> +</para> + +<para> +Nella stessa directory c'è un'applicazione di test che si chiama +<command>mga_vid_test</command>. Se tutto funziona bene, dovrebbe disegnare +immagini di 256x256 sullo schermo. +</para> + +</sect1> + +<!-- ********** --> + +<sect1 id="tdfxfb" xreflabel="3Dfx YUV support (tdfxfb)"> +<title>Supporto YUV per 3Dfx</title> + +<para> +Questo driver usa il driver tdfx del kernel per il framebuffer per riprodurre +filmati con accellerazione YUV. Ti serve un kernel con supporto per tdfxfb e +ricompilare con +<screen>./configure --enable-tdfxfb</screen> +</para> +</sect1> + +<!-- ********** --> + +<sect1 id="tdfx_vid"> +<title>tdfx_vid</title> + +<para> +Questo è un'incrocio di un driver di uscita video e di un modulo del kernel, +simile a <link linkend="mga_vid">mga_vid</link>. Ti serve un kernel 2.4.x con +il driver <systemitem>agpgart</systemitem>, visto che +<systemitem>tdfx_vid</systemitem> usa AGP. Passa +<option>--enable-tdfxfb</option> a <command>configure</command> per compilare +il driver di uscita video e compila il module del kernel con le istruzioni +seguenti. +</para> + +<procedure> +<title>Installare il modulo del kernel tdfx_vid.o:</title> +<step><para> + Compila <filename>tdfx_vid.o</filename>: + <screen> +cd drivers +make</screen> +</para></step> +<step><para> + Poi esegui (come <systemitem class="username">root</systemitem>) + <screen>make install</screen> + che dovrebbe installare il modulo e creare per te il nodo del dispositivo. + Carica il driver con + <screen>insmod tdfx_vid.o</screen> +</para></step> +<step><para> + Per far sì che venga caricato/scaricato quando serve, prima inserisci la + riga seguente alla fine di <filename>/etc/modules.conf</filename>: + + + <programlisting>alias char-major-178 tdfx_vid</programlisting> +</para></step> +</procedure> + +<para> +Nella stessa directory c'è un'applicazione di test che si chiama +<command>tdfx_vid_test</command>. Se tutto funziona bene, dovrebbe fornire +alcune informazioni utili. +</para> + +</sect1> + +<!-- ********** --> + +<sect1 id="opengl"> +<title>Uscita OpenGL</title> + +<para> +<application>MPlayer</application> supporta la riproduzione di filmati usando +OpenGL, ma se se la tua piattaforma/driver supportano xv come è il caso di un +PC con Linux, allora usa xv, le prestazioni OpenGL sono pesantemente peggiori. +Se hai un'implementazione di X11 senza xv, OpenGL è una valida alternativa. +</para> + +<para> +Sfortunatamente non tutti i driver supportano questa caratteristica. I driver +Utah-GLX (per XFree86 3.3.6) la supportano per tutte le schede. +Vedi <ulink url="http://utah-glx.sf.net"/> per dettagli su come installarli. +</para> + +<para> +XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards, +4.2.0 or later supports Rage128. +Vedi <ulink url="http://dri.sf.net"/> for download and installation +instructions. +XFree86(DRI) 4.0.3 o successivi supportano OpenGL con schede Matrox e Radeon, +4.2.0 o successivi supportano le Rage128. +Leggi su <ulink url="http://dri.sf.net"/> le istruzioni per scaricarli ed +installare. +</para> + +<para> +Un consiglio per i nostri utenti: l'uscita video GL può essere usata per +ottenere un'uscita sincronizzata su vsync. Devi impostare una variabile +d'ambiente (perlomeno con nVidia): +</para> + +<para> +<command>export __GL_SYNC_TO_VBLANK=1</command> +</para> +</sect1> + +<!-- ********** --> + +<sect1 id="aalib"> +<title>AAlib – Visualizzazione in modalità testuale</title> + +<para> +AAlib è una libreria per mostrare elementi grafici in modalità testuale, +usando un potente renderizzatore ASCII. Ci sono <emphasis>valanghe</emphasis> +di programmi che la utilizzano, come Doom, Quake, etc. +<application>MPlayer</application> ne include un driver facilmente utilizzabile. +Se <filename>./configure</filename> trova AAlib installata, il driver di uscita +video per aalib verrà compilato. +</para> + +<para> +Puoi usare alcune chiavi nella finestra AA per modificare le opzioni di +renderizzazione: +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Chiave</entry><entry>Azione</entry></row> +</thead> +<tbody> +<row><entry><keycap>1</keycap></entry><entry> + diminuisce il contrasto +</entry></row> +<row><entry><keycap>2</keycap></entry><entry> + aumenta il contrasto +</entry></row> +<row><entry><keycap>3</keycap></entry><entry> + diminuisce la luminosità +</entry></row> +<row><entry><keycap>4</keycap></entry><entry> + aumenta la luminosità +</entry></row> +<row><entry><keycap>5</keycap></entry><entry> + abilita/disabilita il fast rendering +</entry></row> +<row><entry><keycap>6</keycap></entry><entry> + imposta la modalità di dithering (nessuna, distribuzione di errore, + Floyd Steinberg) +</entry></row> +<row><entry><keycap>7</keycap></entry><entry> + inverte l'immagine +</entry></row> +<row><entry><keycap>8</keycap></entry><entry> + passa tra i controlli di aa e quelli di <application>MPlayer</application> +</entry></row> +</tbody> +</tgroup> +</informaltable> + +<variablelist> +<title>Si possono usare le seguenti opzioni sulla riga di comando:</title> +<varlistentry> + <term><option>-aaosdcolor=<replaceable>V</replaceable></option></term> + <listitem><para> + modifica il colore OSD + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-aasubcolor=<replaceable>V</replaceable></option></term> + <listitem><para> + modifica il colore dei sottitoli + </para><para> + dove <replaceable>V</replaceable> può essere: + <literal>0</literal> (normale), + <literal>1</literal> (scuro), + <literal>2</literal> (grassetto), + <literal>3</literal> (font grassetto), + <literal>4</literal> (invertito), + <literal>5</literal> (speciale). + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title>AAlib di suo fornisce un po' di opzioni. Di seguito alcune +importanti:</title> +<varlistentry> + <term><option>-aadriver</option></term> + <listitem><para> + Impostra il driver aa preferito (X11, curses, Linux). + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-aaextended</option></term> + <listitem><para> + Usa tutti e 256 i caratteri. + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-aaeight</option></term> + <listitem><para> + Usa ASCII a otto bit. + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-aahelp</option></term> + <listitem><para> + Lista tutte le opzioni per aalib. + </para></listitem> +</varlistentry> +</variablelist> + +<note><para> +La renderizzazione è molto pesante per la CPU, specialmente usando AA-on-X +(usando aalib su X), ed è più leggera su una console standard, senza +framebuffer. Usa SVGATextMode per impostare una modalità a molti caratteri, +poi divertiti! (le schede Hercules con seconda uscita sono mitiche :)) +(ma IMHO puoi usare l'opzione <option>-vf 1bpp</option> per avere grafica su +hgafb:) +</para></note> + +<para> +Usa l'opzione <option>-framedrop</option> se il tuo computer non è abbastanza +veloce da renderizzare tutti i fotogrammi! +</para> + +<para> +Riproducendo su un terminale, avrai migliore velocità e qualità usando il +driver Linux, non ncurses (<option>-aadriver linux</option>). Ma devi anche +avere accesso a +<filename>/dev/vcsa<replaceable><terminale></replaceable></filename>! +Questo non è rilevato automaticamente da aalib, ma vo_aa cerca di trovare la +modalità migliore. Leggi <ulink url="http://aa-project.sf.net/tune"/> per +altri consigli di impostazioni. +</para> +</sect1> + +<!-- ********** --> + +<sect1 id="caca"> +<title> +<systemitem class="library">libcaca</systemitem> – Libreria Color ASCII Art +</title> + +<para> +La libreria <ulink url="http://sam.zoy.org/projects/libcaca/"><systemitem class="library">libcaca</systemitem></ulink> +è una libreria grafica che emette testo al posto di pixel, indi può funzionare +su schede video più vecchie o su terminali di testo. Non è dissimile dalla +famosa libreria <systemitem class="library">AAlib</systemitem>. +<systemitem class="library">libcaca</systemitem> ha bisogno di un terminale per +poter funzionare, perciò dovrebbe funzionare su tutti i sistemi Unix (incluso +Mac OS X) usando la libreria <systemitem class="library">slang</systemitem> +ovvero la libreria <systemitem class="library">ncurses</systemitem>, sotto DOS +usando la libreria <systemitem class="library">conio.h</systemitem>, e nei +sistemi Windows usando <systemitem class="library">slang</systemitem> o +<systemitem class="library">ncurses</systemitem> (tramite l'emulazione Cygwin) +oppure <systemitem class="library">conio.h</systemitem>. Se +<filename>./configure</filename> rileva la presenza di +<systemitem class="library">libcaca</systemitem>, il driver di uscita video per +caca verrà compilato. +</para> + +<itemizedlist> +<title>Le differenze rispetto ad <systemitem class="library">AAlib</systemitem> + sono le seguenti:</title> +<listitem><para> + 16 colori disponibili per l'emissione a caratteri (256 coppie di colori) +</para></listitem> +<listitem><para> + dithering del colore dell'immagine +</para></listitem> +</itemizedlist> + +<itemizedlist> +<title>Ma <systemitem class="library">libcaca</systemitem> ha anche le seguenti + limitazioni:</title> +<listitem><para> + nessun supporto per luminosià, contrasto, gamma +</para></listitem> +</itemizedlist> + +<para> +Puoi utilizzare alcuni tasti nella finestra caca per modificare le opzioni di +renderizzazione: +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Chiave</entry><entry>Azione</entry></row> +</thead> +<tbody> +<row><entry><keycap>d</keycap></entry><entry> + Attiva/disattiva il metodo di dithering di + <systemitem class="library">libcaca</systemitem>. +</entry></row> +<row><entry><keycap>a</keycap></entry><entry> + Attiva/disattiva l'antialias di + <systemitem class="library">libcaca</systemitem>. +</entry></row> +<row><entry><keycap>b</keycap></entry><entry> + Attiva/disattiva lo sfondo di + <systemitem class="library">libcaca</systemitem>. +</entry></row> +</tbody> +</tgroup> +</informaltable> + +<variablelist> +<title><systemitem class="library">libcaca</systemitem> terrà anche conto di + alcune variabili d'ambiente:</title> +<varlistentry> + <term><option>CACA_DRIVER</option></term> + <listitem><para> + Imposta il driver caca richiesto. Per es. ncurses, slang, x11. + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>CACA_GEOMETRY (solo X11)</option></term> + <listitem><para> + Specifica il numero di righe e colonne. Per es. 128x50. + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>CACA_FONT (solo X11)</option></term> + <listitem><para> + Specifica il font da usare. Per es. fixed, nexus. + </para></listitem> +</varlistentry> +</variablelist> + +<para> +Usa l'opzione <option>-framedrop</option> se il tuo computer non è abbastanza +veloce per renderizzare tutti i fotogrammi. +</para> + +</sect1> + +<!-- ********** --> + +<sect1 id="vesa"> +<title>VESA - uscita attraverso il VESA BIOS</title> + +<para> +Questo driver è stato progettato ed introdotto come un +<emphasis role="bold">driver generico</emphasis> per qualsiasi scheda video che +abbia un BIOS compatibile con VESA VBE 2.0. Un altro vantaggio di questo driver +è che cerca di attivare l'uscita TV. +La <citetitle>VESA BIOS EXTENSION (VBE) Versione 3.0 Data: 16 settembre +1998</citetitle> (pagina 70) dice: +</para> + +<!-- TODO: try to find an 'official' translation --> +<blockquote> +<formalpara><title>Dual-Controller Designs</title> +<para> +VBE 3.0 supports the dual-controller design by assuming that since both +controllers are typically provided by the same OEM, under control of a +single BIOS ROM on the same graphics card, it is possible to hide the fact +that two controllers are indeed present from the application. This has the +limitation of preventing simultaneous use of the independent controllers, +but allows applications released before VBE 3.0 to operate normally. The +VBE Function 00h (Return Controller Information) returns the combined +information of both controllers, including the combined list of available +modes. When the application selects a mode, the appropriate controller is +activated. Each of the remaining VBE functions then operates on the active +controller. +</para> +</formalpara> +</blockquote> + +<para> +Perciò usando questo driver hai qualche possibilità di far funzionare +l'uscita TV (si presume che spesso l'uscita TV sia almeno un'uscita a sè +stante). +</para> + +<itemizedlist spacing="compact"> +<title>VANTAGGI</title> +<listitem><para> + Puoi riuscire a guardare film <emphasis role="bold">anche se Linux non + riconosce</emphasis> il tuo hardware grafico. +</para></listitem> +<listitem><para> + Non ti serve avere alcuna cosa relativa alla grafica (come X11 (AKA XFree86), + fbdev e così via) sul tuo Linux. Questo driver può venir utilizzato dalla + <emphasis role="bold">modalità testo</emphasis>. +</para></listitem> +<listitem><para> + Hai qualche possibilità di avere l'<emphasis role="bold">uscita TV + funzionante</emphasis> (per le schede ATI perlomeno è così). +</para></listitem> +<listitem><para> + Questo driver chiama la funzione <function>int 10h</function> percui non è + un emulatore - fa riferimento a cose <emphasis role="bold">reali</emphasis> + del BIOS <emphasis role="bold">reale</emphasis> in + <emphasis>modalità reale</emphasis> (attualmente in modalità vm86). +</para></listitem> +<listitem><para> + Con esso puoi usare VIDIX, potendo ottenere contemporaneamente un'uscita + video accellerata <emphasis role="bold">e</emphasis> e l'uscita TV! + (consigliato per schede ATI) + </para></listitem> +<listitem><para> + Se hai VESA VBE 3.0+ e hai specificato in qualche dove + <option>monitor-hfreq, monitor-vfreq, monitor-dotclock</option> (nel file di + configurazione o dalla riga comando) otterrai la massima frequenza di + aggiornamento possibile (usando formule generiche di temporizzazione). + Per abilitare questa funzionalità devi specificare + <emphasis role="bold">tutte</emphasis> le opzioni per il tuo monitor. +</para></listitem> +</itemizedlist> + +<itemizedlist spacing="compact"> +<title>SVANTAGGI</title> +<listitem><para> + Funziona solo su <emphasis role="bold">sistemi x86</emphasis>. +</para></listitem> +<listitem><para> + Può essere usato solo da <systemitem class="username">root</systemitem>. +</para></listitem> +<listitem><para> + Attualmente è disponibile solo per <emphasis role="bold">Linux</emphasis>. +</para></listitem> +</itemizedlist> + +<important><para> +Non usare questo driver con <emphasis role="bold">GCC 2.96</emphasis>! +Non funzionerà! +</para></important> + +<variablelist> +<title>OPZIONI DELLA RIGA COMANDO DISPONIBILI PER VESA</title> +<varlistentry> + <term><option>-vo vesa:<replaceable>opzioni</replaceable></option></term> + <listitem><para> + attualmente riconosciute: <literal>dga</literal> per forzare la modalità + dga e <literal>nodga</literal> per disabilitarla. In modalità dga puoi + abilitare il doppio buffering con l'opzione <option>-double</option>. + Nota: puoi omettere questi parametri per abilitare + l'<emphasis role="bold">auto-rilevazione</emphasis> della modalità dga. + </para></listitem> +</varlistentry> +</variablelist> + +<itemizedlist spacing="compact"> +<title>PROBLEMI CONOSCIUTI E SOLUZIONI</title> +<listitem><para> + Se hai dei font <emphasis role="bold">NLS</emphasis> installati sulla tua + macchina Linux ed utilizzi il driver VESA in modalità testo, allora dopo + essere uscito da<application>MPlayer</application> avrai i + <emphasis role="bold">font ROM</emphasis> caricati al posto di quelli locali. + Puoi ricaricare i font locali usando lo strumento + <command>setsysfont</command> per Mandrake/Mandriva, ad esempio + (<emphasis role="bold">consiglio</emphasis>: lo stesso strumento viene + usato per la localizzazione di fbdev). +</para></listitem> +<listitem><para> + Alcuni <emphasis role="bold">driver grafici per Linux</emphasis> non + modificano nella memoria DOS la + <emphasis role="bold">modalità BIOS</emphasis> attiva. + Per cui se hai questo problema - usa sempre il driver VESA dalla + <emphasis role="bold">modalità testo</emphasis>. Altrimenti verrà + comunque attivata la modalità testo (#03) e dovrai riavviare il tuo + computer. +</para></listitem> +<listitem><para> + Spesso dopo aver dismesso il driver VESA ottieni uno schermo + <emphasis role="bold">nero</emphasis>. Per riportare il tuo schermo allo + stato originario - salta semplicemente ad unìaltra console (premendo + <keycombo><keycap>Alt</keycap><keycap>F<x></keycap></keycombo>) poi + ritorna alla console precedente allo stesso modo. +</para></listitem> +<listitem><para> + Per avere <emphasis role="bold">l'uscita TV funzionante</emphasis> devi avere + il connettore TV collegato prima di avviare il tuo PC, visto che il BIOS + video si inizializza solo una volta durante il passaggio POST. +</para></listitem> +</itemizedlist> +</sect1> + +<!-- ********** --> + +<sect1 id="x11"> +<title>X11</title> + +<para> +Avoid if possible. Outputs to X11 (uses shared memory extension), with no +hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but +still slow) software scaling, use the options <option>-fs -zoom</option>. +Most cards have hardware scaling support, use the <option>-vo xv</option> +output for them, or <option>-vo xmga</option> for Matrox cards. +</para> + +<para> +The problem is that most cards' driver doesn't support hardware +acceleration on the second head/TV. In those cases, you see green/blue +colored window instead of the movie. This is where this driver comes in +handy, but you need powerful CPU to use software scaling. Don't use the SDL +driver's software output+scaler, it has worse image quality! +</para> + +<para> +Software scaling is very slow, you better try changing video modes instead. +It's very simple. See the <link linkend="dga-modelines">DGA section's +modelines</link>, and insert them into your <filename>XF86Config</filename>. + +<itemizedlist spacing="compact"> +<listitem><para> + If you have XFree86 4.x.x: use the <option>-vm</option> option. It will + change to a resolution your movie fits in. If it doesn't: +</para></listitem> +<listitem><para> + With XFree86 3.x.x: you have to cycle through available resolutions + with the + <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Keypad +</keycap></keycombo> + and + <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Keypad -</keycap></keycombo> + keys. +</para></listitem> +</itemizedlist> +</para> + +<para> +If you can't find the modes you inserted, browse XFree86's output. Some +drivers can't use low pixelclocks that are needed for low resolution +video modes. +</para> +</sect1> + +<!-- ********** --> + +<sect1 id="vidix"> +<title>VIDIX</title> + +<formalpara><title>PREAMBLE</title> +<para> +<acronym>VIDIX</acronym> is the abbreviation for +<emphasis role="bold">VID</emphasis>eo +<emphasis role="bold">I</emphasis>nterface +for *ni<emphasis role="bold">X</emphasis>. +VIDIX was designed and introduced as an interface for fast user-space drivers +providing such video performance as mga_vid does for Matrox cards. It's also +very portable. +</para> +</formalpara> + +<para> +This interface was designed as an attempt to fit existing video +acceleration interfaces (known as mga_vid, rage128_vid, radeon_vid, +pm3_vid) into a fixed scheme. It provides a high level interface to chips +which are known as BES (BackEnd scalers) or OV (Video Overlays). It doesn't +provide low level interface to things which are known as graphics servers. +(I don't want to compete with X11 team in graphics mode switching). I.e. +main goal of this interface is to maximize the speed of video playback. +</para> + +<itemizedlist spacing="compact"> +<title>USAGE</title> +<listitem><para> + You can use standalone video output driver: <option>-vo xvidix</option>. + This driver was developed as X11's front end to VIDIX technology. It + requires X server and can work only under X server. Note that, as it directly + accesses the hardware and circumvents the X driver, pixmaps cached in the + graphics card's memory may be corrupted. You can prevent this by limiting + the amount of video memory used by X with the XF86Config option "VideoRam" + in the device section. You should set this to the amount of memory installed + on your card minus 4MB. If you have less than 8MB of video ram, you can use + the option "XaaNoPixmapCache" in the screen section instead. +</para></listitem> +<listitem> + <para> + There is a console VIDIX driver: <option>-vo cvidix</option>. + This requires a working and initialized framebuffer for most cards (or else + you'll just mess up the screen), and you'll have a similar effect as with + <option>-vo mga</option> or <option>-vo fbdev</option>. nVidia cards however + are able to output truly graphical video on a real text console. See the + <link linkend="vidix-nvidia">nvidia_vid</link> section for more information. + To get rid of text on the borders and the blinking cursor, try something like + </para> + + <screen>setterm -cursor off > /dev/tty9</screen> + + <para> + (assuming <systemitem>tty9</systemitem> is unused so far) and then + switch to <systemitem>tty9</systemitem>. + On the other hand, <option>-colorkey 0</option> should give you a video + running in the "background", though this depends on the colorkey + functionality to work right. + </para> +</listitem> +<listitem><para> + You can use VIDIX subdevice which was applied to several video output + drivers, such as: <option>-vo vesa:vidix</option> + (<emphasis role="bold">Linux only</emphasis>) and + <option>-vo fbdev:vidix</option>. +</para></listitem> +</itemizedlist> + +<para> +Indeed it doesn't matter which video output driver is used with +<emphasis role="bold">VIDIX</emphasis>. +</para> + +<itemizedlist spacing="compact"> +<title>REQUIREMENTS</title> +<listitem><para> + Video card should be in graphics mode (except nVidia cards with the + <option>-vo cvidix</option> output driver). +</para></listitem> +<listitem><para> + <application>MPlayer</application>'s video output driver should know + active video mode and be able to tell to VIDIX subdevice some video + characteristics of server. +</para></listitem> +</itemizedlist> + +<formalpara><title>USAGE METHODS</title> +<para> +When VIDIX is used as <emphasis role="bold">subdevice</emphasis> (<option>-vo +vesa:vidix</option>) then video mode configuration is performed by video +output device (<emphasis role="bold">vo_server</emphasis> in short). Therefore you can +pass into command line of <application>MPlayer</application> the same keys +as for vo_server. In addition it understands <option>-double</option> key +as globally visible parameter. (I recommend using this key with VIDIX at +least for ATI's card). As for <option>-vo xvidix</option>, currently it +recognizes the following options: <option>-fs -zoom -x -y -double</option>. +</para> +</formalpara> + +<para> +Also you can specify VIDIX's driver directly as third subargument in +command line: +<screen> +mplayer -vo xvidix:mga_vid.so -fs -zoom -double <replaceable>file.avi</replaceable> +</screen> +or +<screen> +mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 <replaceable>file.avi</replaceable> +</screen> +But it's dangerous, and you shouldn't do that. In this case given driver +will be forced and result is unpredictable (it may +<emphasis role="bold">freeze</emphasis> your computer). You should do that +ONLY if you are absolutely sure it will work, and +<application>MPlayer</application> doesn't do it automatically. Please tell +about it to the developers. The right way is to use VIDIX without arguments +to enable driver autodetection. +</para> + +<para> +Since VIDIX requires direct hardware access you can either run it as root +or set the SUID bit on the <application>MPlayer</application> binary +(<emphasis role="bold">Warning: This is a security risk!</emphasis>). +Alternatively, you can use a special kernel module, like this: +</para> + +<procedure> +<step><para> + Download the + <ulink url="http://www.arava.co.il/matan/svgalib/">development version</ulink> + of svgalib (for example 1.9.17), <emphasis role="bold">OR</emphasis> + download a version made by Alex especially for usage with + <application>MPlayer</application> (it doesn't need the svgalib source to + compile) from + <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/svgalib/svgalib_helper-1.9.17-mplayer.tar.bz2">here</ulink>. +</para></step> +<step><para> + Compile the module in the + <filename class="directory">svgalib_helper</filename> directory (it can be + found inside the + <filename class="directory">svgalib-1.9.17/kernel/</filename> directory if + you've downloaded the source from the svgalib site) and insmod it. +</para></step> +<step><para> + To create the necessary devices in the + <filename class="directory">/dev</filename> directory, do a + <screen>make device</screen> in the + <filename class="directory">svgalib_helper</filename> dir, as root. +</para></step> +<step><para> + Move the <filename class="directory">svgalib_helper</filename> directory to + the <filename class="directory">vidix</filename> subdirectory of the + <application>MPlayer</application> source tree. +</para></step> +<step><para> + Remove the comment before the CFLAGS line containing the "svgalib_helper" + string from <filename class="directory">vidix/Makefile</filename>. +</para></step> +<step><para> + Recompile. +</para></step> +</procedure> + + +<sect2 id="vidix-ati"> +<title>ATI cards</title> + +<para> +Currently most ATI cards are supported natively, from Mach64 to the +newest Radeons. +</para> + +<para> +There are two compiled binaries: <filename>radeon_vid</filename> for Radeon and +<filename>rage128_vid</filename> for Rage 128 cards. You may force one or let +the VIDIX system autoprobe all available drivers. +</para> +</sect2> + + +<sect2 id="vidix-mga"> +<title>Matrox cards</title> + +<para> +Matrox G200, G400, G450 and G550 have been reported to work. +</para> + +<para> +The driver supports video equalizers and should be nearly as fast as the +<link linkend="mga_vid">Matrox framebuffer</link> +</para> +</sect2> + + +<sect2 id="vidix-trident"> +<title>Trident cards</title> + +<para> +There is a driver available for the Trident Cyberblade/i1 chipset, which +can be found on VIA Epia motherboards. +</para> + +<para> +The driver was written and is maintained by +<ulink url="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">Alastair M. Robinson</ulink>. +</para> +</sect2> + + +<sect2 id="vidix-3dlabs"> +<title>3DLabs cards</title> + +<para> +Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, no one +has tested it, so reports are welcome. +</para> +</sect2> + + +<sect2 id="vidix-nvidia"> +<title>nVidia cards</title> + +<para> +An unique feature of the nvidia_vid driver is its ability to display video on +<emphasis role="bold">plain, pure, text-only console</emphasis> - with no +framebuffer or X magic whatsoever. For this purpose, we'll have to use the +<option>cvidix</option> video output, as the following example shows: +<screen>mplayer -vo cvidix <replaceable>example.avi</replaceable></screen> +</para> +</sect2> + + +<sect2 id="vidix-sis"> +<title>SiS cards</title> + +<para> +This is very experimental code, just like nvidia_vid. +</para> + +<para> +It's been tested on SiS 650/651/740 (the most common chipsets used in the +SiS versions of the "Shuttle XPC" barebones boxes out there) +</para> + +<para> +Reports awaited! +</para> +</sect2> +</sect1> + +<!-- ********** --> + +<sect1 id="directfb"> +<title>DirectFB</title> + +<blockquote><para> +"DirectFB is a graphics library which was designed with embedded systems +in mind. It offers maximum hardware accelerated performance at a minimum +of resource usage and overhead." - quoted from +<ulink url="http://www.directfb.org"/> +</para></blockquote> + +<para>I'll exclude DirectFB features from this section.</para> + +<para> +Though <application>MPlayer</application> is not supported as a "video +provider" in DirectFB, this output driver will enable video playback +through DirectFB. It will - of course - be accelerated, on my Matrox G400 +DirectFB's speed was the same as XVideo. +</para> + +<para> +Always try to use the newest version of DirectFB. You can use DirectFB options +on the command line, using the <option>-dfbopts</option> option. Layer +selection can be done by the subdevice method, e.g.: +<option>-vo directfb:2</option> (layer -1 is default: autodetect) +</para> +</sect1> + +<!-- ********** --> + +<sect1 id="dfbmga"> +<title>DirectFB/Matrox (dfbmga)</title> + +<para> +Please read the <link linkend="directfb">main DirectFB</link> section for +general information. +</para> + +<para> +This video output driver will enable CRTC2 (on the second head) on Matrox +G400/G450/G550 cards, displaying video +<emphasis role="bold">independent</emphasis> of the first head. +</para> + +<para> +Ville Syrjala's has a +<ulink url="http://www.sci.fi/~syrjala/directfb/Matrox_TV-out_README.txt">README</ulink> +and a +<ulink url="http://www.sci.fi/~syrjala/directfb/matrox-tv-out-howto">HOWTO</ulink> +on his homepage that explain how to make DirectFB TV output run on Matrox cards. +</para> + +<note><para> +the first DirectFB version with which we could get this working was +0.9.17 (it's buggy, needs that <systemitem>surfacemanager</systemitem> +patch from the URL above). Porting the CRTC2 code to +<link linkend="mga_vid">mga_vid</link> has been planned for years, +<ulink url="../../tech/patches.txt">patches</ulink> are welcome. +</para></note> +</sect1> + + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + +<sect1 id="mpeg_decoders"> +<title>MPEG decoders</title> + +<sect2 id="dvb"> +<title>DVB output and input</title> + +<para> +<application>MPlayer</application> supports cards with the Siemens DVB chipset +from vendors like Siemens, Technotrend, Galaxis or Hauppauge. The latest DVB +drivers are available from the +<ulink url="http://www.linuxtv.org">Linux TV site</ulink>. +If you want to do software transcoding you should have at least a 1GHz CPU. +</para> + +<para> +Configure should detect your DVB card. If it did not, force detection with +<screen>./configure --enable-dvb</screen> +If you have ost headers at a non-standard path, set the path with +<screen> +./configure --with-extraincdir=<replaceable>DVB source directory</replaceable>/ost/include +</screen> +Then compile and install as usual.</para> + +<formalpara><title>USAGE</title> +<para> +Hardware decoding of streams containing MPEG-1/2 video and/or MPEG audio can be done with this +command: +<screen> +mplayer -ao mpegpes -vo mpegpes <replaceable>file.mpg|vob</replaceable> +</screen> +</para> +</formalpara> + +<para> +Decoding of any other type of video stream requires transcoding to MPEG-1, thus it's slow +and may not be worth the trouble, especially if your computer is slow. +It can be achieved using a command like this: +<screen> +mplayer -ao mpegpes -vo mpegpes <replaceable>yourfile.ext</replaceable> +mplayer -ao mpegpes -vo mpegpes -vf expand <replaceable>yourfile.ext</replaceable> +</screen></para> + +<para> +Note that DVB cards only support heights 288 and 576 for PAL or 240 and 480 for +NTSC. You <emphasis role="bold">must</emphasis> rescale for other heights by +adding <option>scale=width:height</option> with the width and height you want +to the <option>-vf</option> option. DVB cards accept various widths, like 720, +704, 640, 512, 480, 352 etc. and do hardware scaling in horizontal direction, +so you do not need to scale horizontally in most cases. +For a 512x384 (aspect 4:3) MPEG-4 (DivX) try: +<screen>mplayer -ao mpegpes -vo mpegpes -vf scale=512:576</screen> +</para> + +<para> +If you have a widescreen movie and you do not want to scale it to full height, +you can use the <option>expand=w:h</option> filter to add black bands. To view a +640x384 MPEG-4 (DivX), try: +<screen> +mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para> +If your CPU is too slow for a full size 720x576 MPEG-4 (DivX), try downscaling: +<screen> +mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para>If speed does not improve, try vertical downscaling, too: +<screen> +mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para> +For OSD and subtitles use the OSD feature of the expand filter. So, instead of +<option>expand=w:h</option> or <option>expand=w:h:x:y</option>, use +<option>expand=w:h:x:y:1</option> (the 5th parameter <option>:1</option> +at the end will enable OSD rendering). You may want to move the image up a bit +to get a bigger black zone for subtitles. You may also want to move subtitles +up, if they are outside your TV screen, use the +<option>-subpos <0-100></option> +option to adjust this (<option>-subpos 80</option> is a good choice). +</para> + +<para> +In order to play non-25fps movies on a PAL TV or with a slow CPU, add the +<option>-framedrop</option> option. +</para> + +<para> +To keep the aspect ratio of MPEG-4 (DivX) files and get the optimal scaling +parameters (hardware horizontal scaling and software vertical scaling +while keeping the right aspect ratio), use the new dvbscale filter: +<screen> +for a 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1 +for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1 +</screen> +</para> + +<formalpara><title>Digital TV (DVB input module)</title> +<para>You can use your DVB card for watching Digital TV.</para> +</formalpara> + +<para> +You should have the programs <command>scan</command> and +<command>szap/tzap/czap/azap</command> installed; they are all included in +the drivers package. +</para> + +<para> +Verify that your drivers are working properly with a program such as +<ulink url="http://sf.net/projects/dvbtools/"><command>dvbstream</command></ulink> +(that is the base of the DVB input module). +</para> + +<para> +Now you should compile a <filename>~/.mplayer/channels.conf</filename> +file, with the syntax accepted by <command>szap/tzap/czap/azap</command>, or +have <command>scan</command> compile it for you. +</para> + +<para> +If you have more than one card type (e.g. Satellitar, Terrestrial, Cable and ATSC) +you can save your channels files as +<filename>~/.mplayer/channels.conf.sat</filename>, +<filename>~/.mplayer/channels.conf.ter</filename>, +<filename>~/.mplayer/channels.conf.cbl</filename>, +and <filename>~/.mplayer/channels.conf.atsc</filename>, +respectively, so as to implicitly hint <application>MPlayer</application> +to use these files rather than <filename>~/.mplayer/channels.conf</filename>, +and you only need to specify which card to use. +</para> + +<para> +Make sure that you have have <emphasis>only</emphasis> Free to Air +channels in your <filename>channels.conf</filename> file, or +<application>MPlayer</application> will try to skip to the next visible one, +but it may take long if there are many consecutive encrypted channels. +</para> + +<para> +In your audio and video fields you can use an extended syntax: +<option>...:pid[+pid]:...</option> (for a maximum of 6 pids each); +in this case <application>MPlayer</application> will include in the +stream all the indicated pids, plus pid 0 (that contains the PAT). +You are encouraged to include in each row the PMT pid for the +corresponding channel (if you know it). +You can also specify 8192, this will select all pids on this frequency +and you can then switch between the programs with TAB. +This might need more bandwidth, though cheap cards always transfer all +channels at least to the kernel so it does not make much of a difference +for these. +Other possible uses are: televideo pid, second audio track, etc. +</para> + +<para> +If <application>MPlayer</application> complains frequently about +<screen>Too many video/audio packets in the buffer</screen> or +if you notice a growing desynchronization between audio and +video try to use the libavformat MPEG-TS demuxer by adding +<option>-demuxer lavf -lavfdopts probesize=128</option> +to your command line. +</para> + +<para> +To show the first of the channels present in your list, run +<screen>mplayer dvb://</screen> +</para> + +<para> +If you want to watch a specific channel, such as R1, run +<screen>mplayer dvb://<replaceable>R1</replaceable></screen> +</para> + +<para> +If you have more than one card you also need to specify the number of the card +where the channel is visible (e.g. 2) with the syntax: +<screen>mplayer dvb://<replaceable>2@R1</replaceable></screen> +</para> + +<para> +To change channels press the <keycap>h</keycap> (next) and +<keycap>k</keycap> (previous) keys, or use the +<link linkend="osdmenu">OSD menu</link>. +</para> + +<para> +If your <filename>~/.mplayer/menu.conf</filename> contains a +<literal><dvbsel></literal> entry, such as the one in the example +file <filename>etc/dvb-menu.conf</filename> (that you can use to overwrite +<filename>~/.mplayer/menu.conf</filename>), the main menu will show a +sub-menu entry that will permit you to choose one of the channels present +in your <filename>channels.conf</filename>, possibly preceded by a menu +with the list of cards available if more than one is usable by +<application>MPlayer</application>. +</para> + +<para> +If you want to save a program to disk you can use +<screen> +mplayer -dumpfile <replaceable>r1.ts</replaceable> -dumpstream dvb://<replaceable>R1</replaceable> +</screen> +</para> + +<para> +If you want to record it in a different format (re-encoding it) instead +you can run a command such as +<screen> +mencoder -o <replaceable>r1.avi</replaceable> -ovc xvid -xvidencopts bitrate=800 \ + -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://<replaceable>R1</replaceable> +</screen> +</para> + +<para> +Read the man page for a list of options that you can pass to the +DVB input module. +</para> + +<formalpara><title>FUTURE</title> +<para> +If you have questions or want to hear feature announcements and take part in +discussions on this subject, join our +<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</ulink> +mailing list. Please remember that the list language is English. +</para> +</formalpara> + +<para> +In the future you may expect the ability to display OSD and subtitles using +the native OSD feature of DVB cards, as well as more fluent playback of +non-25fps movies and realtime transcoding between MPEG-2 and MPEG-4 (partial +decompression). +</para> +</sect2> + +<!-- ********** --> + +<sect2 id="dxr2"> +<title>DXR2</title> + +<para> +<application>MPlayer</application> supports hardware accelerated playback +with the Creative DXR2 card. +</para> + +<para> +First of all you will need properly installed DXR2 drivers. You can find +the drivers and installation instructions at the +<ulink url="http://dxr2.sf.net/">DXR2 Resource Center</ulink> site. +</para> + +<variablelist><title>USAGE</title> +<varlistentry> + <term><option>-vo dxr2</option></term> + <listitem><para>Enable TV output.</para></listitem> +</varlistentry> +<varlistentry> + <term><option>-vo dxr2:x11</option> or <option>-vo dxr2:xv</option></term> + <listitem><para>Enable Overlay output in X11.</para></listitem> +</varlistentry> +<varlistentry> + <term><option>-dxr2 <option1:option2:...></option></term> + <listitem><para> + This option is used to control the DXR2 driver. + </para></listitem> +</varlistentry> +</variablelist> + +<para> +The overlay chipset used on the DXR2 is of pretty bad quality but the +default settings should work for everybody. The OSD may be usable with the +overlay (not on TV) by drawing it in the colorkey. With the default colorkey +settings you may get variable results, usually you will see the colorkey +around the characters or some other funny effect. But if you properly adjust +the colorkey settings you should be able to get acceptable results. +</para> + +<para>Please see the man page for available options.</para> +</sect2> + +<!-- ********** --> + +<sect2 id="dxr3"> +<title>DXR3/Hollywood+</title> + +<para> +<application>MPlayer</application> supports hardware accelerated playback +with the Creative DXR3 and Sigma Designs Hollywood Plus cards. These cards +both use the em8300 MPEG decoder chip from Sigma Designs. +</para> + +<para> +First of all you will need properly installed DXR3/H+ drivers, version 0.12.0 +or later. You can find the drivers and installation instructions at the +<ulink url="http://dxr3.sf.net/">DXR3 & Hollywood Plus for Linux</ulink> +site. <filename>configure</filename> should detect your card automatically, +compilation should go without problems. +</para> + +<!-- FIXME: find a more clear presentation --> +<variablelist> +<title>USAGE</title> +<varlistentry> +<term><option>-vo dxr3:prebuf:sync:norm=x:<replaceable>device</replaceable></option></term> +<listitem><para> +<option>overlay</option> activates the overlay instead of TVOut. It requires +that you have a properly configured overlay setup to work right. The easiest +way to configure the overlay is to first run autocal. Then run mplayer with +dxr3 output and without overlay turned on, run dxr3view. In dxr3view you can +tweak the overlay settings and see the effects in realtime, perhaps this feature +will be supported by the <application>MPlayer</application> GUI in the future. +When overlay is properly set up you will no longer need to use dxr3view. +<option>prebuf</option> turns on prebuffering. Prebuffering is a feature of the +em8300 chip that enables it to hold more than one frame of video at a time. +This means that when you are running with prebuffering +<application>MPlayer</application> will try to keep the video buffer filled +with data at all times. +If you are on a slow machine <application>MPlayer</application> will probably +use close to, or precisely 100% of CPU. +This is especially common if you play pure MPEG streams +(like DVDs, SVCDs a.s.o.) since <application>MPlayer</application> will not have +to reencode it to MPEG it will fill the buffer very fast. +With prebuffering video playback is <emphasis role="bold">much</emphasis> +less sensitive to other programs hogging the CPU, it will not drop frames unless +applications hog the CPU for a long time. +When running without prebuffering the em8300 is much more sensitive to CPU load, +so it is highly suggested that you turn on <application>MPlayer</application>'s +<option>-framedrop</option> option to avoid further loss of sync. +<option>sync</option> will turn on the new sync-engine. This is currently an +experimental feature. With the sync feature turned on the em8300's internal +clock will be monitored at all times, if it starts to deviate from +<application>MPlayer</application>'s clock it will be reset causing the em8300 +to drop any frames that are lagging behind. +<option>norm=x</option> will set the TV norm of the DXR3 card without the need +for external tools like em8300setup. Valid norms are 5 = NTSC, 4 = PAL-60, +3 = PAL. Special norms are 2 (auto-adjust using PAL/PAL-60) and 1 (auto-adjust +using PAL/NTSC) because they decide which norm to use by looking at the frame +rate of the movie. norm = 0 (default) does not change the current norm. +<option><replaceable>device</replaceable></option> = device number to use if +you have more than one em8300 card. Any of these options may be left out. +<option>:prebuf:sync</option> seems to work great when playing MPEG-4 (DivX) +movies. People have reported problems using the prebuf option when playing +MPEG-1/2 files. +You might want to try running without any options first, if you have sync +problems, or DVD subtitle problems, give <option>:sync</option> a try. +</para></listitem> +</varlistentry> + +<varlistentry> + <term><option>-ao oss:/dev/em8300_ma-<replaceable>X</replaceable></option></term> + <listitem><para> + For audio output, where <replaceable>X</replaceable> is the device number + (0 if one card). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><option>-af resample=<replaceable>xxxxx</replaceable></option></term> + <listitem><para> + The em8300 cannot play back samplerates lower than 44100Hz. If the sample + rate is below 44100Hz select either 44100Hz or 48000Hz depending on which + one matches closest. I.e. if the movie uses 22050Hz use 44100Hz as + 44100 / 2 = 22050, if it is 24000Hz use 48000Hz as 48000 / 2 = 24000 + and so on. + This does not work with digital audio output (<option>-ac hwac3</option>). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><option>-vf lavc</option></term> + <listitem><para> + To watch non-MPEG content on the em8300 (i.e. MPEG-4 (DivX) or RealVideo) + you have to specify an MPEG-1 video filter such as + <systemitem class="library">libavcodec</systemitem> (lavc). + See the man page for further info about <option>-vf lavc</option>. + Currently there is no way of setting the fps of the em8300 which means that + it is fixed to 30000/1001 fps. + Because of this it is highly recommended that you use + <option>-vf lavc=<replaceable>quality</replaceable>:25</option> + especially if you are using prebuffering. Then why 25 and not 30000/1001? + Well, the thing is that when you use 30000/1001 the picture becomes a bit + jumpy. + The reason for this is unknown to us. + If you set it to somewhere between 25 and 27 the picture becomes stable. + For now all we can do is accept this for a fact. + </para></listitem> +</varlistentry> + +<varlistentry> + <term><option>-vf expand=-1:-1:-1:-1:1</option></term> + <listitem><para> + Although the DXR3 driver can put some OSD onto the MPEG-1/2/4 video, it has + much lower quality than <application>MPlayer</application>'s traditional OSD, + and has several refresh problems as well. The command line above will firstly + convert the input video to MPEG-4 (this is mandatory, sorry), then apply an + expand filter which won't expand anything (-1: default), but apply the normal + OSD onto the picture (that's what the "1" at the end does). + </para></listitem> +</varlistentry> + +<varlistentry> + <term><option>-ac hwac3</option></term> + <listitem><para> + The em8300 supports playing back AC3 audio (surround sound) through the + digital audio output of the card. See the <option>-ao oss</option> option + above, it must be used to specify the DXR3's output instead of a sound card. + </para></listitem> +</varlistentry> +</variablelist> +</sect2> +</sect1> + + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + +<sect1 id="other"> +<title>Other visualization hardware</title> + +<sect2 id="zr"> +<title>Zr</title> + +<para> +This is a display-driver (<option>-vo zr</option>) for a number of MJPEG +capture/playback cards (tested for DC10+ and Buz, and it should work for the +LML33, the DC10). The driver works by encoding the frame to JPEG and then +sending it to the card. For the JPEG encoding +<systemitem class="library">libavcodec</systemitem> +is used, and required. With the special <emphasis>cinerama</emphasis> mode, +you can watch movies in true wide screen provided that you have two beamers +and two MJPEG cards. Depending on resolution and quality settings, this driver +may require a lot of CPU power, remember to specify <option>-framedrop</option> +if your machine is too slow. Note: My AMD K6-2 350MHz is (with +<option>-framedrop</option>) quite adequate for watching VCD sized material and +downscaled movies. +</para> + +<para> +This driver talks to the kernel driver available at +<ulink url="http://mjpeg.sf.net"/>, so +you must get it working first. The presence of an MJPEG card is autodetected by +the <filename>configure</filename> script, if autodetection fails, force +detection with +<screen>./configure --enable-zr</screen> +</para> + +<para> +The output can be controlled by several options, a long description of the +options can be found in the man page, a short list of options can be viewed +by running +<screen>mplayer -zrhelp</screen> +</para> + +<para> +Things like scaling and the OSD (on screen display) are not handled by +this driver but can be done using the video filters. For example, suppose +that you have a movie with a resolution of 512x272 and you want to view it +fullscreen on your DC10+. There are three main possibilities, you may scale +the movie to a width of 768, 384 or 192. For performance and quality reasons, +I would choose to scale the movie to 384x204 using the fast bilinear software +scaler. The command line is +<screen> +mplayer -vo zr -sws 0 -vf scale=384:204 <replaceable>movie.avi</replaceable> +</screen> +</para> + +<para> +Cropping can be done by the <option>crop</option> filter and by this +driver itself. Suppose that a movie is too wide for display on your Buz and +that you want to use <option>-zrcrop</option> to make the movie less wide, +then you would issue the following command +<screen> +mplayer -vo zr -zrcrop 720x320+80+0 <replaceable>benhur.avi</replaceable> +</screen> +</para> + +<para> +if you want to use the <option>crop</option> filter, you would do +<screen> +mplayer -vo zr -vf crop=720:320:80:0 <replaceable>benhur.avi</replaceable> +</screen> +</para> + +<para> +Extra occurrences of <option>-zrcrop</option> invoke +<emphasis>cinerama</emphasis> mode, i.e. you can distribute the movie over +several TV's or beamers to create a larger screen. +Suppose you have two beamers. The left one is connected to your +Buz at <filename>/dev/video1</filename> and the right one is connected to +your DC10+ at <filename>/dev/video0</filename>. The movie has a resolution +of 704x288. Suppose also that you want the right beamer in black and white and +that the left beamer should have JPEG frames at quality 10, then you would +issue the following command +<screen> +mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ + -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ + <replaceable>movie.avi</replaceable> +</screen> +</para> + +<para> +You see that the options appearing before the second <option>-zrcrop</option> +only apply to the DC10+ and that the options after the second +<option>-zrcrop</option> apply to the Buz. The maximum number of MJPEG cards +participating in <emphasis>cinerama</emphasis> is four, so you can build a +2x2 vidiwall. +</para> + +<para> +Finally an important remark: Do not start or stop XawTV on the playback device +during playback, it will crash your computer. It is, however, fine to +<emphasis role="bold">FIRST</emphasis> start XawTV, +<emphasis role="bold">THEN</emphasis> start <application>MPlayer</application>, +wait for <application>MPlayer</application> +to finish and <emphasis role="bold">THEN</emphasis> stop XawTV. +</para> +</sect2> + +<!-- ********** --> + +<sect2 id="blinkenlights"> +<title>Blinkenlights</title> + +<para> +This driver is capable of playback using the Blinkenlights UDP protocol. If you +don't know what <ulink url="http://www.blinkenlights.de/">Blinkenlights</ulink> +or its successor +<ulink url="http://www.blinkenlights.de/arcade/">Arcade</ulink> +are, find it out. Although this is most probably the least used video output +driver, without a doubt it is the coolest <application>MPlayer</application> +has to offer. Just watch some of the +<ulink url="http://www.blinkenlights.de/video.en.html">Blinkenlights documentation videos</ulink>. +On the Arcade video you can see the Blinkenlights output driver in +action at 00:07:50. +</para> +</sect2> +</sect1> + + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + +<sect1 id="tvout"> +<title>TV-out support</title> + +<sect2 id="tvout-mga-g400"> +<title>Matrox G400 cards</title> + +<para> +Under Linux you have two methods to get G400 TV out working: +</para> + +<important> +<para> +for Matrox G450/G550 TV-out instructions, please see the next section! +</para> +</important> + +<variablelist> +<varlistentry> + <term>XFree86</term> + <listitem> + <para> + Using the driver and the HAL module, available from the <ulink + url="http://www.matrox.com">Matrox site</ulink>. This will give you X + on the TV. + </para> + <para> + <emphasis role="bold">This method doesn't give you accelerated playback</emphasis> + as under Windows! The second head has only YUV framebuffer, the + <emphasis>BES</emphasis> (Back End Scaler, the YUV scaler on + G200/G400/G450/G550 cards) doesn't work on it! The windows driver somehow + workarounds this, probably by using the 3D engine to zoom, and the YUV + framebuffer to display the zoomed image. If you really want to use X, use + the <option>-vo x11 -fs -zoom</option> options, but it will be + <emphasis role="bold">SLOW</emphasis>, and has + <emphasis role="bold">Macrovision</emphasis> copy protection enabled + (you can "workaround" Macrovision using this + <ulink url="http://avifile.sf.net/mgamacro.pl">perl script</ulink>). + </para> + </listitem> +</varlistentry> +<varlistentry> + <term>Framebuffer</term> + <listitem> + <para> + Using the <emphasis role="bold">matroxfb modules</emphasis> in the 2.4 + kernels. 2.2 kernels don't have the TVout feature in them, thus unusable + for this. You have to enable ALL matroxfb-specific feature during + compilation (except MultiHead), and compile them into + <emphasis role="bold">modules</emphasis>! + You'll also need I2C enabled. + </para> + + <procedure> + <step><para> + Enter <filename class="directory">TVout</filename> and type + <command>./compile.sh</command>. Install + <filename>TVout/matroxset/matroxset</filename> + somewhere into your <envar>PATH</envar>. + </para></step> + <step><para> + If you don't have <command>fbset</command> installed, put + <filename>TVout/fbset/fbset</filename> + somewhere into your <envar>PATH</envar>. + </para></step> + <step><para> + If you don't have <command>con2fb</command> installed, put + <filename>TVout/con2fb/con2fb</filename> + somewhere into your <envar>PATH</envar>. + </para></step> + <step><para> + Then enter into the <filename class="directory">TVout/</filename> + directory in the <application>MPlayer</application> source, and execute + <filename>./modules</filename> as root. Your text-mode console will + enter into framebuffer mode (no way back!). + </para></step> + <step><para> + Next, EDIT and run the <filename>./matroxtv</filename> script. This will + present you to a very simple menu. Press <keycap>2</keycap> and + <keycap>Enter</keycap>. Now you should have the same picture on your + monitor, and TV. If the TV (PAL by default) + picture has some weird stripes on it, the script wasn't able to set the + resolution correctly (to 640x512 by default). Try other resolutions + from the menu and/or experiment with fbset. + </para></step> + <step><para> + Yoh. Next task is to make the cursor on tty1 (or whatever) to + disappear, and turn off screen blanking. Execute the following + commands: + + <screen> +echo -e '\033[?25l' +setterm -blank 0<!-- + --></screen> + or + <screen> +setterm -cursor off +setterm -blank 0<!-- + --></screen> + + You possibly want to put the above into a script, and also clear the + screen. To turn the cursor back: + <screen>echo -e '\033[?25h'</screen> or + <screen>setterm -cursor on</screen> + </para></step> + <step><para> + Yeah kewl. Start movie playing with + <screen> +mplayer -vo mga -fs -screenw 640 -screenh 512 <replaceable>filename</replaceable><!-- + --></screen> + + (If you use X, now change to matroxfb with for example + <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>.) + Change <literal>640</literal> and <literal>512</literal> if you set + the resolution to other... + </para></step> + <step><para> + <emphasis role="bold">Enjoy the ultra-fast ultra-featured Matrox TV + output (better than Xv)!</emphasis> + </para></step> + </procedure> + </listitem> +</varlistentry> +</variablelist> + +<formalpara><title>Building a Matrox TV-out cable</title> +<para> +No one takes any responsibility, nor guarantee for any damage caused +by this documentation. +</para> +</formalpara> + +<formalpara><title>Cable for G400</title> +<para> +The CRTC2 connector's fourth pin is the composite video signal. The +ground are the sixth, seventh and eighth pins. (info contributed +from Balázs Rácz) +</para> +</formalpara> + +<formalpara><title>Cable for G450</title> +<para> +The CRTC2 connector's first pin is the composite video signal. The +ground are the fifth, sixth, seventh, and fifteenth (5, 6, 7, 15) +pins. (info contributed from Balázs Kerekes) +</para> +</formalpara> +</sect2> + +<!-- ********** --> + +<sect2 id="tv-out_matrox_g450"> +<title>Matrox G450/G550 cards</title> + +<para> +TV output support for these cards has only been recently introduced, and is +not yet in the mainstream kernel. +Currently the <emphasis role="bold">mga_vid</emphasis> module can't be used +AFAIK, because the G450/G550 driver works only in one configuration: the first +CRTC chip (with much more features) on the first display (on monitor), +and the second CRTC (no <emphasis role="bold">BES</emphasis> - for +explanation on BES, please see the G400 section above) on TV. So you can only +use <application>MPlayer</application>'s <emphasis>fbdev</emphasis> output +driver at the present. +</para> + +<para> +The first CRTC can't be routed to the second head currently. The author of the +kernel matroxfb driver - Petr Vandrovec - will maybe make support for this, by +displaying the first CRTC's output onto both of the heads at once, as currently +recommended for G400, see the section above. +</para> + +<para> +The necessary kernel patch and the detailed HOWTO is downloadable from +<ulink url="http://www.bglug.ca/matrox_tvout/"/> +</para> +</sect2> + +<!-- ********** --> + +<sect2 id="tvout-ati"> +<title>ATI cards</title> + +<formalpara><title>PREAMBLE</title> +<para> +Currently ATI doesn't want to support any of its TV-out chips under Linux, +because of their licensed Macrovision technology. +</para> +</formalpara> + +<itemizedlist> +<title>ATI CARDS TV-OUT STATUS ON LINUX</title> +<listitem><para> + <emphasis role="bold">ATI Mach64</emphasis>: + supported by <ulink url="http://gatos.sf.net">GATOS</ulink>. +</para></listitem> +<listitem><para> + <emphasis role="bold">ASIC Radeon VIVO</emphasis>: + supported by <ulink url="http://gatos.sf.net">GATOS</ulink>. +</para></listitem> +<listitem><para> + <emphasis role="bold">Radeon</emphasis> and <emphasis role="bold">Rage128</emphasis>: + supported by <application>MPlayer</application>! + Check <link linkend="vesa">VESA driver</link> and + <link linkend="vidix">VIDIX</link> sections. +</para></listitem> +<listitem><para> + <emphasis role="bold">Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</emphasis>: + supported by + <ulink url="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/">atitvout</ulink>. +</para></listitem> +</itemizedlist> + +<para> +On other cards, just use the <link linkend="vesa">VESA</link> driver, +without VIDIX. Powerful CPU is needed, though. +</para> + +<para> +Only thing you need to do - <emphasis role="bold">Have the TV connector +plugged in before booting your PC</emphasis> since video BIOS initializes +itself only once during POST procedure. +</para> +</sect2> + +<!-- ********** --> + +<sect2 id="tvout-nvidia"> +<title>nVidia</title> + +<para> +First, you MUST download the closed-source drivers from +<ulink url="http://nvidia.com"/>. +I will not describe the installation and configuration process because it does +not cover the scope of this documentation. +</para> + +<para> +After XFree86, XVideo, and 3D acceleration is properly working, edit your +card's Device section in the <filename>XF86Config</filename> file, according +to the following example (adapt for your card/TV): + +<programlisting> +Section "Device" + Identifier "GeForce" + VendorName "ASUS" + BoardName "nVidia GeForce2/MX 400" + Driver "nvidia" + #Option "NvAGP" "1" + Option "NoLogo" + Option "CursorShadow" "on" + + Option "TwinView" + Option "TwinViewOrientation" "Clone" + Option "MetaModes" "1024x768,640x480" + Option "ConnectedMonitor" "CRT, TV" + Option "TVStandard" "PAL-B" + Option "TVOutFormat" "Composite" +EndSection +</programlisting> +</para> + +<para> +Of course the important thing is the TwinView part. +</para> +</sect2> + +<!-- ********** --> + +<sect2 id="tvout-neomagic"> +<title>NeoMagic</title> + +<para> +The NeoMagic chip is found in a variety of laptops, some of them are equipped +with a simple analog TV encoder, some have a more advanced one. +<itemizedlist> +<listitem><para> + <emphasis role="bold">Analog encoder chip</emphasis>: + It has been reported that reliable TV out can be obtained by using + <option>-vo fbdev</option> or <option>-vo fbdev2</option>. + You need to have vesafb compiled in your kernel and pass + the following parameters on the kernel command line: + <option>append="video=vesafb:ywrap,mtrr" vga=791</option>. + You should start <application>X</application>, then switch to console mode + with e.g. + <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>. + If you fail to start <application>X</application> before running + <application>MPlayer</application> from the console, the video + becomes slow and choppy (explanations are welcome). + Login to your console, then initiate the following command: + + <screen>clear; mplayer -vo fbdev -zoom -cache 8192 dvd://</screen> + + Now you should see the movie running in console mode filling up about + half your laptop's LCD screen. To switch to TV hit + <keycombo><keycap>Fn</keycap><keycap>F5</keycap></keycombo> three times. + Tested on a Tecra 8000, 2.6.15 kernel with vesafb, ALSA v1.0.10. +</para></listitem> +<listitem> + <para> + <emphasis role="bold">Chrontel 70xx encoder chip</emphasis>: + Found in IBM Thinkpad 390E and possibly other Thinkpads or notebooks. + </para><para> + You must use <option>-vo vesa:neotv_pal</option> for PAL or + <option>-vo vesa:neotv_ntsc</option> for NTSC. + It will provide TV output function in the following 16 bpp and 8 bpp modes: + </para> + <itemizedlist> + <listitem><para>NTSC 320x240, 640x480 and maybe 800x600 too.</para></listitem> + <listitem><para>PAL 320x240, 400x300, 640x480, 800x600.</para></listitem> + </itemizedlist> + <para>Mode 512x384 is not supported in BIOS. You must scale the image + to a different resolution to activate TV out. If you can see an image on the + screen in 640x480 or in 800x600 but not in 320x240 or other smaller + resolution you need to replace two tables in <filename>vbelib.c</filename>. + See the vbeSetTV function for details. Please contact the author in this case. + </para> + <para> + Known issues: VESA-only, no other controls such as brightness, contrast, + blacklevel, flickfilter are implemented. + </para> +</listitem> +</itemizedlist> +</para> +</sect2> +</sect1> + +</chapter>