1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
# Architecture
*This document describes Kdenlive’s architecture top-down.*
* Top-down architecture
* Dependencies MLT etc.
* MVC
* GUI elements and their counterpart
## Architectural Overview
Kdenlive uses a number of libraries. The most important library is MLT which is
responsible for the core video editing functionality: the process of applying
effects to clips which are organised in tracks and timeline(s). Kdenlive
provides the user interface for this functionality.
Kdenlive and MLT use a number of resources like frei0r for video effects.
```
┌────────┐
│Kdenlive├─────┐
└────┬───┘ │
Render projects│ │Configure
Decode audio/video│ │effect settings
│ │
┌────┴───┐ │
│ MLT ├─────┤
└────────┘ │Audio/Video Effects
├───────┬──────┬─────────┐
┌──┴───┐┌──┴───┐┌─┴─┐┌──────┴──────┐
│frei0r││LADSPA││SoX││libsamplerate│
└──────┘└──────┘└───┘└─────────────┘
```
<!-- http://marklodato.github.io/js-boxdrawing/ for drawing -->
## Class Diagram
A class diagram can be generated with Doxygen and GraphViz with the commands
below. Instead of docker, you can also run `doxygen` directly.
```bash
# Generate a Doxyfile (configuration file)
docker run -it --rm -v $(pwd):/data hrektts/doxygen doxygen -g
# Now edit the file and set the following variables:
# EXTRACT_ALL = YES
# HAVE_DOT = YES
# UML_LOOK = YES
# RECURSIVE = YES
# INPUT = src
# Now run Doxygen to generate the docs and UML files
docker run -it --rm -v $(pwd):/data hrektts/doxygen doxygen Doxyfile
```
|