All things concering the big picture.
Not a real code package, rather a container for design drafts, specifications, decisions.
The various Components comprising the Cinelerra3 Video editing Application

Overview
This drawing shows the top level compoents and relations
Component Builder |
Component Session |
Component Controller |
Depends on Builder
Component AssetManagement |
Component Dispatcher |
Component Engine |
Depends on Frame (Stream) Provider
Component Frame (Stream) Provider |
Depends on Cache
Component Cache |
Component RenderPathManager |
This package is used to organize code generation by BOUML. It is considered useless after having generated the initial code skelleton.

Session structure

EDL Example1
A simple example showing how the actual objects are placed in the Fixture (=definitive playlist). It shows a Video and Audio clip placed on two tracks

EDL Example2
More complex example showing the Object graph in the EDL and how it is linked into the Fixture to yield the actual locations. In this example, an HUE Effect is applied on a part of the Clip
Class Session |
Class EDL |
Class Fixture |
Class Track |
Class MObject |
Class Placement |
Class AbstractMO |
Class Clip |
Class Effect |
Class Meta |
Class DirectPlacement |
Class RelativePlacement |
Class Allocation |
Class Label |
Class ExplicitPlacement |
Class Auto |
Class Wish |
Class Constraint |

build process
This figure shows the process of building and starting a RenderEngine
Pre Condition :
Post Condition :

build flow
Activity action pin build Request |
Direction : input
Type :
Selection :
Opaque activity action configure Tools |
Defined in building the Engine
Pre Condition :
Post Condition :
Behavior :
Opaque activity action define segment |
Defined in establish partitioning
Pre Condition :
Post Condition :
Behavior :
Activity action pin inFixture |
Direction : input
Type :
Selection :
Flow <flow> |
From define segment To segments
Weight :
Guard :
Selection :
Transformation :
Activity object segment Tool |
Type :
Selection :
Is control type
Activity object segments |
Type :
Selection :
Is control type
Activity object Fixture |
Type :
Selection :
Flow <flow> |
Weight :
Guard :
Selection :
Transformation :
Flow <flow> |
Weight :
Guard :
Selection :
Transformation :
Fork activity node |
Defined in building the Engine
Flow <flow> |
From fork activity node To segment Tool
Weight :
Guard :
Selection :
Transformation :
Flow <flow> |
From fork activity node To build Tool
Weight :
Guard :
Selection :
Transformation :
Activity object build Tool |
Type :
Selection :
Is control type
Activity object segments |
Type :
Selection :
Is control type
Opaque activity action create ProcNode |
Defined in build Processors
Pre Condition :
Post Condition :
Behavior :
Opaque activity action connect |
Defined in build Processors
Pre Condition :
Post Condition :
Behavior :
Activity object complete Render Engine |
Type :
Selection :
Is control type
Activity final |
Defined in building the Engine

Builder Entities
Class BuilderFacade |
Class ToolFactory |
Class ConManager |
Class Assembler |
Class StateProxy |
Class Buildable |
Class Tool |
Class SegmentationTool |
Class NodeCreatorTool |

Controller Entities
Pre Condition :
Post Condition :

the render configuration flow
Activity action pin Render Request |
Direction : input
Type :
Selection :
Opaque activity action setup StateProxy |
Defined in configure Render
Pre Condition :
Post Condition :
Behavior :
Decision activity node build necessary? |
Defined in configure Render
Flow <flow> |
From build necessary? To build Render Engine
Weight :
Guard :
build necessary
Selection :
Transformation :
Flow <flow> |
From build necessary? To merge activity node
Weight :
Guard :
reuse exiting Engine
Selection :
Transformation :
Opaque activity action setup Build Params |
Defined in configure Render
Pre Condition :
Post Condition :
Behavior :
Merge activity node |
Defined in configure Render
Opaque activity action determine Render Params |
Diagram : the render configuration flow
Defined in configure Render
Pre Condition :
Post Condition :
Behavior :
Flow <flow> |
From determine Render Params To setup StateProxy
Weight :
Guard :
Selection :
Transformation :
Opaque activity action build Render Engine |
Defined in configure Render
Pre Condition :
Post Condition :
Behavior :
Flow <flow> |
From build Render Engine To merge activity node
Weight :
Guard :
Selection :
Transformation :
Activity final |
Defined in configure Render
Class ControllerFacade |
Class PathManager |
Class RenderState |

Render Entities

Engine Example1
Example1 (from EDL) continued: here the RenderEngine to be created by the Builder from the Input shown in Example1

Engine Example2
Example2 (from EDL) continued: notably in this RenderEngine the Effect has been partitioned into 2 segments with constant configuration.

Automation Entities
Class RenderEngine |
Class Processor |
Class ExitNode |
Class ProcNode |
Class Trafo |
Class Link |
Class Hub |
Class Projector |
Class Mask |
Class PluginAdapter |
Class OpenGLPipe |
Class ARender |
Class VRender |
Class GLRender |
Class Frame |
Class AFrame |
Class VFrame |
Class GLBuf |
Class Source |
Class Parameter |
Class ParamProvider |
Class Interpolator |
GUI is here just a container to hold any entities considered to be User Interface related, which is not in focus for this Design draft