架构(Architecture)
本文档自顶向下地描述 Kdenlive 的架构。
- 自顶向下的架构
- 依赖项 MLT 等
- MVC
- GUI 元素及其对应物
架构总览
Kdenlive 使用了大量库。其中最重要的库是 MLT,它负责核心的视频编辑 功能:把效果应用到组织在轨道和时间线上的片段这一处理过程。Kdenlive 为这一功能提供用户界面。
Kdenlive 和 MLT 使用了一些外部资源,例如用于视频效果的 frei0r。
┌────────┐
│Kdenlive├─────┐
└────┬───┘ │
Render projects│ │Configure
Decode audio/video│ │effect settings
│ │
┌────┴───┐ │
│ MLT ├─────┤
└────────┘ │Audio/Video Effects
├───────┬──────┬─────────┐
┌──┴───┐┌──┴───┐┌─┴─┐┌──────┴──────┐
│frei0r││LADSPA││SoX││libsamplerate│
└──────┘└──────┘└───┘└─────────────┘<!-- http://marklodato.github.io/js-boxdrawing/ (opens in a new tab) for drawing -->
类图(Class Diagram)
可以用 Doxygen 和 GraphViz 配合下面的命令生成类图。
除了 docker,你也可以直接运行 doxygen。
# 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