Update libav submodule
[mplayer-build.git] / README
blobdb8577a19dd6e90a6d78ed1dc6c9d36398a846e9
1 This repository contains scripts to help build mplayer2 together with
2 some dependencies that many platforms will not have a new enough
3 version of. This makes it easy to compile the player against
4 up-to-date  library versions without needing to manually compile the
5 libraries first. More specifically, the scripts first compile Libav
6 and libass and then build the player statically linked against those.
8 If you downloaded the tarball version of the repository then most
9 of the sections below do not apply. In that case see only the
10 following sections:
11 "Prerequisites"
12 "Basic use" (leave out the "./init" part, the tarball does not need that)
13 "Building"
14 "Giving configure options to mplayer2 and Libav".
16 CHANGES FROM EARLIER VERSIONS OF THIS FILE (2011-09-01):
17 List new libfribidi requirement for latest libass in the Prerequisites section.
18 (2011-08-30):
19 Changed mentions of FFmpeg-mt/FFmpeg to Libav and removed the separate
20 documentation of threading. Libav has the threading support developed in
21 FFmpeg-mt, and mplayer2 uses a number of threads equal to CPU cores by
22 default.
23 (2010-12-20):
24 FFmpeg-mt is now enabled by default in new installs (updating doesn't
25 change selection), player selects thread count automatically
29 Prerequisites
31 This section lists some system packages you need to have installed in
32 addition to a basic build environment.
34 The libass build system uses autotool packages (autoconf, automake, libtool).
35 If you compile from git you must have those installed; tarball exports
36 contain pregenerated files and those are not necessary.
37 Libass also requires libfribidi development files.
38 Libav needs the Yasm assembler.
40 Compiling with full features requires development files for several
41 external libraries. Below is a list of some important requirements.
42 Libraries specific to particular video output methods
43 (you'll want at least one of VDPAU, GL or Xv):
44  - libvdpau (for VDPAU output, best choice for NVIDIA cards)
45  - libGL (OpenGL output)
46  - libXv (XVideo output)
47 general:
48  - libasound   (ALSA audio output)
49  - various general X development libraries
50  - libfreetype
51  - libfontconfig
52  - libfribidi (required by current libass)
56 Basic use
58 Assuming you have required system components installed, the following
59 commands should be enough to build the player:
60 $ ./init --shallow
61 $ make -j 6
62 $ make install
63 You can also run it like "mplayer/mplayer some_file.mkv" without doing
64 the last install step.
65 For more details see below.
69 Initializing the repo
71 First you need to download the actual sources, using either:
73 ./init
75 ./init --shallow
77 The latter form creates only partial git repositories which do not
78 have full history data. This reduces the amount of data you need to
79 download but reduces the development-related functionality of the
80 repositories. If you only want to simply build mplayer2 it should
81 usually be enough.
85 Building
87 You can build mplayer2 with just 'make'. There is no separate
88 configure step because the mplayer2 configure depends on included
89 library sources being configured _and_ built first. If you want to
90 give configuration options see the section below.
94 Giving configure options to mplayer2 and Libav
96 You can specify extra options that will be passed to mplayer2's
97 configure script by placing them in a file called "mplayer_options" in
98 this directory. There's a corresponding file called "libav_options"
99 for Libav. Options in file "common_options" will be passed to both
100 mplayer2 and Libav; this mainly makes sense for generic options like
101 "-cc=gcc-4.4'. Place each option on its own line without any quoting.
105 Helper scripts included in this repo:
107 ./init
108 Prepare the repository by downloading actual sources. You need to run
109 this at least once before you can build anything. With the --shallow
110 argument creates shallow git repositories that require less bandwidth
111 to download.
113 ./update
114 Download the latest version of the sources.
116 ./clean
117 Remove all generated or extra files from build directories and
118 restore them to their original state. Running this between builds is
119 probably a good idea.