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