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