1 Installation Documentation
3 Copyright (C) 2004 Ushodaya Enterprises Limited
4 Author: Charles Yates <charles.yates@pandora.be>
5 Last Revision: 2004-04-13
11 This document provides a description of the MLT project installation and
18 The directory heirarchy is defined as follows:
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 + core - Independent MLT services
26 + dv - libdv dependent services
27 + ffmpeg - ffmpeg dependent services
28 + avformat - libavformat dependent services
29 + vorbis - vorbis dependenent services
30 + sdl - SDL dependent services
31 + resample - libresample dependent services
32 + gtk2 - pango and pixbuf dependent services
33 + fezzik - A giant (meta) service to load and normalise media
34 + westley - Nice and clever XML services
35 + vorbis - Ogg Vorbis dependent services
36 + xine - Xine-derived sources
37 + bluefish - Bluefish dependent services (*)
38 + mainconcept - mainconcept dependent services (*)
39 + inigo - A media playing test application
40 + valerie - Client API to access the server
41 + miracle - The server implementation
42 + albino - A simple console (protocol level) example
43 + humperdink - A terminal-based example client
44 + tests - Reserved for regression and unit tests
46 Additional subdirectories may be nested below those shown and should be
47 documented in their parent.
49 (*) Not posted to CVS due to licensing issues.
55 The MLT core is dependent on:
57 * a C99 compliant C compiler
59 * standard posix libraries
61 The MLT applications and libraries provided are all dependent on the core.
63 The modules have the following dependencies:
65 ----------- ----------------------------------------------------------
67 ----------- ----------------------------------------------------------
68 avformat Provided from ffmpeg CVS and compiled as a shared library.
69 URL: http://ffmpeg.sf.net
70 ----------- ----------------------------------------------------------
71 bluefish Bluefish hardware and software development kit
72 URL: http://www.bluefish444.com
73 ----------- ----------------------------------------------------------
74 dv libdv 0.102 or later.
75 URL: http://libdv.sf.net
76 ----------- ----------------------------------------------------------
77 gtk2 GTK2 and associated dependencies.
78 URL: http://www.gtk.org
79 ----------- ----------------------------------------------------------
80 mainconcept Mainconcept MPEG and DVCPRO Release SDKs.
81 URL: http://www.mainconcept.com
82 ----------- ----------------------------------------------------------
83 resample libsamplerate 0.15 or later
84 URL: http://www.mega-nerd.com/SRC/
85 ----------- ----------------------------------------------------------
87 URL: http://www.libsdl.org
88 ----------- ----------------------------------------------------------
89 vorbis libvorbis 1.0.1 or later.
90 URL: http://www.vorbis.com/
91 ----------- ----------------------------------------------------------
92 westley libxml2 2.5 or later.
93 URL: http://www.xmlsoft.org/
94 ----------- ----------------------------------------------------------
100 Configuration is triggered from the top level directory via a
103 Each source bearing subdirectory shown above have their own configure
104 script which are called automatically from the top level.
106 Typically, new modules can be introduced without modification to the
107 configure script and arguments are accepted and passed through to all
112 ./configure --help - report all configure options
113 ./configure --prefix=[dir] - target install directory (default: /usr/local)
114 ./configure --disable-[mod] - do not compile specified module(s)
115 ./configure --[other] - pass through to children
117 NB: This script must be run to register new services after a CVS checkout
118 or subsequent update.
124 Makefiles are generated during configuration and these are based on
125 a per directory template which must be provided by the developer.
131 To execute the mlt tools without installation, or to test a new version
132 on a system with an already installed mlt version, you should run:
136 NB: This applies to your current shell only and it assumes sh or bash.
142 The install is triggered by running make install from the top level
145 The framework produces a single shared object which is installed in
146 $prefix/lib/ and public header files which are installed in
147 $prefix/include/mlt/framework.
149 Valerie produces a single shared object which is installed in
150 $prefix/lib/ and public header which are installed in
151 $prefix/include/mlt/valerie.
153 Miracle produces a single exectuable which is installed in
154 $prefix/bin/, a library in $prefix/lib and associated header files in
157 The modules produce a shared object per module and update text files
158 containing a list of modules provided by this build. These are installed
159 in $prefix/share/mlt/modules. It is at the discretion of the module to
160 install additional support files.
162 To allow the development of external components, mlt-config and scripts
163 are generated and installed in $prefix/bin.
165 After install, only those modules listed are usable by the server. No
166 module is loaded unless explicitly requested via server configuration
169 External modules are also placed in this $prefix/share/mlt/modules, and the
170 installation of those must modify the text file accordingly before they
171 will be considered at runtime.
177 All compilation in the project has {top-level-dir}/src on the include path.
178 All headers are included as:
180 #include <framework/file.h>
182 All external modules have {prefix}/include/mlt on the include path. All
183 headers should also be included as:
185 #include <framework/file.h>
187 This allows migration of source between external and internal modules.
188 The configuration and Makefile template requirements will require