aboutsummaryrefslogtreecommitdiffhomepage
path: root/DOCS/it/video.html
blob: 4b82e87b8204a8e36376b28dbabdab08926368a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
<HTML>
<!-- Sync with english version 1.136 -->

<HEAD>
<TITLE>Video - MPlayer - Movie Player per Linux</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>

<BODY>

<H3><A NAME="video">2.3.1. Dispositivi di output video</A></H3>

<H4><A NAME="mtrr">2.3.1.1.  Configurare l' MTRR</A></H4>

<P>E' DECISAMENTE consigliato controllare se i registri MTRR sono ben configurati,
perchè possono fornire un grande aumento di prestazioni.</P>

<P>Fai un '<CODE>cat /proc/mtrr</CODE>' :</P>

<P><CODE>
--($:~)-- cat /proc/mtrr<BR>
reg00: base=0xe4000000 (3648MB), size=  16MB: write-combining, count=9<BR>
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1<BR>
</CODE></P>

<P>E' a posto, mostra la mia Matrox G400 con 16Mb di memoria. L'ho ottenuto con
XFree 4.x.x , che configura i registri MTRR automaticamente.</P>

<P>Se non ha funzionato, devi farlo manualmente. Prima, bisogna trovare l'indirizzo
di base.
Hai 3 modi per scoprirlo:</P>

<P><UL>
<LI>dai messaggi di avvio di X11, per esempio:
<P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR>
(--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI>
<LI>da /proc/pci (usa il comando lspci -v):
<P>
<CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE>
<CODE>Memory at d8000000 (32-bit, prefetchable)</CODE>
</P>
<LI>dai messaggi del driver del kernel mga_vid (usa dmesg):
<P><CODE>mga_mem_base = d8000000</CODE></P>
</UL></P>

<P>Poi troviamo la dimensione della memoria. E molto semplice, basta convertire la quantità di ram video
in esadecimale, o usare questa tabella:</P>

<TABLE BORDER=0>
<TD>&nbsp;&nbsp;</TD><TD>1 MB</TD><TD WIDTH=10%></TD><TD>0x100000</TD><TR>
<TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD><TR>
<TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD><TR>
<TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD><TR>
<TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD><TR>
<TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD><TR>
</TABLE>


<P>Conosci l'indirizzo di base e la dimensione della memoria, configuriamo i registri mtrr!
Per esempio, per la scheda Matrox di cui sopra (base=0xd8000000) con 32MB di
ram (size=0x2000000) basta eseguire:</P>


<P><CODE>&nbsp;&nbsp;echo "base=0xd8000000 size=0x2000000 type=write-combining" &gt;| /proc/mtrr</CODE></P>


<P>Non tutte le CPU supportano l'MTRR. Per esempio i più vecchi K6-2 [circa 266Mhz,
stepping 0] non supportano l'MTRR, ma gli stepping 12 si ('<CODE>cat /proc/cpuinfo</CODE>'
per controllare').</P>

<H4><A NAME="normal">2.3.1.2 Output video per normali schede video</A></H4>

<H4><A NAME="xv">2.3.1.2.1 Xv</A></H4>

<P>Sotto XFree86 4.0.2 o più recente, si possono usare le routine hardware della tua scheda
usando l'estensione XVideo. Questo è quello che usa l'opzione '-vo xv'. Inoltre,
questo driver è quello che supporta la regolazione di luminosità/contrasto/hue/etc (a meno che tu stia usando
il vecchio, lento codec DirectShow DivX, che lo supporta ovunque), vedi la pagina di
man.</P>

<P>Per farlo funzionare, assicurati delle seguenti cose:</P>
<P><UL>
<LI>Devi usare XFree86 4.0.2 o più recente (le versioni precedenti non hanno XVideo)
<LI>La tua scheda supporta l'accelerazione hardware (le schede moderne lo fanno)
<LI>X carica l'estensione XVideo, è qualcosa del genere:

<P><CODE>&nbsp;&nbsp;(II) Loading extension XVideo</CODE></P>
<P>in /var/log/XFree86.0.log</P>

<P>NOTA: questo carica solo l'estensione XFree86. In una buona installazione, questo è
sempre caricato, e non significa che il supporto XVideo _della scheda_ è caricato!</P>

<LI>La tua scheda ha il supporto Xv sotto Linux. Per vederlo, prova 'xvinfo', è
parte della distribuzione di XFree86. Dovrebbe mostrare un lungo testo, simile
a questo:
<PRE>
	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)
	(...ecc...)
</PRE>

<P>Deve supportare i formati pixel YUY2 packed, e YV12 planar per essere
utilizzabile con MPlayer.</P>

<LI>E infine, controlla se MPlayer è stato compilato col supporto 'xv'.
./configure ti dice questo.

</UL></P>

<H4><A NAME="xv_3dfx">2.3.1.2.1.1 Schede 3dfx</A></H4>

<P>I vecchi driver 3dfx avevano problemi con l'accelerazione XVideo,
non supportavano ne YUY2 ne YV12, e cose del genere. Verifica di possedere
XFree86 versione 4.2.0 o maggiore, funziona bene con YV12 e YUY2. Le versioni
precedenti, inclusa la 4.1.0 <B>vanno in crash con YV12</B>!
Se hai strani effetti con -vo xv, prova SDL (ha anche XVideo)
e guarda se aiuta. Controlla la <A HREF="#sdl">sezione SDL</A> per dettagli.</P>

<P><B>O</B>, prova il NUOVO driver -vo tdfxfb! Vedi la sezione <A HREF="#tdfxfb"">tdfxfb</A>!</P>



<H4><A NAME="xv_s3">2.3.1.2.1.2. Schede S3</A></H4>

<P>La S3 Savage3D dovrebbe funzionare bene, ma per la Savage4, usa XFree86 versione 4.0.3
o maggiore (in caso di problemi con l'immagine, prova 16bpp). Come per S3 Virge.. c'è il supporto
xv, ma la scheda stessa è molto lenta, quindi faresti meglio a rivenderla.</P>

<P><B>NOTA</B>: non è chiaro in quali modelli Savage manchi il supporto YV12,
  ed è convertito dal driver (lento). Se hai dei sospetti sulla tua scheda, prendi un nuovo driver,
  o chiedi gentilmente sulla mailing list mplayer-users mailing un driver col supporto 
  MMX/3DNow.</P>

<H4><A NAME="xv_nvidia">2.3.1.2.1.3. Schede nVidia</A></H4>

<P>nVidia non è una scelta molto buona sotto Linux (secondo NVidia, questo
<A HREF="users_against_developers.html#nvidia">non è vero</A>).. Sarai costretto ad usare
il driver binario closed-source di nVidia, disponibile sul sito di nVidia. Il driver XFree86 standard
non supporta XVideo per queste schede, a causa delle specificazioni e dei sorgenti chiusi di nVidia.</P>


<P>Per quanto ne so l'ultimo driver XFree86 contiene il supporto XVideo per
Geforce 2 e 3.</P>

<P><UL><LI>Le schede Riva128 non hanno il supporto XVideo neanche col driver di nvidia :(
Lamentati con NVidia.</UL></P>


<H4><A NAME="xv_ati">2.3.1.2.1.4. Schede ATI</A></H4>

<P>
<LI>Il <A HREF="http://gatos.sourceforge.net">driver GATOS</A> (che dovresti
usare, a meno che tu non abbia Rage128 o Radeon) ha VSYNC abilitato di default. Questo
significa che la velocità di decodifica (!) è sincronizzata con quella di refresh del monitor. Se
la riproduzione sembra essere lenta, prova a disabilitare il VSYNC in qualche modo, o regola la velocità di refresh
a n*(fps del filmato) Hz.</LI>

<LI>Radeon VE - attualmente solo il CVS di XFree86 ha un driver per questa scheda, la versione
4.1.0 no. E nessun supporto TV out. Naturalmente con MPlayer puoi felicemente
ottenere una visualizzazione <B>accelerata</B>, con o senza <B>output TV</B>, e
non servono librerie o X. Leggi le sezioni <A HREF="#vidix">VIDIX</A>.</LI>
</UL>


<H4><A NAME="xv_neomagic">2.3.1.2.1.5. Schede NeoMagic</A></H4>

<P>
Queste schede possono essere trovate su molti laptop. Sfortunatamente, il driver in
  X 4.2.0 non può usare Xv, ma abbiamo un driver modificato, capace di Xv, per te.
  <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neomagic_drv.o.4.2.0.bz2">Scaricalo da qui</A>.
  Driver fornito da Stefan Seyfried.</P>

<P>Per permettere la riproduzione di DVD cambia il tuo XF86Config così:</P>

<P>
Section "Device"<BR>
&nbsp; &nbsp; <I>[...]</I><BR>
&nbsp; &nbsp; Driver "neomagic"<BR>
&nbsp; &nbsp; <B>Option "OverlayMem" "829440"</B><BR>
&nbsp; &nbsp; <I>[...]</I><BR>
EndSection
</P>

<H4><A NAME="xv_trident">2.3.1.2.1.6. Schede Trident</A></H4>

<P>Se vuoi usare xv con una scheda Trident, dato che non funziona
col 4.1.0, installa XFree 4.2.0 che
aggiunge il supporto per xv a pieno schermo con la scheda
Cyberblade XP.</P>

<H4><A NAME="xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></H4>

<P>Se vuoi usare Xv con una scheda basata su Kyro (ad esempio la Hercules
 Prophet 4000XT), devi scaricare i driver dal
 <A HREf="http://www.powervr.com">sito PowerVR</A>.</P>


<H4><A NAME="dga_summary">2.3.1.2.2 DGA</A></H4>

<H4>INTRODUZIONE</H4>

<P>Questa sezione tenta di spiegare cosa sia il DGA in generale e
cosa può fare (e cosa non può) il driver di output video DGA di mplayer.</P>


<H4>COS'E IL DGA</H4>

<P>DGA è l'acronimo di Direct Graphics Access (Accesso Diretto alla Grafica, ndt) ed è un modo per un programma di
aggirare il server X e modificare direttamente la memoria del framebuffer.
Detto tecnicamente questo è possibile mappando la memoria del framebuffer nell'area
di memoria del tuo processo. Questo è permesso dal kernel solo se
hai i privilegi di superutente. Puoi ottenerli o loggandoti come
root o applicando il bit suid all'eseguibile mplayer (NON
consigliato!).</P>

<P>Esistono due versioni di DGA: DGA1 è usato da XFree 3.x.x e DGA2 è stato
introdotto con XFree 4.0.1.</P>

<P>DGA1 fornisce solo accesso diretto al framebuffer come descritto sopra. Per
cambiare la risoluzione del segnale video bisogna appoggiarsi all'estensione
XVidMode.</P>

<P>DGA2 incorpora le caratteristiche di XVidMode e permette anche
di cambiare la profondità del display. Cosi puoi, anche se è in esecuzione
un server X a 32 bit di profondità, cambiare ad una profondità di 15 bit e vice
versa. </P>

<P>Però il DGA ha alcune pecche. Sembra che siano in qualche modo dipendenti dal
chip grafico che si usa e dall'implementazione del driver video del server X
che controlla questo chip. Quindi non funziona su tutti i sistemi.</P>


<H4>INSTALLARE IL SUPPORTO DGA PER MPLAYER</H4>

<P>Per prima cosa assicurati che X carichi l'estensione DGA, controlla in /var/log/XFree86.0.log:</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>(II) Loading extension XFree86-DGA</CODE></P>

<P>Vedi, XFree86 4.0.x o maggiore è DECISAMENTE CONSIGLIATO!
Il driver DGA di MPlayer è trovato automaticamente da ./configure, o si può forzare con
--enable-dga.</P>

<P>Se il driver non può cambiare ad una risoluzione minore, prova con le opzioni
-vm (solo con X 3.3.x), -fs, -bpp, -zoom per trovare una modalità adatta.
Non c'è una conversione per ora.. :(</P>

<P>Diventa ROOT. DGA ha bisogno dell'accesso di root per poter scrivere direttamente nella memoria video.
Se vuoi eseguirlo da utente, allora installa MPlayer SUID root:</P>

<P><CODE>
&nbsp;&nbsp;&nbsp;&nbsp;chown root /usr/local/bin/mplayer<BR>
&nbsp;&nbsp;&nbsp;&nbsp;chmod 750 /usr/local/bin/mplayer<BR>
&nbsp;&nbsp;&nbsp;&nbsp;chmod +s /usr/local/bin/mplayer</CODE></P>


<P>Ora funziona anche da semplice utente.</P>


<P><B>!!!! MA RIMANI IN ASCOLTO !!!!</B><BR>
Questo è un <B>GRANDE</B> rischio per la sicurezza! Non farlo mai su un server o un computer
al quale possono accedere altre persone perchè si possono ottenere i privilegi di root
attraverso mplayer suid root.<BR>
<B>!!!! QUINDI SEI STATO AVVISATO ... !!!!</B></P>

<P>Ora usa l'opzione '-vo dga', ed ecco fatto! (spero:)
Dovresti anche provare se l'opzione '-vo sdl:dga' funziona per te! E' molto più
veloce!!!</P>

<H4><A NAME="dga_modelines">CAMBIARE RISOLUZIONE</A></H4>

<P>Il driver DGA permette di cambiare la risoluzione del segnale di uscita.
Questo evita la necessita di eseguire un (lento) ridimensionamento software e allo stesso
tempo fornisce un'immagine a pieno schermo. Idealmente dovrebbe andare all'esatta risoluzione
(tranne che per rispettare le proporzioni) dei dati video, ma il server X
permette solo di andare ad una risoluzione presente in
<CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> per XFree 4.0.X).
Queste sono definite dalle cosi dette modeline e dipendono dalle capacità
del tuo hardware video. Il server X legge questo file di configurazione all'avvio e
disabilita le modeline non adatte al tuo hardware. Puoi scoprire quali modalità rimangono
nel file di log di X11. Si trova in:
<CODE>/var/log/XFree86.0.log</CODE>.</P>

<P>Queste funzionano bene col mio chip Riva128, usando il modulo del driver
 XServer <CODE>nv.o</CODE>.</P>

<PRE>
  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
</PRE>


<H4>DGA &amp; MPlayer</H4>

<P>DGA è utilizzato in due posti in MPlayer: nel driver SDL
(-vo sdl:dga) e nel driver DGA (-vo dga).
Quello detto sopra è valido per entrambi; nella seguente sezione spiegherò come funziona
il driver DGA di MPlayer.</P>

<H4>CARATTERISTICHE</H4>

<P>Il driver DGA è invocato specificando -vo dga alla riga di comando.
Il comportamento di default è quello di cambiare ad una risoluzione il più vicino possibile
a quella originale del filmato. Ignora deliberatamente le opzioni
-vm e -fs (cambiare la modalità video e il pieno schermo) -
tenta sempre di coprire la maggior parte possibile del monitor cambiando la
modalità video, astenendosi così dall'usare anche un solo ciclo in più della CPU
per ridimensionare l'immagine.
Se non ti piace la modalità che ha scelto puoi forzarlo ad usare la risoluzione
più vicina a quella che gli viene passata con le opzioni -x e -y.
Con l'opzione -v, il driver DGA stamperà a video, tra le altre cose,
una lista delle risoluzioni supportate dal tuo attuale file
XF86-Config.
Con il DGA2 puoi anche forzarlo ad usare una certa profondità usando l'pzione -bpp.
Le profondità valide sono 15, 16, 24 e 32. Dipende dal tuo hardware
se queste profondità sono supportate nativamente o se deve essere fatta una (possibilmente lenta)
conversione.</P>

<P>Se sei abbastanza fortunato da avere abbastanza memoria video rimasta
per inserire un'intera immagine, il driver DGA userà il doppio buffering, che permette una riproduzione
video più fluida. Ti dirà se il doppio buffering è abilitato oppure
no.</P>

<P>Doppio buffering significa che la successiva immagine del filmato viene disegnata nella
memoria video mentre è mostrata l'immagine attuale. Quando il successivo frame
è pronto, basta dire al chip grafico la posizione nella memoria
del nuovo frame e prende semplicemente i dati da visualizzare da lì.
Nel frattempo un altro buffer nella memoria sarà di nuovo riempito con nuovi dati
video.</P>

Il doppio buffering può essere abilitato con l'opzione -double e disabilitato con
-nodouble. L'azione attualmente predefinita è quella di disabilitare il doppio
buffering. Quando si usa il driver DGA, l' OSD funziona
solo col doppio buffering abilitato. Comunque, abilitare il doppio buffering può
risultare in una grande perdita di velocità (sul mio K6-II+ 525 usa un 20% in più di tempo della
CPU!) a seconda dell'implementazione del DGA per il tuo hardware.</P>


<H4>QUESTIONI SULLA VELOCITA'</H4>

<P>Parlando in generale, l'accesso al framebuffer DGA dovrebbe essere veloce almeno quanto
il driver X11 con in più il beneficio di avere l'immagine a pieno schermo.
I valori di velocità in percentuale dati da mplayer devono essere interpretati con una certa
cura, dato che per esempio, col driver X11 non includono il tempo impiegato
dal server X necessario per il reale disegno. Aggancia un terminale alla porta
seriale della tua box ed esegui top per vedere cosa sta realmente accadendo.</P>

<P>Parlando in generale, l'incremento di velocità dato da DGA rispetto ad un uso 'normale' di X11
dipende in larga misura dalla tua scheda grafica e da quanto sia ben ottimizzato il modulo X-Server
per essa.</P>

<P>Se hai un sistema lento, faresti meglio ad usare una profondità di 15 o 16bit in quanto necessitano
solo metà della larghezza di banda della memoria rispetto ai 32.</P>

<P>Anche usare una profondità di 24bit è una buona idea se la tua scheda li supporta nativamente solo i
32 bit in quanto trasferisce il 25% in meno di dati rispetto alla modalità 32/32.</P>

<P>Ho visto già dei file avi riprodotti su un Pentium MMX 266. Le CPU AMD K6-2
dovrebbero andare bene dai 400 MHZ in su.</P>

<H4>BUG CONOSCIUTI</H4>

<P>Bene, secondo alcuni sviluppatori di XFree, DGA è proprio una bestiaccia. Raccomandano
di non usarlo. La sua implementazione non è sempre perfetta
con tutti i driver per chipset di XFree la fuori.</P>

<P><UL>
<LI>con XFree 4.0.3 e nv.o c'è un bug che risulta in strani colori</LI>
<LI>il driver ATI necessita di cambiare la modalità più volte dopo aver finito di usare
DGA</LI>
<LI>alcuni driver semplicemente falliscono nel ritornare alla risoluzione normale (usa
Ctrl-Alt-Keypad +, - per ritornarci manualmente)</LI>
<LI>alcuni driver semplicemente mostrano strani colori</LI>
<LI>alcuni driver mentono sulla quantità di memoria che mappano nello spazio di indirizzamento del
processo, così vo_dga non userà il doppio buffering (SIS?)</LI>
<LI>alcuni driver sembrano fallire nel riportare anche una singola modalità valida. In questo caso
il driver DGA si interromperà lamentandosi di una modalità senza senso di
100000x100000 o simile.</LI>
<LI>OSD funziona solo col doppio buffering abilitato</LI>
</UL></P>

<H4><A NAME="sdl">2.3.1.2.3 SDL</A></H4>

<P>SDL (Simple Directmedia Layer, Semplice Livello Diretto per media, ndt) è in generale una interfaccio video/audio
  unificata. I programmi che ne fanno uso conoscono solo l' SDL, e nulla su quale driver video
  o audio SDL usano veramente. Per esempio un port di Doom che usa SDL può
  essere eseguito su svgalib, aalib, X, fbdev, e altri, devi solo specificare il
  (per esempio) driver video da usare con la variabile d'ambiente SDL_VIDEODRIVER.
  Bhe, in teoria.</P>

<P>Con MPlayer, abbiamo usato la capacita di ridimensionamento software del suo driver X11 per
  schede/driver che non supportano XVideo, finchè non abbiamo fatto il nostro (più veloce,
  più bello) ridimensionatore software. Abbiamo anche  usato il suo output aalib, ma ora abbiamo il nostro che è
  più comodo. La sua modalità DGA era migliore della nostra, fino a poco
  tempo fà. Afferrato ora? :)</P>

<P>Aiuta anche con alcuni driver/schede difettosi se il video o l'audio sono a scatti
  (non un problema di sistema lento).</P>

<P>Il video output SDL supporta la visualizzazione dei sottotitoli sotto al filmato, sulla (se
  presente) barra nera.</P>

<P><B>Ci sono molte opzioni a riga di comando per SDL:</B></P>
<DL>
  <DT><CODE>-vo sdl:name</CODE></DT>
  <DD>specifica il driver video sdl da usare (es. aalib, dga, x11)</DD>

  <DT><CODE>-ao sdl:name</CODE></DT>
  <DD>specifica il driver audio sdl da usare (es. dsp, esd, arts)</DD>

  <DT><CODE>-noxv</CODE></DT>
  <DD>disabilita l'accelerazione hardware Xvideo</DD>

  <DT><CODE>-forcexv</CODE></DT>
  <DD>tenta di forzare l'accelerazione Xvideo</DD>
</DL>

<TABLE BORDER=0>
  <TR><TD COLSPAN=4><P><B>Tasti per SDL:</B></P></TD></TR>
  <TR><TD></TD><TD><CODE>F</CODE></TD><TD></TD><TD>scambia le modalità pieno schermo/finestra</TD></TR>
  <TR><TD></TD><TD><CODE>C</CODE></TD><TD></TD><TD>cambia tra le modalità a pieno schermo disponibili</TD></TR>
  <TR><TD></TD><TD><CODE>W/S</CODE></TD><TD></TD><TD>sostituiscono * e / (controllo mixer)</TD></TR>
</TABLE>

<H4>BUG CONOSCIUTI:<H4>
<P><UL><LI>I tasti premuti sotto il driver sdl:aalib si ripetono all'infinito. (usa -vo aa !)
E' un bug di SDL, io non posso cambiarlo (provato con SDL 1.2.1).
<LI>NON USARE L'SDL CON LA GUI! Non funziona come dovrebbe.</LI>
</UL></P>

<H4><A NAME="svgalib">2.3.1.2.4 SVGAlib</A></H4>

<H4>INSTALLAZIONE</H4><P>
 Devi installare svgalib ed il suo pacchetto di sviluppo per fare in modo che
  MPlayer compili il suo driver SVGAlib (riconosciuto automaticamente, ma può essere forzato),
  e non dimenticare di modificare /etc/vga/libvga.config per adattarlo alla tua scheda &amp; monitor.</P>

<H4>NOTE</H4><P>
  Non usare l'opzione -fs, in quanto abilita il ridimensionamento via software,
  che è lento. Se ne hai davvero bisogno, usa l'opzione <CODE>-sws 4</CODE>,
  risulterà una qualità peggiore ma è in qualche modo più veloce.</P>

<H4>SUPPORTO EGA (4BPP)</H4><P>
  SVGAlib incorpora EGAlib, e MPlayer può mostrare qualsiasi
  filmato in 16 colori, quindi è utilizzabile con le seguenti configurazioni:</P>

<UL>
  <LI>Scheda EGA con monitor EGA: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp</LI>
  <LI>Scheda EGA con monitor CGA: 320x200x4bpp, 640x200x4bpp</LI>
</UL>

<P>Il valore di bpp (bits per pixel) deve essere impostato manualmente a 4:<BR>
  &nbsp;&nbsp;<CODE>-bpp 4</CODE><BR>
  Il filmato probabilmente deve essere ridimensionato per adattarlo alla modalità EGA:<BR>
  &nbsp;&nbsp;<CODE>-vf scale=640:350</CODE> or<BR>
  &nbsp;&nbsp;<CODE>-vf scale=320:200</CODE><BR>
  Per questo abbiamo bisogno di una routine di ridimensionamento veloca ma di cattiva qualità:<BR>
  &nbsp;&nbsp;<CODE>-sws 4</CODE><BR>
  Forse deve essere disabilitata la correzione automatica dell'aspetto:<BR>
  &nbsp;&nbsp;<CODE>-noaspect</CODE><BR>
</P>

<P><B>NOTA:</B> secondo la mia esperienza, la migliore qualità di immagine su EGA
 si ottiene riducendo un po' la luminosità: <CODE>-vop eq=-20:0</CODE>. Sulla
 mia macchina ho dovuto anche ridurre la frequenza di campionamento dell'audio,
 poichè il suono dava problemi a 44kHz: <CODE>-srate 22050</CODE>.</P>

<P>Puoi attivare l'OSD ed i sottotitoli con il filtro <CODE>expand</CODE>, vedi
 la pagina man per i parametri esatti.</P>


<H4><A NAME="fbdev">2.3.1.2.5 Output col Framebuffer (FBdev)</A></H4>

<P>Se compilare il driver FBdev è stabilito automaticamente da ./configure .
Leggi la documentazione del framebuffer nei sorgenti del kernel
(Documentation/fb/*) per informazioni su come abilitarlo, ecc.. !</P>

<P>Se la tua scheda non supporta lo standard VBE 2.0 (le più vecchie schede ISA/PCI,
come la S3 Trio64), ma solo VBE 1.2 (o più vecchio?) :
ebbene, VESAfb è ancora disponibile, ma dovrai caricare il programma SciTech Display
Doctor (prima UniVBE) prima di fare il boot di Linux.  Usa un dischetto di boot DOS o
quello che vuoi.  E non dimenticare di registrare il tuo UniVBE ;))</P>

<P>L'output FBdev accetta alcuni parametri supplementari tra i quali:</P>

<P><TABLE BORDER=0>
<TD>&nbsp;&nbsp;</TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fb</TD><TD>&nbsp;&nbsp;</TD><TD>
<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>specifica il dispositivo framebuffer da usare (/dev/fb0)</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fbmode</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>nome della modalità da usare (secondo /etc/fb.modes)</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fbmodeconfig</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>	file di configurazione delle modalità (default /etc/fb.modes)</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_hfreq</TD><TD></TD><TD ROWSPAN=3><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>valori IMPORTANTI, vedi example.conf</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_vfreq</TD><TD></TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_dotclock</TD><TD></TD><TR>
</TABLE></P>

<P>Se vuoi cambiare ad una modalità specifica, allora usa</P>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;mplayer -vm -fbmode (NomeModalità) nomefile</CODE></P>

<P><UL><LI>l'opzione <B>-vm</B> sceglierà la modalità più adatta da /etc/fb.modes . Può essere usata
anche insieme alle opzioni -x e -y. L'opzione -flip è supportata solo se
il formato dei pixel del filmato corrisponde a quello dei pixel della modalità video.
Fai attenzione al valore di bpp, il driver fbdev tenta di usare l'attuale,
o se si specifica l'opzione -bpp, allora quella.</LI>
<LI>l'opzione <B>-zoom</B> non è supportata (il ridimensionamento software è lento). l'opzione -fs
non è supportata. Non puoi usare le modalità a 8bpp (o meno).</LI>
<LI>Probabilmente vuoi nascondere il cursore : <CODE>echo -e '\033[?25l'</CODE>
  o <CODE>setterm -cursor off</CODE><BR>
  e lo screen saver: <CODE>setterm -blank 0</CODE><BR>
  Per riavere il cursore : <CODE>echo -e '\033[?25h'</CODE>
  o <CODE>setterm -cursor on</CODE>
</UL></P>

<P>NOTA: il cambiamento di modalità video di FBdev _non funziona_ col framebuffer VESA,
e non richiederlo, in quanto non è una limitazione di MPlayer.</P>

<H4><A NAME="mga_vid">2.3.1.2.6. Framebuffer Matrox (mga_vid)</A></H4>

<P>Questa sezione parla del supporto BES (Back-End Scaler) di Matrox G200/G400/G450/G550,
il driver del kernel mga_vid.  E' attualmente sviluppato da A'rpi, e
ha il supporto VSYNC hardware con triplo buffering. Funziona sia da console col framebuffer
che sotto X.</P>

<P><B>ATTENZIONE</B>: Questo vale solo per Linux! Su sistemi non-Linux (testato
 su FreeBSD), usa <A HREF=#vidix>VIDIX</A>!</P>

<P>Per usarlo, devi prima compilare mga_vid.o:</P>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;cd drivers<BR>
&nbsp;&nbsp;&nbsp;&nbsp;make</CODE></P>

<P>Poi crea il dispositivo /dev/mga_vid:</P>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;mknod /dev/mga_vid c 178 0</CODE></P>

<P>e carica il driver con</P>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;insmod mga_vid.o</CODE></P>

<P>Dovresti controllare il riconoscimento della dimensione della memoria usando il comando 'dmesg'. Se è
sbagliata, usa l'opzione mga_ram_size (prima rmmod mga_vid), specifica la dimensione della memoria
della scheda in MB:</P>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;insmod mga_vid.o mga_ram_size=16</CODE></P>

<P>Per farlo caricare/scaricare automaticamente quando ce n'è bisogno, prima inserisci la seguente riga
alla fine di /etc/modules.conf:</P>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;alias char-major-178 mga_vid</CODE></P>

<P>Quindi copia il modulo <CODE>mga_vid.o</CODE> nella posizione appropriata sotto
  <CODE>/lib/modules/&lt;versione kernel&gt;/daqualcheparte</CODE>.</P>

<P>Poi esegui</P>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;depmod -a</CODE></P>

<P>Ora devi (ri)compilare MPlayer, ./configure troverà /dev/mga_vid
e compilerà il driver 'mga'. In MPlayer si usa con '-vo mga' se
hai la console matroxfb, o '-vo xmga' sotto XFree86 3.x.x o 4.x.x.</P>

<P>Il driver mga_vid coopera con Xv.</P>

<P>Il file del dispositivo <CODE>/dev/mga_vid</CODE> può essere letto (per esempio con
  <CODE>cat /dev/mga_vid</CODE>) per avere alcune informazioni, e scritto per cambiare la luminosità
  : <CODE>echo "brightness=120" > /dev/mga_vid</CODE></P>

<H4><A NAME="tdfxfb">2.3.1.2.7. Supporto YUV 3dfx (tdfxfb)</A></H4>

<P>Questo driver usa il driver framebuffer del kernel tdfx per riprodurre i filmati con
accelerazione YUV. Devi avere un kernel col supporto tdfxfb, e ricompilare con
<CODE>./configure --enable-tdfxfb</CODE></P>

<H4><A NAME="opengl">2.3.1.2.8. Output in OpenGL</A></H4>

<P>MPlayer supporta la visualizzazione dei filmati usando OpenGL, ma se
 la tua piattaforma/driver supporta xv come dovrebbe essere su un PC con Linux, usa xv
 invece, le prestazioni di OpenGL sono peggiori. Se hai una implementazione X11
 senza il supporto di xv, OpenGL è un' alternativa disponibile.</P>

<P>Sfortunatamente, non tutti
i driver hanno questa capacità. Per esempio i driver Utah-GLX
(per XFree86 3.3.6) lo supportano, con tutte le schede.
Vedi <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A>
per dettagli su come installarlo.</P>

<P>XFree86(DRI) >= 4.0.3 supporta OpenGL con schede Matrox, e Radeon, >= 4.2
lo supporta anche per le Rage128.
Vedi <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> per scaricarlo,
e per istruzioni sull'installazione.</P>

<H4><A NAME="aalib">2.3.1.2.9. AAlib - visione in modalità testo</A></H4>

<P><B>AAlib</B> è una libreria per vedere la grafica in modalità testo, usando un potente
renderer ASCII. Ci sono MOLTI programmi che già la supportano, come Doom,
Quake, ecc. MPlayer contiene un driver molto facile da usare per questa.
Se ./configure trova aalib installata, sarà compilato il driver libvo aalib.</P>

<P><TABLE BORDER=0>
<TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>Puoi usare alcuni tasti nella finestra AA per cambiare le opzioni di rendering:</B></P></TD><TR>
<TD>&nbsp;&nbsp;</TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>1</TD><TD>&nbsp;&nbsp;</TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>diminuisce il contrasto</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>2</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>aumenta il contrasto</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>3</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>diminuisce la luminosità</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>4</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>aumenta la luminosità</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>5</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>(dis)attiva il rendering veloce</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>6</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>cambia la modalità di dithering (nessuno, distribuzione dell'errore, floyd steinberg)</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>7</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>inverte l' immagine</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>a</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>cambia i controlli da aa a mplayer</TD><TR>

<TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>Possono essere usate le seguenti opzioni a riga di comando:</B></P></TD><TR>

<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaosdcolor=V</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>cambia il colore dell'osd</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aasubcolor=V</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>cambia il colore dei sottotitoli</TD><TR>
<TD COLSPAN=3></TD><TD><P><I><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>dove V può essere: (0/normal, 1/dark, 2/bold, 3/boldfont, 4/reverse, 5/special)</P></TD><TR>

<TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>La stessa AAlib fornisce un gran numero do opzioni.
Eccone alcune importanti:</P></B></TD><TR>

<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aadriver</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>seleziona il driver aa consigliato (X11, curses, linux)</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaextended</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>usa tutti i 256 caratteri</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaeight</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>usa ascii a otto bit</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aahelp</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>stampa tutte le opzioni di aalib</TD><TR>
</TABLE></P>

<P>NOTA: il rendering utilizza molta CPU, specialmente usando aalib su X,
e ne usa meno su console standard,
non-framebuffer. Usa SVGATextMode per selezionare una modalità testo grande,
e divertiti! (le schede Hercules con uscita secondaria vanno forte :)) (anche
 se, secondo me, puoi usare l'ozione <CODE>-vop 1bpp</CODE> per avere un
 immagine grafica su hgafb:)</P>

<P>Usa l'opzione -framedrop se il tuo computer non è abbastanza veloce da renderizzare tutti i frame!</P>

<P>Usandolo da terminale otterrai una più alta velocità e qualità usando il driver di linux, non
curses (-aadriver linux). Ma per questo devi avere accesso in scrittura a /dev/vcsa&lt;terminale&gt;!
Questa non è ipostata automaticamente da aalib, ma vo_aa cerca di trovare la modalità migliore.
Vedi <A HREF="http://aa-project.sourceforge.net/tune/">http://aa-project.sourceforge.net/tune/</A> per ulteriori questioni di regolazione.</P>


<H4><A NAME="vesa">2.3.1.2.10.  VESA - output col BIOS VESA</H4>
<P>
Questo driver è stato pensato e introdotto come un <b>driver generico</b> per qualsiasi scheda video
con un BIOS VESA VBE 2.0+ compatibile. Ma c'è ancora una ragione per lo sviluppo di
questo driver - la sua possibilità di abilitare l'output sulla TV.<BR>
<b>VESA BIOS EXTENSION (VBE) Versione 3.0 Data: 16 Settembre 1998</b> (Pagina 70)
dice:
</P>

<P>
<code><i>
<b>Design a doppio controller</b><br>
VBE 3.0 supporta il design a doppio controller supponendo che, dato che entrambi
i controller sono solitamente forniti dallo stesso OEM, sotto il controllo di una
singola ROM BIOS sulla stessa scheda grafica, è possibile nascondere all'applicazione il fatto che
sono realmente presenti due controller. Questo ha la limitazione
di impedire l'uso contemporaneo dei controller indipendenti,
ma consente alle applicazioni rilasciate prima del VBE 3.0 di operare normalmente. La funzione
VBE 00h fornisce l'informazione combinata dei due
controller, inclusa la lista combinata delle modalità disponibili.
Quando l'applicazione seleziona una modalità, viene attivato il controller appropriato.
Ogni rimanente funzione VBE quindi opera sul controller attivo.
</i></code>
</P>

<P>
Quindi si ha la possibilità di far andare il TV-out con questo driver.<br>
(Suppongo che spesso il TV-out abbia un output suo proprio,
almeno.)
</P>

<H4>VANTAGGI:</H4>
<UL>
 <LI>Hai la possibilità di vedere filmati <B>anche se Linux non conosce nemmeno
  </B> il tuo hardware video.</LI>
 <LI>Non devi aver installato niente per la grafica sul tuo Linux
  (come X11 (cioè XFree86), fbdev e così via). Questo driver può essere
  eseguito dalla <B>modalità testo</B>.</LI>
 <LI>Hai la possibilità di avere il <B>TV-out funzionante</B> (almeno con le
  schede ATI).</LI>
 <LI>Questo driver richiama l'handler <B>int 10h</B> quindi non è un emulatore
  - richiama le cose <B>reali</B> del <B>reale</B> BIOS in modalità
  <B>reale</B>. (detto meglio -in modalità vm86).</LI>
 <LI>Puoi usarlo insieme a Vidix, ottenendo così l'accelerazione video <B>E</B>
  l'output su TV allo stesso tempo! (raccomandato per le schede ATI)</LI>
<LI>Se hai VESA VBE 3.0+, e hai specificato <CODE>monitor_hfreq</CODE>,
    <CODE>monitor_vfreq</CODE>, <CODE>monitor_dotclock</CODE> da qualche parte (file di 
    configurazione, o linea di comando) otterrai il refresh rate più alto possibile. (Usando
    General Timing Formula). Per abilitalo dovrai specificare
    <B>tutte</B> le opzioni del tuo monitor.</LI>
</UL>

<H4>SVANTAGGI:</H4>
<UL>
 <LI>Funziona solo su <B>sistemi x86</B>.</LI>
 <LI>Può essere usato solo da <B>ROOT</B>.</LI>
 <LI>Attualmente è disponibile solo per <B>Linux</B>.</LI>
</UL>

<P>Non usare questo driver col <B>GCC 2.96</B> ! Non funzionerà !</P>

<H4>OPZIONI A RIGA DI COMANDO DISPONIBILI PER VESA:</H4>
<DL>
  <DT><CODE>-vo vesa:opzioni</CODE></DT>
  <DD>attualmente riconosciute: <B>dga</B> per forzare la modalità dga e <B>nodga</B> per
    disabilitarla. Nella modalità dga si può abilitare il double buffering con l'opzione
    <CODE>-double</CODE>. Nota: si possono tralasciare questi parametri per abilitare il
    <B>riconoscimento automatico</B> della modalità dga.</DD>
</DL>

<H4>PROBLEMI CONOSCIUTI E COME AGGIRARLI</H4>
<UL>
 <LI>Se hai installato il font <B>NLS</B> sulla tua Linux box ed esegui il
  driver VESA dalla modalità testo allora dopo aver chiuso mplayer avrai il
  <B>font ROM</B> caricato invece del nazionale. Puoi ricaricare il font
   nazionale usando l'utilità <CODE>setsysfont</CODE> dalla, per esempio,
   distribuzione Mandrake. (<B>Suggerimento</B>: la stessa utilità è usata per
   la "localizzazione" di fbdev).</LI>
 <LI>Alcuni <B>driver grafici di Linux</B> non aggiornano la <B>modalità
  BIOS</B> attiva nella memoria DOS. Quindi se hai un tale problema - usa sempre
  il driver VESA solo dalla <B>modalità testo</B>. Altrimenti la modalità testo
  (#03) sarà attivata comunque e dovrai far ripartire il computer.</LI>
 <LI>Spesso dopo aver terminato il driver VESA si ottiene uno <B>schermo
  nero</B>. Per farlo ritornare allo stato originale - cambia semplicemente
  console (premendo <B>Alt-Fx</B>) poi ritorna alla precedente console nello
  stesso modo.</LI>
 <LI>Per far <B>funzionare il TV-out</B> devi avere il connettore della tv
  inserito prima di far partire il tuo PC in quanto il BIOS video si
  inizializza solo una volta durante la procedura di POST.</LI>
</UL>


<H4><A NAME="x11">2.3.1.2.11.  X11</A></H4>

<P>Evitalo se possibile. Da l'output a X11 (usa l'estensione per la memoria condivisa), senza alcuna
accelerazione hardware. Supporta (accelerato da MMX/3DNow/SSE, ma ancora
lento) il ridimensionamento software, usa le opzioni <CODE>-fs -zoom</CODE>. Molte schede
hanno il supporto per il ridimensionamento hardware, usa l'output <CODE>-vo xv</CODE> per queste, o
<CODE>-vo xmga</CODE> per le Matrox.</P>

<P>Il problema è che il driver della maggior parte delle schede non supporta
l'accelerazione hardware sulla seconda uscita/TV. In quei casi, si vede una finestra verde/blu
invece del filmato. Qui è dove questo driver è utile,
ma hai bisogno di una CPU potente per usare il ridimensionamento software. Non usare
l'output+scaler software del driver SDL, ha una pessima qualità d'immagine !</P>

<P>Il ridimensionamento software è molto lento, faresti meglio a cambiare modalità video invece.
E' molto semplice. Vedi la <A HREF="#dga_modelines".A>sezione sulle modeline DGA</A>, e
inseriscile nel tuo XF86Config.
<UL>
  <LI>Se hai XFree86 4.x.x - usa l'opzione <CODE>-vm</CODE>. Cambierà ad una
    risoluzione adatta al tuo filmato. Se non funziona :</LI>
  <LI>Con XFree86 3.x.x - devi cercare tra tutte le risoluzioni disponibili
    con i tasti <B>CTRL-ALT-più</B> e <B>meno</B>.</LI>
</UL>

Se non riesci a trovare le modalità che hai inserito, controlla l'output di XFree86. Alcuni
driver non possono usare i bassi pixelclock necessari per modalità video a bassa
risoluzione.</P>


<H4><A NAME="vidix">2.3.1.2.12. VIDIX</A></H4>

<H4>INTRODUZIONE</H4>

<P>VIDIX è l'acronimo di <B>VID</B>eo <B>I</B>nterface for *ni<B>X</B>
 (Interfaccia Video per *nix, ndt).
  E' stato studiato e implementato come un'interfaccia per veloci driver in spazio utente
  che offrono le stesse performance video che mga_vid fornisce pe le schede Matrox. E anche
  molto portabile.</P>
<P>Questa interfaccia è stata studiata come un tentativo di far rientrare le esistenti interfacce
  di accelerazione video (conosciute come mga_vid, rage128_vid, radeon_vid, pm3_vid) in uno schema fisso. Fornisce
  un'interfaccia di alto livello ai chip conosciuti come BES (BackEnd
  scaler) o OV (Video Overlay). Non fornisce un'interfaccia di basso livello
  a cose conosciute come server grafici. (Non voglio competere con il team di X11
  nel cambiamento di modalità grafica). Cioè, l'obbiettivo principale di questa interfaccia
  è di fornire la massima velocità di riproduzione video.
</P>

<P><B><I>UTILIZZO</I></B></P>

<P>
  <LI>Puoi usare il driver di output video da solo: <CODE>-vo xvidix</CODE><BR>
    Questo driver è stato sviluppato come una interfaccia di X11 per la tecnologia VIDIX.
    necessita di un server X e può funzionare solo sotto un server X. Nota che, in quanto
    accede direttamente all'hardware e aggira il driver X, le pixmap
    salvate nella memoria della scheda video potrebbero essere corrotte. Si può evitare questo
    limitando la quantità di memoria video usata da X con l'opzione di XF86Config
    "VideoRam" nella sezione device. Dovresti impostarla al valore della memoria della
    scheda meno 4MB. Se hai meno di 8MB di
    ram video, puoi invece usare l'opzione "XaaNoPixmapCache" nella sezione screen.</LI>
  <LI>Si può usare il sottodispositivo VIDIX che è stato applicato a molti driver di output video,
    come:<BR>
    <CODE>-vo vesa:vidix</CODE> (<B>SOLO PER LINUX</B>) e <CODE>-vo fbdev:vidix</CODE></LI>
  Infatti non importa quale driver di output video si usa con <b>VIDIX</b>.
</P>

<P><B><I>REQUISITI</I></B></P>

<P>
  <LI>La scheda video dovrebbe essere in modalità grafica (ho scritto <b>dovrebbe</b> semplicemente
    perchè l'ho provato in modalità testo - funziona, ma da un terribile output ;) Usa
    AAlib per quello).<BR>
    <I>Nota: chiunque può provare questo trucco commentando il cambiamento di modalità nel driver
    vo_vesa.</I></LI>
  <LI>Il driver di output video di MPlayer dovrebbe conoscere la modalità video attiva ed essere in grado di
    dire al sottodispositivo VIDIX alcune caratteristiche video del server.</LI>
</P>

<P><B><I>METODI DI UTILIZZO</I></B></P>

<P>Quando VIDIX è usato come <b>sottodispositivo</b> (<CODE>-vo vesa:vidix</CODE>) allora
  la configurazione della modalità video è fatta dal dispositivo di output video
  (<b>vo_server</b> in breve). Quindi puoi passare alla linea di comando di
  MPlayer le stesse opzioni di vo_server. In aggiunta interpreta l'opzione
  <CODE>-double</CODE> come un parametro globalmente visibile. (Consiglio di usare
  questa opzione con VIDIX almeno per le schede ATI).<BR>
  Come per <CODE>-vo xvidix</CODE> : attualmente riconosce le seguenti
  opzioni: <CODE>-fs -zoom -x -y -double</CODE>.<BR>
</P>

<P>Puoi anche specificare il driver VIDIX direttamente come terzo sotto argomento alla linea di
  comando :<BR>
  <BR>
  &nbsp;&nbsp;<code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double
    file.avi</code><BR>
  o<BR>
  &nbsp;&nbsp;<code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp
    32 file.avi</code><BR>
  <BR>
  Ma è pericoloso, e non dovresti farlo. In questo caso il driver dato sarà
  forzato e il risultato è imprevedibile (potrebbe <b>bloccare</b> il tuo
  computer). Dovresti farlo SOLO se sei assolutamente sicuro che funzionerà,
  e MPlayer non lo fa automaticamente. Per favore dillo agli
  sviluppatori. Il Modo Giusto è usare VIDIX senza argomenti per abilitare il riconoscimento automatico del
  driver.
</P>

<P>
  VIDIX è una tecnologia molto nuova ed è molto probabile che sul tuo sistema
  non funzioni. In questo caso la sola soluzione per te è di eseguire
  un port (principalmente libdha). Ma c'è la speranza che funzioni su quei sistemi dove funziona
  X11.
</P>

<P>Poiché VIDIX richiede l'accesso diretto all'hardware, devi eseguirlo come
 root od impostare il bit SUID sull'eseguibile di MPlayer (<B>Attenzione:
 questo comporta grossi problemi di sicurezza!</B>). In alternativa, puoi usare
 uno speciale modulo del kernel, facendo così:</P>

<OL>
  <LI>Scarica la
    <A HREF="http://www.arava.co.il/matan/svgalib/">versione in sviluppo</A>
    di svgalib (ad esemplio 1.9.17),<BR>
    <B>O</B><BR>
    scarica una versione creata da Alex apposta per l'utilizzo con
    MPlayer (non richiede i sorgenti di svgalib per essere compilata) da
    <A HREF="http://www.mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2">
    qui</A>.</LI>
  <LI>Compila il modulo nella directory <CODE>svgalib_helper</CODE> (lo trovi
    nella directory <CODE>svgalib-1.9.17/kernel/</CODE> se hai
    scaricato i sorgenti dal sito di svgalib) ed inseriscilo (insmod).</LI>
  <LI>Sposta la directory <CODE>svgalib_helper</CODE> in
    <CODE>mplayer/main/libdha/svgalib_helper</CODE>.</LI>
  <LI>Da fare se hai scaricato i sorgenti dal sito svgalib: togliere il
    commento prima della linea CFLAGS che contiene la stringa "svgalib_helper"
    da <CODE>libdha/Makefile</CODE>.</LI>
  <LI>Ricompilare ed installare libdha.</LI>
</OL>


<H4><A NAME="vidix_ati">2.3.1.2.12.1 Schede ATI</A></H4>

<P>Attualmente la maggior parte delle schede ATI sono supportate in modo nativo,
 dalla Mach64 alle ultime Radeon.</P>

<P>Ci sono due driver: <CODE>radeon_vid</CODE> per le schede Radeon e
  <CODE>rage128_vid</CODE> per le Rage 128. Puoi forzarne uno o lasciare che sia
  VIDIX a cercare autonomamente il driver corretto.</P>


<H4><A NAME="vidix_matrox">2.3.1.2.12.2 Schede Matrox</A></H4>

<P>Le Matrox G200,G400,G450 e G550 sono state confermate funzionanti.</P>

<P>Il driver supporta l'equalizzatore video e dovrebbere essere altrettanto
 veloce come il <A HREF="#mga_vid">framebuffer Matrox</A>.</P>


<H4><A NAME="vidix_trident">2.3.1.12.3 Schede Trident</A></H4>

<P>C'è un driver disponibile per il chipset Trident Cyberblade/i1 chipset, che
  si trova sulle motherboard VIA Epia.</P>

<P>il driver è stato scritto ed è mantenuto da Alastair M. Robinson, che offre
  l'ultima versione disponibile sulla sua
  <A HREF="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">homepage</A>.
  I driver vengono portati in MPlayer con pochissimo ritardo, quindi
  dovrebbero essere sempre aggiornati.</P>


<H4><A NAME="vidix_3dlabs">2.3.1.2.12.4 Schede 3DLabs</A></H4>

<P>Sebbene esista un driver per i chip 3DLabs GLINT R3 e Permedia3, nessuno lo
  ha testato; quindi se hai notizie faccelo sapere.</P>
  



<H4><A NAME="directfb">2.3.1.2.13 DirectFB</A></H4>

<P><I>"DirectFB è una libreria grafica che è stata progettata con in mente i sistemi
  embedded. Offre la massima performance per l'accelerazione hardware con un minimo
  utilizzo di risorse."</I> - citato da
  <A HREF="http://www.directfb.org">http://www.directfb.org</A>.</P>

<P>Escluderò le caratteristiche di DirectFB da questa sezione.</P>

<P>Sebbene MPlayer non sia supportato come "video provider" in DirectFB, questo
  driver di output abilita la riproduzione video tramite DirectFB. Naturalmente
  è accelerata sulla mia Matrox G400 la velocità di DirectFB è la stessa di
  XVideo.</P>

<P>Cerca sempre di usare l'ultima versione di DirectFB. Si possono usare le opzioni di DirectFB
  da riga di comando con l'opzione <CODE>-dfbopts</CODE>.
  La selezione del layer si può fare col metodo del sottodispositivo, es.: <CODE>-vo
  directfb:2</CODE> (layer -1 è il default: riconoscimento automatico)</P>

<H4><A NAME="dfbmga">2.3.1.2.14 DirectFB/Matrox (dfbmga)</A></H4>

<P>Leggi la <A HREF="#directfb">sezione principale di DirectFB</A> per le informazioni
  generali.</P>

<P>Questo driver di output video abilita il CRTC2 (sulla seconda uscita) sulle schede
  Matrox G400/G450/G550, mostrando il video <B>indipendentemente</B> dalla prima uscita.</P>

<P>Le istruzioni per farlo funzionare si trovano nella
  <A HREF="../tech/directfb.txt">sezione tecnica</A>
  o direttamente sulla
  <A HREF="http://www.sci.fi/~syrjala/directfb/Matrox_TV-out_README.txt">
  home page</A> di Ville Syrjala.</P>

<P>Nota: noi non siamo riusciti a farlo andare, ma altri si. Comunque,
  è iniziato il porting del codice CRTC2 in <B>mga_vid</B>.</P>

<H4><A NAME="mpegdec">2.3.1.3 Decoder MPEG</A></H4>

<H4><A NAME="dvb">2.3.1.3.1 DVB</A></H4>

<P>MPlayer supporta le schede con chipset DVB Siemens fabbricati da aziende quali
  Siemens, Technotrend, Galaxis o Hauppauge.  I driver DVB più recenti sono disponibili sul
  sito <A HREF="http://www.linuxtv.org">Linux TV</A>. Se vuoi
  fare il transcoding software devi avere almeno una CPU da 1GHz.</P>

<P>Lo script configure dovrebbe riconoscere automaticamente la tua scheda DVB. se non riesce, forzane
il riconoscimento con</P>

<PRE>
  ./configure --enable-dvb
</PRE>

<P>Se hai gli header ost in una locazione non-standard, imposta il path con</P>

<PRE>
  ./configure --with-extraincdir=&lt;directory sorgenti DVB&gt;/ost/include
</PRE>

<P>Quindi compila e installa come al solito.</P>

<B>UTILIZZO</B>

<P>Si può abilitare la decodifica hardware (riproduzione di file MPEG1/2 standard) 
  col comando:</P>

<PRE>
  mplayer -ao mpegpes -vo mpegpes file.mpg|vob
</PRE>

<P>Si può abilitare la decodifica software o il transcoding da diversi formati a MPEG1
  usando un comando come questo:</P>

<PRE>
  mplayer -ao mpegpes -vo mpegpes -vf lavc tuofile.ext
  mplayer -ao mpegpes -vo mpegpes -vf expand,fame tuofile.ext
</PRE>

<P>Nota che le schede DVB supportano solo un'altezza di 288 o 576 per il PAL e 240 o 480
  per NTSC. <B>Devi</B> ridimensionare se vuoi altre altezze aggiungendo
  <CODE>scale=larghezza:altezza</CODE> con le dimensioni desiderate all'opzione
  <CODE>-vf</CODE>. Le schede DVB accettano varie larghezze, come 720, 704,
  640, 512, 480, 352 ecc e utilizzano il ridimensionamento hardware nella direzione orizzontale,
  quindi nella maggior parte dei casi non devi ridimensionare orizzontalmente. Per un DivX 512x384 (aspetto 4:3) prova:</P>

<PRE>
  mplayer -ao mpegpes -vo mpegpes -vf scale=512:576,lavc
</PRE>

<P>Se hai un filmato widescreen e non vuoi ridimensionarlo a piena altezza,
  puoi usare il plugin <CODE>expand=l:a</CODE> per aggiungere delle bande nere. Per vedere
  un DivX 640x384, prova:</P>

<PRE>
  mplayer -ao mpegpes -vo mpegpes -vf expand=640:576,lavc file.avi
</PRE>

<P>Se la tua CPU è troppo lenta per un DivX a dimensione intera 720x576, prova a ridurlo:</P>

<PRE>
  mplayer -ao mpegpes -vo mpegpes -vf scale=352:576,lavc file.avi
</PRE>

<P>Se la velocità non aumenta, prova anche a ridurlo verticalmente:</P>

<PRE>
  mplayer -ao mpegpes -vo mpegpes -vf scale=352:288,lavc file.avi
</PRE>

<P>Per l'OSD e i sottotitoli usa l'opzione OSD del filtro di espansione. Quindi, invece
  di <CODE>expand=l:a</CODE> o <CODE>expand=l:a:x:y</CODE>, usa
  <CODE>expand=l:a:x:y:1</CODE> (il quinto parametro <CODE>:1</CODE> alla fine
  abilita il rendering OSD). Potresti aver bisogno di spostare l'immagine un po' in alto
  per ottenere una zona nera più grande per i sottotitoli. Potresti anche voler spostare in alto i sottotitoli, se
  sono fuori dallo schermo della TV, usa l'opzione <CODE>-subpos &lt;0-100&gt;</CODE>
  per regolarli (<CODE>-subpos 80</CODE> è una buona scelta).</P>

<P>Per riprodurre filmati non a 25fps su una TV PAL o con una CPU lenta, aggiungi l'opzione
  <CODE>-framedrop</CODE>.</P>

<P>Per mantenere le proporzioni dei file DivX e ottenere i parametri di ridimensionamento ottimali
  (ridimensionamento orizzontale in hardware e verticale in software mentre si conservano
  le giuste proporzioni), usa il nuovo filtro dvbscale:</P>

<PRE>
per TV 4:3: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1
per TV 16:9: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1
</PRE>

<H4>FUTURO</H4>

<P>Se hai domande o vuoi sentire gli annunci di nuove caratteristiche e prender parte alle
  discussioni su questo argomento, unisciti alla nostra mailing list
  <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</A>.
  Per favore ricorda che la lingua di questa lista è l'inglese.</P>

<P>In futuro potresti aspettarti la possibilità di mostrare l'OSD e i sottotitoli usando
  la caratteristica OSD nativa delle schede DVB, e anche una riproduzione più fluente
  dei filmati non a 25fps e il transcoding in tempo reale tra MPEG2 e MPEG4 (decompressione
  parziale).</P>

<H4><A NAME="dxr2">2.3.1.3.2 DXR2</A></H4>

<P>DA FARE.</P>

<H4><A NAME="dxr3">2.3.1.3.3 DXR3/Hollywood+</A></H4>

<P>MPlayer supporta la riproduzione accelerata in hardware con le schede Creative DXR3
  e Sigma Designs Hollywood Plus. Queste schede usano il chip di decodifica MPEG em8300
  prodotto da Sigma Designs.</P>

<P>Prima di tutto devi installare correttamente i driver DXR3/H+, versione
  0.12.0 o successiva. I driver e le istruzioni per l'installazione si trovano sul sito
  <A HREF="http://dxr3.sourceforge.net/">DXR3 &amp; Hollywood Plus per
  Linux</A>. Lo script configure dovrebbe riconoscere automaticamente la tua scheda, la compilazione
  dovrebbe procedere senza problemi.</P>

<H4>UTILIZZO:</H4>
<DL>
  <DT><CODE>-vo dxr3:prebuf:sync:norm=x:&lt;device&gt;</CODE></DT>
  <DD><CODE>overlay</CODE> attiva l' overlay invece del TVOut. Necessita
    un supporto overlay corretamente configurato. Il modo più facile per
    configurarlo è di eseguire prima autocal. Quindi eseguire mplayer con l'output
    dxr3 senza l'overlay, e eseguire dxr3view. In dxr3view si possono regolare
    le impostazioni dell'overlay e vedere gli effetti in tempo reale, forse questa caratteristica
    verrà supportata dalla GUI di MPlayer GUI in futuro. Quando l'overlay sarà
    correttamente impostato non dovrai più usare dxr3view.<BR>
  <DD><CODE>prebuf</CODE> attiva il prebuffering. Il prebuffering è una caratteristica
    del chip em8300 che gli consente di tenere più di un frame del video alla volta.
    Qusto significa che quando utilizzi il prebuffering
    MPlayer tenta di tenere sempre pieno il buffer video.
    Se sei su una macchina lenta probabilmente MPlayer userà circa
    o esattamente il 100% della CPU. Questa situazione è comune in particolare nella riproduzione
    di puri stream MPEG (come DVD, SVCD, ecc.) in quanto MPlayer non deve
    ricodificarli in MPEG e riempirà il buffer molto velocemente.<BR>
    Col prebuffering la riproduzione video è <B>molto</B> meno sensibile ad altri
    programmi che divorano la CPU, non scarterà alcun frame a meno che le altre applicazioni
    non carichino la CPU per un lungo periodo.<BR>
    Senza il prebuffering l' em8300 è molto più sensibile al carico della CPU load, quindi è 
    caldamente consigliato usare l'opzione di
    MPlayer <CODE>-framedrop</CODE> per evitare ulteriori perdite di sincronia.<BR>
    <CODE>sync</CODE> attiva il nuovo metodo di sincronia. E' attualmente in fase
    sperimentale. Con questa opzione il clock interno dell' em8300
    sarà continuamente monitorato, se comincia a deviare dal clock di MPlayer
    verrà resettato facendo sì che l' em8300 scarti i frame che sono rimasti indietro.<BR>
    <CODE>norm=x</CODE> imposta il norm della TV norm della scheda DXR3 senza la necessità di
    utility esterne come em8300setup. Norm valide sono 5 = NTSC, 4 = PAL-60,
    3 = PAL. Norm speciali sono 2 (riconosce automaticamente PAL/PAL-60) e 1
    (riconosce automaticamente PAL/NTSC) in quanto decidono quale norm usare
    controllando il frame rate del filmato. norm = 0 (default) non modifica
    il norm attuale.<BR>
    <CODE>&lt;device&gt;</CODE> = numero del dispositivo da usare se hai più di una scheda
    em8300.
    <BR>
    Queste opzioni possono tutte essere tralasciate.
    <CODE>:prebuf:sync</CODE> sembra andare benissimo per i DivX.
    Alcuni hanno segnalato problemi usando l'opzione <CODE>prebuf</CODE>
    con i normali MPEG. Prova prima senza queste opzioni, se hai problemi di
    sincronia o con i sottotitoli DVD prova ad usare <CODE>:sync</CODE>.</DD>

  <DT><CODE>-ao oss:/dev/em8300_ma-X</CODE></DT>
  <DD>Per l'output audio, dove <CODE>X</CODE> è il numero del dispositivo
    (0 se hai una sola scheda).</DD>

  <DT><CODE>-aop list=resample:fout=xxxxx</CODE></DT>
  <DD>L' em8300 non può riprodurre campioni con frequenza minore di 44100Hz. Se la frequenza
    di campionamento è sotto 44100Hz seleziona 44100Hz o 48000Hz a seconda di quale più si
    avvicina. Cioè se il filmato usa 22050Hz, allora usa 44100Hz dato che
    44100 / 2 = 22050, se è a 24000Hz, usa 48000Hz dato che 48000 / 2 = 24000 e così via.
    Questo non funziona con output audio digitale (<CODE>-ac hwac3</CODE>).</DD>

  <DT><CODE>-vf lavc/fame</CODE></DT>
  <DD>Per vedere contenuti non-MPEG sul em8300 (cioè DivX o RealVideo) devi specificare
    un filtro video MPEG1 come libavcodec (lavc) o libfame
    (fame). Al momento lavc è più veloce che e ha una migliore qualità dell'immagine,
    suggeriamo di usarlo a meno che tu non riscontra problemi. Leggi la pagina di man
    per altre informazioni su <CODE>-vf lavc/fame</CODE>.<BR>
    Usare lavc è caldamente consigliato. Al momento non è possibile regolare
    l'fps dell' em8300 e ciò significa che è fisso a 29.97fps. Perciò si
    consiglia di usare <CODE>-vf lavc=&lt;qualità&gt;:25</CODE>,
    specialmente se usi il prebuffering. Quindi perchè 25 e non 29.97? Bhe,
    il fatto è che quando si usa 29.97 l'immagine saltella un po'. La ragione
    è a noi sconosciuta. Se lo si imposta a qualcosa tra 25 e
    27 l'immagine si stabilizza. Per ora tutto quello che possiamo fare è accettarlo
    come un fatto.</DD>

  <DT><CODE>-vf expand=-1:-1:-1:-1:1,lavc</CODE></DT>
  <DD>Anche se il driver DXR3 può inserire degli OSD nei video MPEG1/2/4,
    ha una qualità molto minore dell'OSD di MPlayer, e ha anche alcuni problemi di
    refresh. La riga di comando scritta sopra prima converte il video in entrata
    in MPEG4 (questo è obbligatorio, spiacente), poi applica un filtro di espansione
    che in realtà non espande nulla (-1: default), ma applica il normale OSD
    sull'immagine (questo è quello che fa l' "1" alla fine).</DD>
  
  <DT><CODE>-ac hwac3</CODE></DT>
  <DD>L' em8300 supporta la riproduzione audio AC3 (suono surround) attraverso
    l'uscita audio digitale della scheda. Vedi l'opzione <CODE>-ao oss</CODE>
    sopra, deve essere usata per specificare l'output DXR3 al posto di una scheda
    sonora.</DD>
</DL>


<H4><A NAME="other">2.3.1.4 Altro hardware di visualizzazione</A></H4>

<H4><A NAME="zr">2.3.1.4.1 Zr</A></H4>

<P>Questo è un driver per la visualizzazione (<CODE>-vo zr</CODE>) per un certo numero di schede MJPEG
di cattura/riproduzione (testato per DC10+ e Buz, e dovrebbe funzionare per
LML33, DC10). Il driver funziona codificando il frame in jpeg e mandandolo poi
alla scheda. Per la codifica jpeg è usato <B>libavcodec</B>,
ed è quindi necessario. Con la speciale modalità <I>cinerama</I>, si possono
  guardare i film in vero wide screen se hai due beamer e due schede
  MJPEG. A seconda della risoluzione e delle impostazioni di qualità, questo driver
  può richiedere molta potenza di CPU, ricorda di specificare <CODE>-framedrop</CODE>
  se la tua macchina è troppo lenta. Nota: ill mio AMD K6-2 350MHz è abbastanza (con <CODE>
  -framedrop</CODE>) potente per vedere cose della dimensione dei VCD e film
  ridimensionati.</P>

<P>Questo driver dialoga col driver del kernel disponibile a
<A HREF="http://mjpeg.sourceforge.net">http://mjpeg.sourceforge.net</A>, quindi
 devi far funzionare questo prima. La presenza di una scheda MJPEG è rilevata
 automaticamente dallo script configure; se l'autorilevamento non ha successo
 forzalo con</P>
<PRE>
  ./configure --enable-zr
</PRE>

<P>L'output può essere controllato con varie opzioni, una descrizione completa
 si trova nella pagina man; per una descrizione breve eseguire

<PRE>
  mplayer -zrhelp
</PRE>

<P>Funzioni quali la scalatura o l'OSD non sono gestite dal driver, ma possono
 essere fatte tramite i filtri video. Ad esempio, supponi di avere un filmato
 con una risoluzione di <CODE>512x272</CODE> e vuoi vederlo a schermo intero
 sulla tua scheda DC10+. Ci sono essenzialmente tre possibilità: puoi riscalare
 il filmato con una larghezza di <CODE>768</CODE> o <CODE>384</CODE> o 
 <CODE>192</CODE>. Per ragioni di performance e qualità, io sceglierei di
 ridimensionare il filmato a <CODE>384x204</CODE> usando lo scalatore software
 con l'algoritmo bilineare veloce. La linea di comando è

<PRE>
  mplayer -vo zr -sws 0 -vop scale=384:204 movie.avi
</PRE>

<P>Il ritaglio (cropping) può essere fatto sia dal filtro <CODE>crop</CODE> che
 dal driver stesso. Supponi che un filmato sia troppo largo per essere
 visualizzato dalla tua scheda Buz e che vuoi usare <CODE>-zrcrop</CODE> per
 ridurne la larghezza; il comando da usare sarebbe

<PRE>
  mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
</PRE>

 se vuoi invece usare il filtro <CODE>crop</CODE> fai

<PRE>
  mplayer -vo zr -vop crop=720:320:80:0 benhur.avi
</PRE>

<P>Usando più di un'opzione <CODE>-zrcrop</CODE> si attiva la modalità
 <I>cinerama</I>, che permette di dividere l'immagine su più TV o proiettori
 (beamer), al fine di creare uno schermo più grande. Supponi di avere due
 proiettori. Quello di sinistra è collegato alla tua scheda Buz
 <CODE>/dev/video1</CODE> e quello di destra alla tua scheda DC10+
 <CODE>/dev/video0</CODE>. Il filmato ha risoluzione <CODE>704x288</CODE>.
 Supponi anche di voler far funzionare il proiettore di destra in bianco e nero,
 e di avere su quello di sinistra immagini con qualità jpeg <CODE>10</CODE>.
 Il comando da utilizzare sarebbe

<PRE>
  mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
          -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi
</PRE>

<P>Puoi notare che le opzioni che appaiono prima del secondo
 <CODE>-zrcrop</CODE> si riferiscono solo alla scheda DC10+ e quelle che lo
 seguono si applicano alla scheda Buz. Il numero massimo di schede utilizzabili
 con <I>cinerama</I> è quattro, quindi puoi construire un maxischermo
 <CODE>2x2</CODE>.

<P>Per finire un avviso importante: non avviare o fermare XawTV sul dispositivo
    di riproduzione durante la stessa,
    bloccherà il tuo computer. Va comunque bene far partire <B>PRIMA</B>
    XawTV, e <B>POI</B> MPlayer, aspettare che MPlayer finisca e
    <B>POI</B> fermare XawTV.</P>
    
<H4><A NAME="blinken">2.3.1.4.2 Blinkenlights</A></H4>

<P>Questo driver è in grado di usare il protocollo UPD Blinkenlights.
  Se non sai cosa sia <A HERF="http://www.blinkenlights.de">Blinkenlights</A>,
  non hai bisogno di questo driver.</P>

<H4><A NAME="tv-out">2.3.1.5. Supporto TV-out</A></H4>

<H4><A NAME="tv-out_matrox">2.3.1.5.1. Schede Matrox G400</A></H4>

<P>Sotto Linux hai due modi per far funzionare l'output TV delle G400 :</P>

<P><B>IMPORTANTE:</B> per istruzioni sul supporto TV-out delle Matrox G450/G550) vedi la
 prossima sezione!</B></P>

<P>
<UL>
  <LI><B>XFree86</B>: usando il driver e il modulo HAL, disponibile al
    <A HREF="http://www.matrox.com">sito della Matrox</A>. Questo ti darà X sulla
    TV.<BR> <B>Questo metodo non da una riproduzione accelerata</B> come
    sotto Windoze! Il secondo connettore ha solo il framebuffer YUV, il <I>BES</I>
    (Back End Scaler, il ridimensionatore YUV sulle schede G200/G400/G450/G550) non funziona
    su questo! Il driver per windows in qualche modo aggira questo problema, probabilmente usando il motore
    3D per zoomare, e il framebuffer YUV per visualizzare l'immagine zoomata.
    Se vuoi veramente usare X, usa le opzioni <CODE>-vo x11 -fs -zoom</CODE>,
    ma sarà <B>LENTO</B>, e ha la protezione da copia <B>Macrovision</B>
    abilitata (puoi "aggirare" Macrovision usando
    <A HREF="http://avifile.sourceforge.net/mgamacro.pl">questo</A> script perl.
    </LI>
  <LI><B>Framebuffer</B>: usando i <B>moduli matroxfb</B> dei kernel 2.4.
    I kernel 2.2 non hanno la possibilità di usare il TVout, quindi sono inutili per questo.
    Devi abilitare TUTTE le voci relative al matroxfb durante la compilazione (eccetto il
    MultiHead), e compilarle come <B>moduli</B>! Devi avere anche I2C abilitato.
    <UL>
      <LI>
	Entra in <CODE>TVout/matroxset</CODE> e fai <CODE>make</CODE>. Installa
        <CODE>matroxset</CODE> da qualche parte nel tuo PATH.</LI>
      <LI>
	Se non hai <CODE>fbset</CODE> installato, entra in
        <CODE>TVout/fbset</CODE> e fai <CODE>make</CODE>. Installa
        <CODE>fbset</CODE> da qualche parte nel tuo PATH.</LI>
      <LI>
        Poi entra nella directory <CODE>TVout/</CODE> dei sorgenti di MPlayer,
        ed esegui <CODE>./modules</CODE> da root. La tua console in modalità testo
        entrerà in modalità framebuffer (non si può tornare indietro!).</LI>
      <LI>Quindi, MODIFICA ed esegui lo script <CODE>./matroxtv</CODE>. Questo ti presenterà un
        menu molto semplice. Premi <B>2</B> e <B>ENTER</B>. Ora dovresti avere la stessa immagine
	sul monitor e sulla TV. Se
	l'immagine della TV (PAL di default) ha delle strane strisce, lo script non è stato in grado di
	settare correttamente la risoluzione (a 640x512 di default). Prova altre
 	risoluzioni e/o esperimenta con fbset</LI>
    </UL>

    <P>
    Yoh. Il prossimo compito è quello di far scomparire il cursore su tty1 (o quello che è),
    e disattivare lo spegnimento dello schermo. Esegui i seguenti comandi:</P>

    <P>
      <CODE>echo -e '\033[?25l'</CODE> o <CODE>setterm -cursor off<BR>
      setterm -blank 0</CODE>
    </P>

    <P>
    Probabilmente vorrai metterli in uno script, e anche pulire lo
    schermo.. Per riavere il cursore :<BR><CODE>echo -e '\033[?25h'</CODE>
    o <CODE>setterm -cursor on</CODE>
    </P>

    <P>Inizia la riproduzione del filmato con <CODE>mplayer -vo mga -fs -screenw 640
    -screenh 512 &lt;nomefile&gt;</CODE><BR>
    (se usi X, ora cambia a matroxfb con per esempio CTRL-ALT-F1 !)<BR>
    Cambia 640x512 se hai impostato la risoluzione diversamente..<BR>
    <B>Goditi l' ultra-veloce output TV Matrox (meglio di Xv) !</B>
    </P>
  </LI>
</LI>
</UL>
</P>

<H4>Costruire un cavo TV-out Matrox</H4>

<P>Nessuno si assume alcuna responsabilità né fornisce alcuna garanzia per
 qualsiasi danno causato seguendo questa documentazione.</P>

<P><B>Cavo per G400</B>: Il quarto pin del connettore CRTC2 è il segnale video
 composito. Le masse sono il sesto, settimo e ottavo pin (informazioni fornite
 da Balázs Rácz).</P>

<P><B>Cavo per G450</B>: Il primo pin del connettore CRTC2 è il segnale video
 composito. Le masse sono il quinto, sesto, settimo e quindicesimo (5, 6, 7, 15)
 pin (informazioni fornite da Balázs Kerekes).</P>

<H4><A NAME="tv-out_matrox_g450">2.3.1.5.2 Schede Matrox G450/G550</A></H4>

<P>Il supporto al TV output per queste schede è stato introdotto solo recentemente, e non
  è ancore ne kernel ufficiale. Al momento il modulo <B>mga_vid</B>
  non può essere usato AFAIK, perchè il driver G450/G550 funziona solo in una configurazione:
  il primo chip CRTC (con molte più caratteristiche) sul primo
  display (sul monitor), e il secondo CRTC (non <B>BES</B> - per una spiegazione del 
  BES, vedi la sezione G400 sopra) sulla TV. Quindi al momento puoi usare solo il driver di
  output <I>fbdev</I> di MPlayer.</P>

<P>Il primo CRTC non può essere indirizzato alla seconda uscita, al momento.
  L'autore del driver del kernel matroxfb - Petr Vandrovec - ne implementerà probabilmente il
  supportp, visualizzando l'output del primo CRTC su entrambe le uscite insieme,
  come attualmente raccomandato per la G400, vedi la sezione sopra.</P>

<P>La patch del kernel necessaria e le istruzioni dettagliate sono scaricabili da
  <A HREF="http://www.bglug.ca/matrox_tvout/">http://www.bglug.ca/matrox_tvout/</A></P>


<P><B><A NAME="tv-out_ati">2.3.1.5.3. Schede ATI</A></B></P>

<P>
<H4>PREAMBOLO</H4>
Attualmente ATI non vuole supportare nessuno dei suoi chip TV-out sotto Linux
a causa della tecnologia sotto licenza della Macrovision che utilizzano.

<H5>STATO DEL TV-OUT DELLE SCHEDE ATI SOTTO LINUX<H5>
<UL>
<LI><b>ATI Mach64</b> è supportato da <A HREF="http://gatos.sf.net">gatos</A>.</LI>
<LI><b>ASIC Radeon VIVO</b> è supportato da <A HREF="http://gatos.sf.net">gatos</A>.</LI>
<LI><B>Radeon</B> e <B>Rage128</B>: supportate da MPlayer!
Controlla le sezioni <a href="#vesa">driver VESA</a> e <A HREF="#vidix">Vidix</A>.</LI>
<LI><B>Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</B>: Supportate da
    <A HREF="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/">
    atitvout</A>.
</UL>
<P>
  Con altre schede, usate semplicemente il <a href="#vesa">driver VESA</a>, senza
  Vidix. Però è necessaria una CPU potente.
</P>

<P>La sola cosa che devi fare - <B>collegare la TV prima di avviare
  il PC</B> in quanto il BIOS video viene inizializzato solo al momento della
  procedura di POST.
</P>


<H4><A NAME="tv-out_voodoo">2.3.1.5.4. Voodoo 3</A></H4>

<P>
Controlla <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">questa URL</A>.
</P>

<H4><A NAME="tv-out_nvidia">2.3.1.5.5 nVidia</A></H4>

<P>Primo, DEVI scaricare i driver a sorgenti chiusi da
  <A HREF="http://nvidia.com">http://nvidia.com</A>. Non descriviamo il processo
  di installazione e configurazione perchè non rientra negli scopi di
  questa documentazione.</P>

<P>Dopo che XFree86, XVideo, e l'accelerazione 3D funzionano correttamente,
  modifica la sezione Device della tua scheda nel file <CODE>XF86Config</CODE>,
  riferendoti al seguente esempio (adattalo per la tua scheda/TV):</P>

<PRE>
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
</PRE>

<P>Naturalmente la perte importante è quella del TwinView.</P>

</BODY>
</HTML>