Warning, /multimedia/kdenlive/dev-docs/architecture.md is written in an unsupported language. File is not indexed.

0001 # Architecture
0002 
0003 *This document describes Kdenlive’s architecture top-down.*
0004 
0005 * Top-down architecture
0006   * Dependencies MLT etc.
0007   * MVC
0008   * GUI elements and their counterpart
0009 
0010 
0011 ## Architectural Overview
0012 
0013 Kdenlive uses a number of libraries. The most important library is MLT which is
0014 responsible for the core video editing functionality: the process of applying
0015 effects to clips which are organised in tracks and timeline(s). Kdenlive
0016 provides the user interface for this functionality.
0017 
0018 Kdenlive and MLT use a number of resources like frei0r for video effects.
0019 
0020 ```
0021               ┌────────┐   
0022               │Kdenlive├─────┐
0023               └────┬───┘     │
0024     Render projects│         │Configure
0025  Decode audio/video│         │effect settings
0026                    │         │        
0027               ┌────┴───┐     │        
0028               │  MLT   ├─────┤             
0029               └────────┘     │Audio/Video Effects
0030                              ├───────┬──────┬─────────┐
0031                           ┌──┴───┐┌──┴───┐┌─┴─┐┌──────┴──────┐
0032                           │frei0r││LADSPA││SoX││libsamplerate│
0033                           └──────┘└──────┘└───┘└─────────────┘
0034 ```
0035 <!-- http://marklodato.github.io/js-boxdrawing/ for drawing -->
0036 
0037 
0038 ## Class Diagram
0039 
0040 A class diagram can be generated with Doxygen and GraphViz with the commands
0041 below. Instead of docker, you can also run `doxygen` directly.
0042 
0043 ```bash
0044 # Generate a Doxyfile (configuration file)
0045 docker run -it --rm -v $(pwd):/data hrektts/doxygen doxygen -g
0046 
0047 # Now edit the file and set the following variables:
0048 # EXTRACT_ALL   = YES
0049 # HAVE_DOT      = YES
0050 # UML_LOOK      = YES
0051 # RECURSIVE     = YES
0052 # INPUT         = src
0053 
0054 # Now run Doxygen to generate the docs and UML files
0055 docker run -it --rm -v $(pwd):/data hrektts/doxygen doxygen Doxyfile
0056 ```