]> git.sesse.net Git - mlt/blob - docs/install.txt
Set version to 0.4.10 and update release notes.
[mlt] / docs / install.txt
1 Installation Documentation
2
3 Copyright (C) 2004-2009 Ushodaya Enterprises Limited
4 Author: Charles Yates <charles.yates@pandora.be>
5 Last Revision: 2009-05-08
6
7
8 INSTALL
9 -------
10
11         This document provides a description of the MLT project installation and
12         organisation.
13
14
15 Directories
16 -----------
17
18         The directory heirarchy is defined as follows:
19
20         + demo                  - A selection of samples to show off capabilities.
21         + docs                  - Location of all documentation
22         + src                   - All project source is provided here
23             + framework         - The mlt media framework
24             + modules           - All services are defined here
25                 + avformat      - libavformat dependent services
26                 + bluefish      - Bluefish dependent services (*)
27                 + core          - Independent MLT services
28                 + dv            - libdv dependent services
29                 + gtk2          - pango and pixbuf dependent services
30                 + mainconcept   - mainconcept dependent services (*)
31                 + normalize     - audio normalisation functions (**)
32                 + plus          - throwaway silliness
33                 + resample      - libresample dependent services (**)
34                 + sdl           - SDL dependent services
35                 + vorbis        - vorbis dependenent services
36                 + xml           - XML (de)serialization services
37                 + xine          - Xine-derived sources (**)
38             + melt              - A media playing test application (**)
39             + tests             - Reserved for regression and unit tests
40
41         Additional subdirectories may be nested below those shown and should be
42         documented in their parent.
43
44         (*)  Not posted to CVS due to licensing issues.
45         (**) Contains GPL dependencies or code.
46
47
48 Dependencies
49 ------------
50
51         The MLT core is dependent on:
52
53         * a C99 compliant C compiler
54         * posix threading
55         * standard posix libraries
56
57         The MLT applications and libraries provided are all dependent on the core.
58
59         The modules have the following dependencies:
60
61         ----------- ----------------------------------------------------------
62         MODULE      DESCRIPTION
63         ----------- ----------------------------------------------------------
64         avformat    Provided from ffmpeg CVS and compiled as a shared library.
65                     URL: http://ffmpeg.sf.net
66         ----------- ----------------------------------------------------------
67         bluefish    Bluefish hardware and software development kit
68                     URL: http://www.bluefish444.com
69         ----------- ----------------------------------------------------------
70         dv          libdv 0.102 or later.
71                     URL: http://libdv.sf.net
72         ----------- ----------------------------------------------------------
73         gtk2        GTK2 and associated dependencies.
74                     URL: http://www.gtk.org
75         ----------- ----------------------------------------------------------
76         mainconcept Mainconcept MPEG and DVCPRO Release SDKs.
77                     URL: http://www.mainconcept.com
78         ----------- ----------------------------------------------------------
79         resample    libsamplerate 0.15 or later 
80                     URL: http://www.mega-nerd.com/SRC/ (GPL)
81         ----------- ----------------------------------------------------------
82         sdl         SDL 1.2 or later.
83                     URL: http://www.libsdl.org
84         ----------- ----------------------------------------------------------
85         vorbis      libvorbis 1.0.1 or later.
86                     URL: http://www.vorbis.com/
87         ----------- ----------------------------------------------------------
88         xml         libxml2 2.5 or later.
89                     URL: http://www.xmlsoft.org/
90         ----------- ----------------------------------------------------------
91
92
93 Configuration
94 -------------
95
96         Configuration is triggered from the top level directory via a 
97         ./configure script.
98
99         Each source bearing subdirectory shown above have their own configure
100         script which are called automatically from the top level.
101
102         Typically, new modules can be introduced without modification to the 
103         configure script and arguments are accepted and passed through to all 
104         subdirectories.
105
106         More information on usage is found by running:
107
108             ./configure --help
109
110         NB: This script must be run to register new services after a CVS checkout
111         or subsequent update.
112
113         
114 Compilation
115 -----------
116
117         Makefiles are generated during configuration and these are based on
118         a per directory template which must be provided by the developer.
119
120
121 Testing
122 -------
123
124         To execute the mlt tools without installation, or to test a new version
125         on a system with an already installed mlt version, you should run:
126
127         . setenv
128
129         NB: This applies to your current shell only and it assumes sh or bash.
130
131
132 Installation
133 ------------
134
135         The install is triggered by running make install from the top level
136         directory.
137         
138         The framework produces a single shared object which is installed in 
139         $prefix/lib/ and public header files which are installed in
140         $prefix/include/mlt/framework.
141
142         The modules produce a shared object per module and update text files
143         containing a list of modules provided by this build. These are installed 
144         in $prefix/share/mlt/modules. It is at the discretion of the module to 
145         install additional support files. 
146         
147         To allow the development of external components, mlt-config and scripts 
148         are generated and installed in $prefix/bin.
149
150         After install, only those modules listed are usable by the server. No
151         module is loaded unless explicitly requested via server configuration
152         or usage.
153
154         External modules are also placed in this $prefix/share/mlt/modules, and the
155         installation of those must modify the text file accordingly before they
156         will be considered at runtime.
157
158
159 Development
160 -----------
161
162         All compilation in the project has {top-level-dir}/src on the include path. 
163         All headers are included as:
164
165             #include <framework/file.h>
166         
167         All external modules have {prefix}/include/mlt on the include path. All 
168         headers should also be included as:
169
170             #include <framework/file.h>
171
172         This allows migration of source between external and internal modules. 
173         The configuration and Makefile template requirements will require
174         attention though.