]> git.sesse.net Git - mlt/blob - docs/install.txt
A little debugging.
[mlt] / docs / install.txt
1 ---+ Installation Documentation
2
3 Last Revision: 2013-09-07
4
5    This document provides a description of the MLT project installation and
6    organisation.
7
8
9 ---++ Directories
10
11    The directory heirarchy is defined as follows:
12
13    * demo                - A selection of samples to show off capabilities.
14    * docs                - Location of all documentation
15    * presets             - Properties presets for various services
16    * profiles            - MLT profile configurations
17    * src                 - All project source is provided here
18       * framework        - The MLT media framework
19       * melt             - A media playing test application (*)
20       * mlt++            - C++ wrapper for framework
21       * modules          - All services are defined here
22          * avformat      - FFmpeg/Libav dependent services
23          * avsync        - services to help test audio/video synchronization
24          * core          - independent MLT services
25          * decklink      - Blackmagick Design SDI/HDMI services
26          * dgraft        - ports of Donald Graft's filters (*)
27          * dv            - libdv dependent services
28          * effectv       - ports of !EffecTV filters (*)
29          * feeds         - templates for use with core's data filters
30          * frei0r        - adapter for frei0r video plugins
31          * gtk2          - GTK+ pango and pixbuf dependent services
32          * jackrack      - adapter for LADSPA audio plugins and JACK server
33          * kdenlive      - services contributed by Kdenlive project
34          * kino          - DV/AVI demuxer from Kino project (*)
35          * linsys        - DVEO SDI card consumer (*)
36          * lumas         - wipe file generator for core's luma transition
37          * motion_est    - motion estimation-based filters (*)
38          * normalize     - audio normalisation functions (*)
39          * oldfilm       - filters to make pristine video dirty
40          * opengl        - !OpenGL dependent services (*)
41          * plus          - miscellaneous services (pending move to core)
42          * qt            - Qt dependent services (*)
43          * resample      - libresample dependent services (*)
44          * rotoscoping   - spline-based alpha mask filter (*)
45          * rtaudio       - audio consumer based on !RtAudio project code
46          * sdl           - SDL dependent services
47          * sox           - !SoX dependent audio filters
48          * swfdec        - Swfdec dependent producer for Flash files
49          * videostab     - video stabilization filters (*)
50          * vmfx          - services contributed by (defunct) Visual Media FX
51          * vorbis        - vorbis dependenent services
52          * xine          - Xine-derived sources (*)
53          * xml           - XML (de)serialization services
54       * swig             - High level language bindings using SWIG
55       * tests            - Reserved for regression and unit tests
56       * win32            - Windows-specific helper functions
57
58    Additional subdirectories may be nested below those shown and should be
59    documented in their parent.
60
61    (*) Contains GPL dependencies or code.
62
63
64 ---++ Dependencies
65
66    The MLT core is dependent on:
67
68    * a C99 compliant C compiler
69    * posix threading (pthread)
70    * standard posix libraries (libc)
71
72    The MLT applications and libraries provided are all dependent on the core.
73
74    The modules have the following dependencies:
75
76    | *Module* | *Description* |
77    | avformat | [[http://www.ffmpeg.org][FFmpeg]] or [[http://www.libav.org][libav]] v0.7 or later |
78    | dv       | [[http://libdv.sf.net][libdv]] 0.102 or later |
79    | gtk2     | [[http://www.gtk.org][GTK2]] and associated dependencies |
80    | jackrack | [[http://jackaudio.org][JACK]], [[http://www.xmlsoft.org/][libxml2]], and ladspa.h |
81    | opengl   | [[http://git.sesse.net/movit][Movit]] |
82    | qt       | [[http://www.qt-project.org][Qt]] 4.4 or later |
83    | resample | [[http://www.mega-nerd.com/SRC][libsamplerate]] 0.15 or later |
84    | sdl      | [[http://www.libsdl.org][SDL]] 1.2 or later |
85    | sox      | [[http://sox.sourceforge.net][SoX]] 13 or later |
86    | swfdec   | [[http://github.com/mltframework/swfdec][swfdec]] 0.8 or later |
87    | vorbis   | [[http://www.vorbis.com][libvorbis]] 1.0.1 or later |
88    | xml      | [[http://www.xmlsoft.org][libxml2]] 2.5 or later |
89
90
91 ---++ Configuration
92
93    Configuration is triggered from the top level directory via a 
94    ./configure script.
95
96    Each source bearing subdirectory shown above have their own configure
97    script which are called automatically from the top level.
98
99    Typically, new modules can be introduced without modification to the 
100    configure script and arguments are accepted and passed through to all 
101    subdirectories.
102
103    More information on usage is found by running:
104
105    =./configure --help=
106
107    Note: This script must be run to register new services after a git clone
108    or subsequent update.
109
110 ---++ Compilation
111
112    Makefiles are generated during configuration and these are based on
113    a per directory template which must be provided by the developer.
114
115
116 ---++ Testing
117
118    To execute the MLT tools without installation, or to test a new version
119    on a system with an already installed MLT version in a Bash shell run:
120
121    =source setenv=
122
123    Note: This applies to your current shell only and it assumes sh or bash.
124
125
126 ---++ Installation
127
128    The install is triggered by running make install from the top level
129    directory.
130
131    The framework produces a single shared object which is installed in
132    $prefix/lib/ and public header files which are installed in
133    $prefix/include/mlt/framework and $prefix/include/mlt++.
134
135    The modules produce a shared object per module installed to
136    $prefix/lib/mlt. Also, each module may have support files installed to
137    $prefix/share/mlt/modules.
138
139    For the development of modules and applications, pkg-config metadata files
140    are generated and installed in $prefix/lib/pkgconfig.
141
142
143 ---++ Development
144
145    All compilation in the project has {top-level-dir}/src on the include path. 
146    All headers are included as:
147
148    #include <framework/file.h>
149
150    All external modules have {prefix}/include/mlt on the include path. All 
151    headers should also be included as:
152
153    #include <framework/file.h>
154
155    This allows migration of source between external and internal modules. 
156    The configuration and Makefile template requirements will require
157    attention though.