Files
kdenlive/dev-docs/architecture.md
2020-05-21 13:08:13 +02:00

57 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Architecture
*This document describes Kdenlives 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
```