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
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<chapter id="ports" xreflabel="Ports">
<title>Ports</title>
<sect1 id="linux">
<title>Linux</title>
<para>
The main development platform is Linux on x86, although
<application>MPlayer</application> works on many other Linux ports.
Binary packages of <application>MPlayer</application> are available from several
sources. However, <emphasis role="bold">none of these packages are supported</emphasis>.
Report problems to the authors, not to us.
</para>
<sect2 id="debian">
<title>Debian packaging</title>
<para>
To build a Debian package, run the following command in the
<application>MPlayer</application> source directory:
<screen>fakeroot debian/rules binary</screen>
If you want to pass custom options to configure, you can set up the
<envar>DEB_BUILD_OPTIONS</envar> environment variable. For instance,
if you want GUI and OSD menu support you would use:
<screen>DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary</screen>
You can also pass some variables to the Makefile. For example, if you want
to compile with gcc 3.4 even if it's not the default compiler:
<screen>CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary</screen>
To clean up the source tree run the following command:
<screen>fakeroot debian/rules clean</screen>
As root you can then install the <filename>.deb</filename> package as usual:
<screen>dpkg -i ../mplayer_<replaceable>version</replaceable>.deb</screen>
</para>
<para>
Christian Marillat has been making unofficial Debian packages of
<application>MPlayer</application>, <application>MEncoder</application> and
our binary codec packages for a while, you can (apt-)get them from
<ulink url="http://www.debian-multimedia.org/">his homepage</ulink>.
</para>
</sect2>
<sect2 id="rpm">
<title>RPM packaging</title>
<para>
Dominik Mierzejewski created and maintains the official RPM packages of
<application>MPlayer</application> for Red Hat and Fedora Core. They are available
from his <ulink url="http://rpm.greysector.net/mplayer/">repository</ulink>.
</para>
<para>
Mandrake/Mandriva RPM packages are available from the <ulink url="http://plf.zarb.org/">P.L.F.</ulink>.
SuSE used to include a crippled version of <application>MPlayer</application>
in their distribution. They have removed it in their latest releases. You can
get working RPMs from
<ulink url="http://packman.links2linux.de/?action=128">links2linux.de</ulink>.
</para>
</sect2>
<sect2 id="arm">
<title>ARM</title>
<para>
<application>MPlayer</application> works on Linux PDAs with ARM CPU e.g. Sharp Zaurus,
Compaq Ipaq. The easiest way to obtain <application>MPlayer</application> is to get it
from one of the <ulink url="http://www.openzaurus.org">OpenZaurus</ulink> package feeds. If
you want to compile it yourself, you should look at the
<ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/mplayer?nav=index.html|src/.|src/packages">mplayer</ulink>
and the
<ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/libavcodec?nav=index.html|src/.|src/packages">libavcodec</ulink>
directory in the OpenZaurus distribution buildroot. These always have the latest
Makefile and patches used for building a CVS <application>MPlayer</application> with
<systemitem class="library">libavcodec</systemitem>.
If you need a GUI frontend, you can use xmms-embedded.
</para>
</sect2>
</sect1>
<sect1 id="bsd">
<title>*BSD</title>
<para>
<application>MPlayer</application> runs on all known BSD flavors.
There are ports/pkgsrc/fink/etc versions of <application>MPlayer</application>
available that are probably easier to use than our raw sources.
</para>
<para>
To build <application>MPlayer</application> you will need GNU make
(gmake - native BSD make will not work) and a recent version of binutils.
</para>
<para>
If <application>MPlayer</application> complains about not finding <filename>/dev/cdrom</filename>
or <filename>/dev/dvd</filename>, create an appropriate symbolic link:
<screen>ln -s /dev/<replaceable>your_cdrom_device</replaceable> /dev/cdrom</screen>
</para>
<para>
To use Win32 DLLs with <application>MPlayer</application> you will need to
re-compile the kernel with "<envar>option USER_LDT</envar>"
(unless you run FreeBSD-CURRENT,
where this is the default).
</para>
<sect2 id="freebsd">
<title>FreeBSD</title>
<para>
If your CPU has SSE, recompile your kernel with
"<envar>options CPU_ENABLE_SSE</envar>" (FreeBSD-STABLE or kernel
patches required).
</para>
</sect2>
<sect2 id="openbsd">
<title>OpenBSD</title>
<para>
Due to limitations in different versions of gas (relocation vs MMX), you
will need to compile in two steps: First make sure that the non-native as
is first in your <envar>$PATH</envar> and do a <command>gmake -k</command>, then
make sure that the native version is used and do <command>gmake</command>.
</para>
<para>
As of OpenBSD 3.4 the hack above is no longer needed.
</para>
</sect2>
<sect2 id="darwin">
<title>Darwin</title>
<para>
See the <link linkend="macos">Mac OS</link> section.
</para>
</sect2>
</sect1>
<sect1 id="unix">
<title>Commercial Unix</title>
<para>
<application>MPlayer</application> has been ported to a number of commercial
Unix variants. Since the development environments on these systems tend to be
different from those found on free Unixes, you may have to make some manual
adjustments to make the build work.
</para>
<sect2 id="solaris">
<title>Solaris</title>
<para>
<application>MPlayer</application> should work on Solaris 2.6 or newer.
Use the SUN audio driver with the <option>-ao sun</option> option for sound.
</para>
<para>
On <emphasis role="bold">UltraSPARCs</emphasis>, <application>MPlayer</application>
takes advantage of their <emphasis role="bold">VIS</emphasis> extensions
(equivalent to MMX), currently only in
<systemitem class="library">libmpeg2</systemitem>,
<systemitem class="library">libvo</systemitem>
and <systemitem class="library">libavcodec</systemitem>, but not in
<systemitem class="library">mp3lib</systemitem>. You can watch a VOB file
on a 400MHz CPU. You'll need
<ulink url="http://www.sun.com/sparc/vis/mediaLib.html"><systemitem class="library">mLib</systemitem></ulink>
installed.
</para>
<para><emphasis role="bold">Caveat:</emphasis></para>
<itemizedlist>
<listitem><para><emphasis role="bold">mediaLib</emphasis> is
<emphasis role="bold">currently disabled</emphasis> by default in
<application>MPlayer</application> because of brokenness. SPARC users
who build MPlayer with mediaLib support have reported a thick,
green-tint on video encoded and decoded with libavcodec. You may enable
it if you wish with:
<screen>
$ ./configure --enable-mlib
</screen>
You do this at your own risk. x86 users should
<emphasis role="bold">never</emphasis> use mediaLib, as this will
result in very poor MPlayer performance.
</para></listitem>
</itemizedlist>
<para>
To build the package you will need GNU <application>make</application>
(<filename>gmake</filename>, <filename>/opt/sfw/gmake</filename>), native
Solaris make will not work. Typical error you get when building with
Solaris' make instead of GNU make:
<screen>
% /usr/ccs/bin/make
make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
</screen>
</para>
<para>
On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter if
GNU C/C++ compiler is configured with or without the GNU assembler.
</para>
<para>
On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler,
configured to use the GNU assembler! The <application>MPlayer</application>
code on the x86 platform makes heavy use of MMX, SSE and 3DNOW! instructions
that cannot be compiled using Sun's assembler <filename>/usr/ccs/bin/as</filename>.
</para>
<para>
The <filename>configure</filename> script tries to find out, which
assembler program is used by your "gcc" command (in case the autodetection
fails, use the <option>--as=<replaceable>/wherever/you/have/installed/gnu-as</replaceable></option>
option to tell the <filename>configure</filename> script where it can find GNU
"as" on your system).
</para>
<para>Solutions to common problems:</para>
<itemizedlist>
<listitem><para>
Error message from <filename>configure</filename> on a Solaris x86 system using
GCC without GNU assembler:
<screen>
% configure
...
Checking assembler (/usr/ccs/bin/as) ... , failed
Please upgrade(downgrade) binutils to 2.10.1...
</screen>
(Solution: Install and use a gcc configured with <option>--with-as=gas</option>)
</para>
<para>
Typical error you get when building with a GNU C compiler that does not use GNU as:
<screen>
% gmake
...
gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
-fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c
Assembler: mplayer.c
"(stdin)", line 3567 : Illegal mnemonic
"(stdin)", line 3567 : Syntax error
... more "Illegal mnemonic" and "Syntax error" errors ...
</screen>
</para>
</listitem>
<listitem><para><application>MPlayer</application> may segfault when decoding
and encoding video that uses the win32codecs:
<screen>
...
Trying to force audio codec driver family acm...
Opening audio decoder: [acm] Win32/ACM decoders
sysi86(SI86DSCR): Invalid argument
Couldn't install fs segment, expect segfault
MPlayer interrupted by signal 11 in module: init_audio_codec
...
</screen>
This is because of a change to sysi86() in Solaris 10 and pre-Solaris
Nevada b31 releases. This has been fixed in Solaris Nevada b32;
however, Sun has yet to backport the fix to Solaris 10. The MPlayer
Project has made Sun aware of the problem and a patch is currently in
progress for Solaris 10. More information about this bug can be found
at:
<ulink
url="http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413"/>.
</para>
</listitem>
<listitem><para>
Due to bugs in Solaris 8, you may not be able to play DVD discs larger than 4 GB:
</para>
<itemizedlist>
<listitem><para>
The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk block >4GB
on a device using a logical blocksize != DEV_BSIZE (i.e. CD-ROM and DVD media).
Due to a 32Bit int overflow, a disk address modulo 4GB is accessed
(<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22516"/>).
This problem does not exist in the SPARC version of Solaris 8.
</para></listitem>
<listitem><para>
A similar bug is present in the hsfs(7FS) filesystem code (AKA ISO9660),
hsfs may not not support partitions/disks larger than 4GB, all data is
accessed modulo 4GB
(<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22592"/>).
The hsfs problem can be fixed by installing patch 109764-04 (sparc) / 109765-04 (x86).
</para></listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="irix">
<title>IRIX</title>
<para>
You can either try to install the GNU install program, and (if you did
not put it in your global path) then point to the location with:
<screen>./configure --with-install=<replaceable>/path/and/name/of/install</replaceable></screen>
</para>
<para>
Or you can use the default install delivered with IRIX 6.5 in which case
you will have to edit the <filename>Makefile</filename> by hand a little bit.
Change the following two lines:
<programlisting>
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1
$(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf
</programlisting>
to:
<programlisting>
$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/
$(INSTALL) -m 644 codecs.conf $(CONFDIR)/
</programlisting>
And then do (from within the <application>MPlayer</application> source dir):
<screen>cp DOCS/mplayer.1 . ; cp etc/codecs.conf .</screen>
and then go on with building and installing.
</para>
</sect2>
<sect2 id="hp-ux">
<title>HP-UX</title>
<para>
Joe Page hosts a detailed HP-UX <application>MPlayer</application>
<ulink url="http://users.rcn.com/joepage/mplayer_on_hpux11.htm">HOWTO</ulink>
by Martin Gansser on his homepage. With these instructions the build should
work out of the box. The following information is taken from this HOWTO.
</para>
<para>
You need GCC 3.4.0 or later, GNU make 3.80 or later and SDL 1.2.7 or later.
HP cc will not produce a working program, prior GCC versions are buggy.
For OpenGL functionality you need to install Mesa and the gl and gl2 video
output drivers should work, speed may be very bad, depending on the CPU speed,
though. A good replacement for the rather poor native HP-UX sound system is
GNU esound.
</para>
<para>
Create the DVD device
scan the SCSI bus with:
</para>
<screen>
# ioscan -fn
Class I H/W Path Driver S/W State H/W Type Description
...
ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI
target 3 8/16/5.2 tgt CLAIMED DEVICE
disk 4 8/16/5.<emphasis role="bold">2</emphasis>.<emphasis role="bold">0</emphasis> sdisk CLAIMED DEVICE <emphasis role="bold">PIONEER DVD-ROM DVD-305</emphasis>
/dev/dsk/c1t2d0 <emphasis role="bold">/dev/rdsk/c1t2d0</emphasis>
target 4 8/16/5.7 tgt CLAIMED DEVICE
ctl <emphasis role="bold">1</emphasis> 8/16/5.7.0 sctl CLAIMED DEVICE Initiator
/dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0
...
</screen>
<para>
The screen output shows a Pioneer DVD-ROM at SCSI address 2.
The card instance for hardware path 8/16 is 1.
</para>
<para>
Create a link from the raw device to the DVD device.
</para>
<screen>
# ln -s /dev/rdsk/c<replaceable><SCSI bus instance></replaceable>t<replaceable><SCSI target ID></replaceable>d<replaceable><LUN></replaceable> /dev/<replaceable><device></replaceable>
</screen>
<para>
Example:
</para>
<screen>
# ln -s /dev/rdsk/c1t2d0 /dev/dvd
</screen>
<para>
Below are solutions for some common problems:
</para>
<itemizedlist>
<listitem>
<para>
Crash at Start with the following error message:
<screen>
/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
</screen>
</para>
<para>
This means that the function <systemitem>.finite().</systemitem> is not
available in the standard HP-UX math library.
Instead there is <systemitem>.isfinite().</systemitem>.
Solution: Use the latest Mesa depot file.
</para>
</listitem>
<listitem>
<para>
Crash at playback with the following error message:
<screen>
/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
</screen>
</para>
<para>
Solution: Use the extralibdir option of configure
<option>--with-extralibdir="/usr/lib -lrt"</option>
</para>
</listitem>
<listitem>
<para>
MPlayer segfaults with a message like this:
<screen>
Pid 10166 received a SIGSEGV for stack growth failure.
Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz.
Segmentation fault
</screen>
</para>
<para>
Solution:
The HP-UX kernel has a default stack size of 8MB(?) per process.(11.0 and
newer 10.20 patches let you increase <systemitem>maxssiz</systemitem> up to
350MB for 32-bit programs). You need to extend <systemitem>maxssiz</systemitem>
and recompile the kernel (and reboot). You can use SAM to do this. (While at
it, check out the <systemitem>maxdsiz</systemitem> parameter for the maximum
amount of data a program can use. It depends on your applications, if the
default of 64MB is enough or not.)
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="aix">
<title>AIX</title>
<para>
<application>MPlayer</application> builds successfully on AIX 5.1,
5.2, and 5.3, using GCC 3.3 or greater. Building
<application>MPlayer</application> on AIX 4.3.3 and below is
untested. It is highly recommended that you build
<application>MPlayer</application> using GCC 3.4 or greater,
or if you are building on POWER5, GCC 4.0 is required.
</para>
<para>
Ensure that you are using GNU make
(<filename>/opt/freeware/bin/gmake</filename>) to build
<application>MPlayer</application>, as you will encounter problems if
you use <filename>/usr/ccs/bin/make</filename>.
</para>
<para>
CPU detection is still a work in progress.
The following architectures have been tested:
</para>
<itemizedlist>
<listitem><para>604e</para></listitem>
<listitem><para>POWER3</para></listitem>
<listitem><para>POWER4</para></listitem>
</itemizedlist>
<para>
The following architectures are untested, but should still work:
</para>
<itemizedlist>
<listitem><para>POWER</para></listitem>
<listitem><para>POWER2</para></listitem>
<listitem><para>POWER5</para></listitem>
</itemizedlist>
<para>
Sound via the Ultimedia Services is not supported, as Ultimedia was
dropped in AIX 5.1; therefore, the only option is to use the AIX Open
Sound System (OSS) drivers from 4Front Technologies at <ulink
url="http://www.opensound.com/aix.html">http://www.opensound.com/aix.html
</ulink>.
4Front Technologies freely provides OSS drivers for AIX 5.1 for
non-commercial use; however, there are currently no sound output
drivers for AIX 5.2 or 5.3. This means <emphasis role="bold">AIX 5.2
and 5.3 are not capable of MPlayer audio output, presently.</emphasis>
</para>
<para>Solutions to common problems:</para>
<itemizedlist>
<listitem>
<para>
If you encounter this error message from <filename>configure</filename>:
<screen>
$ ./configure
...
Checking for iconv program ... no
No working iconv program found, use
--charset=US-ASCII to continue anyway.
Messages in the GTK-2 interface will be broken then.
</screen>
This is because AIX uses non-standard character set names; therefore,
converting MPlayer output to another character set is currently not
supported. The solution is to use:
<screen>
$ ./configure --charset=noconv
</screen>
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="windows">
<title>Windows</title>
<para>Yes, <application>MPlayer</application> runs on Windows under
<ulink url="http://www.cygwin.com/"><application>Cygwin</application></ulink> and
<ulink url="http://www.mingw.org/"><application>MinGW</application></ulink>.
It does not have an official GUI yet, but the command line version
is completely functional. You should check out the
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">MPlayer-cygwin</ulink>
mailing list for help and latest information.
Official Windows binaries can be found on the
<ulink url="http://www.mplayerhq.hu/design7/dload.html">download page</ulink>.
Installer packages and simple GUI frontends are available from external
sources, we have collected then in the Windows section of our
<ulink url="http://www.mplayerhq.hu/design7/projects.html#windows">projects page</ulink>.
</para>
<para>If you wish to avoid using the command line, a simple trick is
to put a shortcut on your desktop that contains something like the
following in the execute section:
<screen><replaceable>c:\path\to\</replaceable>mplayer.exe %1</screen>
This will make <application>MPlayer</application> play any movie that is
dropped on the shortcut. Add <option>-fs</option> for fullscreen mode.
</para>
<para>Best results are achieved with the native DirectX video output driver
(<option>-vo directx</option>). Alternatives are OpenGL and SDL, but OpenGL
performance varies greatly between systems and SDL is known to
distort video or crash on some systems. If the image is
distorted, try turning off hardware acceleration with
<option>-vo directx:noaccel</option>. Download
<ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/contrib/dx7headers.tgz">DirectX 7 header files</ulink>
to compile the DirectX video output driver. Furthermore you need to have
DirectX 7 or later installed for the DirectX video output driver to work.
</para>
<para><link linkend="vidix">VIDIX</link> now works under Windows as
<option>-vo winvidix</option>, although it is still experimental
and needs a bit of manual setup. Download
<ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/dhahelperwin/dhahelper.sys">dhahelper.sys</ulink> or
<ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/dhahelperwin/withmtrr/dhahelper.sys">dhahelper.sys (with MTRR support)</ulink>
and copy it to the
<filename class="directory">libdha/dhahelperwin</filename> directory in your
<application>MPlayer</application> source tree.
Open a console and change to that directory. Then type
<screen>gcc -o dhasetup.exe dhasetup.c</screen>
and execute
<screen>dhasetup.exe install</screen>
as Administrator. After that you will have to reboot. When you are
done, copy the <systemitem class="library">.so</systemitem> files from
<filename class="directory">vidix/drivers</filename> to the
<filename class="directory">mplayer/vidix</filename> directory
relative to your <filename>mplayer.exe</filename>.</para>
<para>For best results <application>MPlayer</application> should use a
colorspace that your video card supports in hardware. Unfortunately many
Windows graphics drivers wrongly report some colorspaces as supported in
hardware. To find out which, try
<screen>mplayer -benchmark -nosound -frames 100 -vf format=<replaceable>colorspace</replaceable> <replaceable>movie</replaceable></screen>
where <replaceable>colorspace</replaceable> can be any colorspace
printed by the <option>-vf format=fmt=help</option> option. If you
find a colorspace your card handles particularly bad
<option>-vf noformat=<replaceable>colorspace</replaceable></option>
will keep it from being used. Add this to your config file to permanently
keep it from being used.</para>
<para>There are special codec packages for Windows available on our
<ulink url="http://www.mplayerhq.hu/design7/dload.html">download page</ulink>
to allow playing formats for which there is no native support yet.
Put the codecs somewhere in your path or pass
<option>--with-codecsdir=<replaceable>c:/path/to/your/codecs</replaceable></option>
(alternatively
<option>--with-codecsdir=<replaceable>/path/to/your/codecs</replaceable></option>
only on <application>Cygwin</application>) to <filename>configure</filename>.
We have had some reports that Real DLLs need to be writable by the user
running <application>MPlayer</application>, but only on some systems (NT4).
Try making them writable if you have problems.</para>
<para>You can play VCDs by playing the <filename>.DAT</filename> or <filename>.MPG</filename> files
that Windows exposes on VCDs. It works like this (adjust for the drive letter
of your CD-ROM):</para>
<screen>mplayer <replaceable>d:/mpegav/avseq01.dat</replaceable></screen>
<para>DVDs also work, adjust <option>-dvd-device</option> for the drive letter
of your DVD-ROM:</para>
<screen>mplayer dvd://<replaceable><title></replaceable> -dvd-device <replaceable>d</replaceable>:</screen>
<para>The <application>Cygwin</application>/<application>MinGW</application>
console is rather slow. Redirecting output or using the
<option>-quiet</option> option has been reported to improve performance on
some systems. Direct rendering (<option>-dr</option>) may also help.
If playback is jerky, try
<option>-autosync 100</option>. If some of these options help you, you
may want to put them in your config file.</para>
<note>
<para>On Windows the runtime CPU detection disables SSE support
because of recurring and hard-to-trace SSE-related crashes. If you
wish to have SSE support under Windows, you will have to compile without
runtime CPU-detection.
</para>
<para>If you have a Pentium 4 and are experiencing a crash using the
RealPlayer codecs, you may need to disable hyperthreading support.
</para>
</note>
<sect2 id="cygwin">
<title><application>Cygwin</application></title>
<para>You need to run <application>Cygwin</application> 1.5.0 or later in
order to compile <application>MPlayer</application>.</para>
<para>DirectX header files need to be extracted to <filename class="directory">/usr/include/</filename> or
<filename class="directory">/usr/local/include/</filename>.</para>
<para>Instructions and files for making SDL run under
<application>Cygwin</application> can be found on the
<ulink url="http://www.libsdl.org/extras/win32/cygwin/">libsdl site</ulink>.</para>
</sect2>
<sect2 id="mingw">
<title><application>MinGW</application></title>
<para>Installing a version of <application>MinGW</application> that could
compile <application>MPlayer</application> used to be quite tricky, but it
works out of the box now. Just install <application>MinGW</application>
3.1.0 or later and MSYS 1.0.9 or later and tell the MSYS postinstall that
<application>MinGW</application> is installed.</para>
<para>Extract DirectX header files to <filename class="directory">/mingw/include/</filename>.</para>
<para>MOV compressed header support requires
<ulink url="http://www.gzip.org/zlib/">zlib</ulink>, which
<application>MinGW</application> does not provide by default.
Configure it with <option>--prefix=/mingw</option> and install
it before compiling <application>MPlayer</application>.</para>
<para>Complete instructions for building <application>MPlayer</application>
and necessary libraries can be found in the
<ulink url="http://mplayerhq.hu/MPlayer/releases/win32/contrib/MPlayer-MinGW-Howto.txt">MPlayer MinGW HOWTO</ulink>.</para>
</sect2>
</sect1>
<sect1 id="macos">
<title>Mac OS</title>
<para>
<application>MPlayer</application> does not work on Mac OS versions before
10, but should compile out-of-the-box on Mac OS X 10.2 and up.
The preferred compiler is the Apple version of
GCC 3.x or later.
You can get the basic compilation environment by installing Apple's
<ulink url="http://developer.apple.com/tools/download/">Xcode</ulink>.
If you have Mac OS X 10.3.9 or later and QuickTime 7
you can use the <option>macosx</option> video output driver.
</para>
<para>
Unfortunately, this basic environment will not allow you to take advantage
of all the nice features of <application>MPlayer</application>.
For instance, in order to have OSD support compiled in, you will
need to have <systemitem class="library">fontconfig</systemitem>
and <systemitem class="library">freetype</systemitem> libraries
installed on your machine. Contrary to other Unixes such as most
Linux and BSD variants, OS X does not have a package system
that comes with the system.
</para>
<para>
There are at least two to choose from:
<ulink url="http://fink.sourceforge.net/">Fink</ulink> and
<ulink url="http://www.macports.org/">DarwinPorts</ulink>.
Both of them provide about the same service (i.e. a lot of packages to
choose from, dependency resolution, the ability to simply add/update/remove
packages, etc...).
Fink offers both precompiled binary packages or building everything from
source, whereas DarwinPorts only offers building from source.
The author of this guide chose DarwinPorts for the simple fact that its basic
setup was more lightweight.
Later examples will be based on DarwinPorts.
</para>
<para>
For instance, to compile <application>MPlayer</application> with OSD support:
<screen>sudo port install pkgconfig</screen>
This will install <application>pkg-config</application>, which is a system for
managing library compile/link flags.
<application>MPlayer</application>'s <systemitem>configure</systemitem> script
uses it to properly detect libraries.
Then you can install <application>fontconfig</application> in a
similar way:
<screen>sudo port install fontconfig</screen>
Then you can proceed with launching <application>MPlayer</application>'s
<systemitem>configure</systemitem> script (note the
<systemitem>PKG_CONFIG_PATH</systemitem> and <systemitem>PATH</systemitem>
environment variables so that <systemitem>configure</systemitem> finds the
libraries installed with DarwinPorts):
<screen>PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure</screen>
</para>
<sect2 id="osx_gui">
<title>MPlayer OS X GUI</title>
<para>
You can get a native GUI for <application>MPlayer</application> together with
precompiled <application>MPlayer</application> binaries for Mac OS X from the
<ulink url="http://mplayerosx.sf.net/">MPlayerOSX</ulink> project, but be
warned: that project is not active anymore.
</para>
<para>
Fortunately, <application>MPlayerOSX</application> has been taken over
by a member of the <application>MPlayer</application> team.
Preview releases are available from our
<ulink url="http://mplayerhq.hu/dload.html">download page</ulink>
and an official release should arrive soon.
</para>
<para>
In order to build <application>MPlayerOSX</application> from source
yourself, you need the <systemitem>mplayerosx</systemitem>, the
<systemitem>main</systemitem> and a copy of the
<systemitem>main</systemitem> CVS module named
<systemitem>main_noaltivec</systemitem>.
<systemitem>mplayerosx</systemitem> is the GUI frontend,
<systemitem>main</systemitem> is MPlayer and
<systemitem>main_noaltivec</systemitem> is MPlayer built without AltiVec
support.
</para>
<para>
To check out SVN modules use:
<screen>
svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main
</screen>
</para>
<para>
In order to build <application>MPlayerOSX</application> you will need to
set up something like this:
<screen>
MPlayer_source_directory
|
|--->main (MPlayer Subversion source)
|
|--->main_noaltivec (MPlayer Subversion source configured with --disable-altivec)
|
|--->mplayerosx (MPlayer OS X Subversion source)
</screen>
You first need to build main and main_noaltivec.
</para>
<para>
Next, set a global variable:
<screen>export MACOSX_DEPLOYMENT_TARGET=10.3</screen>
</para>
<para>
Then, configure:
</para>
<para>
If you configure for a G4 or later CPU with AltiVec support, do as follows:
<screen>
./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11
</screen>
If you configure for a G3-powered machine without AltiVec, use:
<screen>
./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11
--disable-altivec
</screen>
You may need to edit <filename>config.mak</filename> and change
<systemitem>-mcpu</systemitem> and <systemitem>-mtune</systemitem>
from <systemitem>74XX</systemitem> to <systemitem>G3</systemitem>.
</para>
<para>
Continue with
<screen>
make
</screen>
then go to the mplayerosx directory and type
<screen>
make dist
</screen>
This will create a compressed <systemitem>.dmg</systemitem> archive
with the ready to use binary.
</para>
<para>
You can also use the <application>Xcode</application> 2.1 project;
the old project for <application>Xcode</application> 1.x does
not work anymore.
</para>
</sect2>
</sect1>
<sect1 id="exotic_platforms">
<title>Exotic Platforms</title>
<para>
<application>MPlayer</application> runs on a number of exotic platforms,
but most of the platform-specific changes from those systems have not been
merged back into the main source tree.
For build instructions you should refer to the system-specific documentation.
</para>
<sect2 id="qnx">
<title>QNX</title>
<para>
You'll need to download and install SDL for QNX. Then run
<application>MPlayer</application> with <option>-vo sdl:driver=photon</option>
and <option>-ao sdl:nto</option> options, it should be fast.
</para>
<para>
The <option>-vo x11</option> output will be even slower than on Linux,
since QNX has only X <emphasis>emulation</emphasis> which is very slow.
</para>
</sect2>
<sect2 id="amiga">
<title>Amiga/MorphOS (GeekGadgets)</title>
<para>
The people over at <ulink url="http://www.amigasoft.net">www.amigasoft.net</ulink>
make current <application>MPlayer</application> and
<application>MEncoder</application> packages.
</para>
<para>
Nicholas Det at Genesi has done a big and powerful port of <application>MPlayer
</application> for MorphOS. Sadly it's based on the 0.90 series.
</para>
<para>
Get if from <ulink url="http://www.morphzone.org/">MorphZone</ulink>:
<itemizedlist>
<listitem><para>
<ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=90">
<application>MPlayer</application> 0.91 binary</ulink>
</para></listitem>
<listitem><para>
<ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=91">
<application>MPlayer</application> 0.91 source</ulink>
</para></listitem>
<listitem><para>
<ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=92">
<application>MEncoder</application> 1.0pre3 binary</ulink>
</para></listitem>
</itemizedlist>
</para>
</sect2>
</sect1>
</chapter>
|