This document provides a description of the MLT project installation and organization.
The directory heirarchy is defined as follows:
Additional subdirectories may be nested below those shown and should be documented in their parent.
(*) Contains GPL dependencies or code.
The MLT core is dependent on:
The MLT applications and libraries provided are all dependent on the core.
The modules have the following dependencies:
Module | Description |
avformat | FFmpeg 4.0 or later |
gdk | GTK2 and associated dependencies |
jackrack | JACK, libxml2, and ladspa.h |
movit | Movit |
qt | Qt 5.6 or later |
resample | libsamplerate 0.15 or later |
sdl2 | SDL 2.0 or later |
sox | SoX 13 or later |
vorbis | libvorbis 1.0.1 or later |
xml | libxml12 2.5 or later |
Configuration is triggered from the top level directory via a CMakeLists.txt
file.
Each source bearing subdirectory shown above have their own CMakeLists.txt
file, which is called automatically from the top level.
More information on usage is found by viewing CMakeLists.txt
and the
cmake documentation.
Makefiles are generated during configuration and these are based on a per directory template which must be provided by the developer.
To execute the MLT tools without installation, or to test a new version
on a system with an already installed MLT version in a Bash shell run:
source setenv
Note: This applies to your current shell only and it assumes sh or bash.
The install is triggered by running cmake --install
from the build
directory.
The framework produces a single shared object which is installed in $prefix/lib/ and public header files which are installed in $prefix/include/mlt/framework and $prefix/include/mlt++.
The modules produce a shared object per module installed to $prefix/lib/mlt. Also, each module may have support files installed to $prefix/share/mlt/modules.
For the development of modules and applications, pkg-config metadata files are generated and installed in $prefix/lib/pkgconfig.
All compilation in the project has {top-level-dir}/src on the include path. All headers are included as:
#include <framework/file.h>
All external modules have {prefix}/include/mlt on the include path. All headers should also be included as:
#include <framework/file.h>
This allows migration of source between external and internal modules. The configuration and Makefile template requirements will require attention though.
Subscribe to News via RSS.