kdenlive
架构(Architecture)

架构(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