+Installation Documentation
+
+Copyright (C) 2004-2009 Ushodaya Enterprises Limited
+Author: Charles Yates <charles.yates@pandora.be>
+Last Revision: 2009-05-15
+
+
INSTALL
-------
- This document provides a description of the MLT project installation and
- organisation.
-
- It provides *CRITICAL* architecture information, so please read carefully
- if you plan to extend or use the MLT code base.
+ This document provides a description of the MLT Melted project installation
+ and organisation.
Directories
The directory heirarchy is defined as follows:
- + demo - A selection of samples to show off capabilities.
+ docs - Location of all documentation
+ src - All project source is provided here
- + framework - The mlt media framework
+ + melted - The server implementation (*)
+ + mvcp - Client API to access the server
+ + mvcp-console - A simple console (protocol level) example (*)
+ + mvcp-client - A terminal-based example client (*)
+ modules - All services are defined here
- + core - Independent MLT services
- + dv - libdv dependent services
- + ffmpeg - ffmpeg dependent services
- + avformat - libavformat dependent services
- + vorbis - vorbis dependenent services
- + sdl - SDL dependent services
- + resample - libresample dependent services
- + gtk2 - pango and pixbuf dependent services
- + fezzik - A giant (meta) service to load and normalise media
- + westley Nice and clever XML services
- + vorbis Ogg Vorbis dependent services
- + xine - Xine-derived sources
- + bluefish - Bluefish dependent services (*)
- + mainconcept - mainconcept dependent services (*)
- + inigo - A media playing test application
- + valerie - Client API to access the server
- + miracle - The server implementation
- + albino - A simple console (protocol level) example
- + humperdink - A terminal-based example client
- + tests - Reserved for regression and unit tests
+ + mvcp - MVCP consumer
+ + melted++ - C++ classes for melted and mvcp
Additional subdirectories may be nested below those shown and should be
documented in their parent.
- (*) Not posted to CVS due to licensing issues.
+ (*) Contains GPL dependencies or code.
+
+
+Dependencies
+------------
+
+ Melted is dependent on:
+
+ * The MLT framework library
+ * a C99 compliant C compiler
+ * posix threading
+ * standard posix libraries
Configuration
configure script and arguments are accepted and passed through to all
subdirectories.
- Top level usage is:
+ More information on usage is found by running:
- ./configure --help - report all configure options
- ./configure --prefix=[dir] - target install directory (default: /usr/local)
- ./configure --disable-[mod] - do not compile specified module(s)
- ./configure --[other] - pass through to children
+ ./configure --help
NB: This script must be run to register new services after a CVS checkout
or subsequent update.
a per directory template which must be provided by the developer.
-Testing
--------
-
- To execute the mlt tools without installation, or to test a new version
- on a system with an already installed mlt version, you should run:
-
- . setenv
-
- NB: This applies to your current shell only.
-
-
Installation
------------
- * NOT IMPLEMENTED YET *
-
- The install is triggered by running make install or make install-strip
- from the top level directory.
+ The install is triggered by running make install from the top level
+ 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.
-
- The client produces a single shared object which is installed in
+ Mvcp produces a single shared object which is installed in
$prefix/lib/ and public header which are installed in
- $prefix/include/mlt/client.
+ $prefix/include/mlt/mvcp.
- The server produces a single exectuable which is installed in
- $prefix/bin/. This is linked against the framework shared object and
- posix libs but not against any of the modules.
+ Melted produces a single exectuable which is installed in
+ $prefix/bin/, a library in $prefix/lib and associated header files in
+ $prefix/include/mlt/melted.
- The modules produce a shared object per module and update text files
- containing a list of modules provided by this build. These are installed
- in $prefix/share/mlt/. It is at the discretion of the module to install
- additional support files.
+ The modules produce a shared object per module. These are installed
+ in $prefix/lib/mlt/modules. It is at the discretion of the module to
+ install additional support files in $prefix/share/mlt.
- To allow the development of external components, mlt-client-config and
- mlt-framework-config scripts are generated and installed in $prefix/bin.
+ To allow the development of external components, pkg-config config files
+ are generated and installed in $prefix/lib/pkgconfig.
After install, only those modules listed are usable by the server. No
module is loaded unless explicitly requested via server configuration
or usage.
-
- External modules are also placed in this $prefix/share/mlt, and the
- installation of those must modify the text file accordingly before they
- will be considered at runtime.
-
-
-Development
------------
-
- 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.