cinelerra3
Documentation

1 Package design

All things concering the big picture.
Not a real code package, rather a container for design drafts, specifications, decisions.

1.1 Component View Architecture

The various Components comprising the Cinelerra3 Video editing Application

Overview



This drawing shows the top level compoents and relations

Component Builder
Component Session
Component EDL

nested in Session

Component Fixture

nested in 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

1.2 Package codegen

This package is used to organize code generation by BOUML. It is considered useless after having generated the initial code skelleton.

1.2.1 Deployment View Codegen Deployment

2 Package BackendLayer

2.1 Package CommonLib

2.1.1 Class View Service Components

Class Time

2.2 Class View Backend Components

3 Package ProcessingLayer

3.1 Package AssetManager

3.2 Package MObject

3.2.1 Class View Session

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 Clip
Class Effect
Class Meta
Class Label
Class Auto
Class Wish

3.2.2 Package Builder

3.2.2.1 Class View Builder Workings

build process



This figure shows the process of building and starting a RenderEngine

3.2.2.1.1 Activity building the Engine

Pre Condition :

    Post Condition :

      build flow



      Activity action pin build Request

      Direction : input

      Type :

      Selection :

        Flow <flow>

        From build Request To configure Tools

        Weight :

          Guard :

            Selection :

              Transformation :

                Opaque activity action configure Tools

                Defined in building the Engine

                Pre Condition :

                  Post Condition :

                    Behavior :

                      Flow <flow>

                      From configure Tools To fork activity node

                      Weight :

                        Guard :

                          Selection :

                            Transformation :

                              3.2.2.1.1.1 Expansion region establish partitioning

                              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

                                                Flow <flow>

                                                From segment Tool To define segment

                                                Weight :

                                                  Guard :

                                                    Selection :

                                                      Transformation :

                                                        Activity object segments

                                                        Type :

                                                        Selection :

                                                          Is control type

                                                          Activity object Fixture

                                                          Type :

                                                          Selection :

                                                            Flow <flow>

                                                            From Fixture To inFixture

                                                            Weight :

                                                              Guard :

                                                                Selection :

                                                                  Transformation :

                                                                    Flow <flow>

                                                                    From Fixture To inFixture

                                                                    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 :

                                                                                            3.2.2.1.1.2 Expansion region build Processors

                                                                                            Activity object build Tool

                                                                                            Type :

                                                                                            Selection :

                                                                                              Is control type

                                                                                              Flow <flow>

                                                                                              From build Tool To create ProcNode

                                                                                              Weight :

                                                                                                Guard :

                                                                                                  Selection :

                                                                                                    Transformation :

                                                                                                      Activity object segments

                                                                                                      Type :

                                                                                                      Selection :

                                                                                                        Is control type

                                                                                                        Flow <flow>

                                                                                                        From segments To create ProcNode

                                                                                                        Weight :

                                                                                                          Guard :

                                                                                                            Selection :

                                                                                                              Transformation :

                                                                                                                Opaque activity action create ProcNode

                                                                                                                Defined in build Processors

                                                                                                                Pre Condition :

                                                                                                                  Post Condition :

                                                                                                                    Behavior :

                                                                                                                      Flow <flow>

                                                                                                                      From create ProcNode To connect

                                                                                                                      Weight :

                                                                                                                        Guard :

                                                                                                                          Selection :

                                                                                                                            Transformation :

                                                                                                                              Opaque activity action connect

                                                                                                                              Defined in build Processors

                                                                                                                              Pre Condition :

                                                                                                                                Post Condition :

                                                                                                                                  Behavior :

                                                                                                                                    Flow <flow>

                                                                                                                                    From connect To complete Render Engine

                                                                                                                                    Weight :

                                                                                                                                      Guard :

                                                                                                                                        Selection :

                                                                                                                                          Transformation :

                                                                                                                                            Activity object complete Render Engine

                                                                                                                                            Type :

                                                                                                                                            Selection :

                                                                                                                                              Is control type

                                                                                                                                              Flow <flow>

                                                                                                                                              From complete Render Engine To activity final

                                                                                                                                              Weight :

                                                                                                                                                Guard :

                                                                                                                                                  Selection :

                                                                                                                                                    Transformation :

                                                                                                                                                      Activity final

                                                                                                                                                      Defined in building the Engine

                                                                                                                                                      Builder Entities



                                                                                                                                                      Class Assembler
                                                                                                                                                      Class Buildable
                                                                                                                                                      Class Tool

                                                                                                                                                      3.2.3 Package Controller

                                                                                                                                                      3.2.3.1 Class View Controller Workings

                                                                                                                                                      Controller Entities



                                                                                                                                                      3.2.3.1.1 Activity configure Render

                                                                                                                                                      Pre Condition :

                                                                                                                                                        Post Condition :

                                                                                                                                                          the render configuration flow



                                                                                                                                                          Activity action pin Render Request

                                                                                                                                                          Direction : input

                                                                                                                                                          Type :

                                                                                                                                                          Selection :

                                                                                                                                                            Flow <flow>

                                                                                                                                                            From Render Request To determine Render Params

                                                                                                                                                            Weight :

                                                                                                                                                              Guard :

                                                                                                                                                                Selection :

                                                                                                                                                                  Transformation :

                                                                                                                                                                    Opaque activity action setup StateProxy

                                                                                                                                                                    Defined in configure Render

                                                                                                                                                                    Pre Condition :

                                                                                                                                                                      Post Condition :

                                                                                                                                                                        Behavior :

                                                                                                                                                                          Flow <flow>

                                                                                                                                                                          From setup StateProxy To build necessary?

                                                                                                                                                                          Weight :

                                                                                                                                                                            Guard :

                                                                                                                                                                              Selection :

                                                                                                                                                                                Transformation :

                                                                                                                                                                                  Decision activity node build necessary?

                                                                                                                                                                                  Defined in configure Render

                                                                                                                                                                                  Flow <flow>

                                                                                                                                                                                  From build necessary? To build Render Engine

                                                                                                                                                                                  Weight :

                                                                                                                                                                                    Guard :

                                                                                                                                                                                    • OCL :
                                                                                                                                                                                      build necessary

                                                                                                                                                                                    Selection :

                                                                                                                                                                                      Transformation :

                                                                                                                                                                                        Flow <flow>

                                                                                                                                                                                        From build necessary? To merge activity node

                                                                                                                                                                                        Weight :

                                                                                                                                                                                          Guard :

                                                                                                                                                                                          • OCL :
                                                                                                                                                                                            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

                                                                                                                                                                                                    Flow <flow>

                                                                                                                                                                                                    From merge activity node To activity final

                                                                                                                                                                                                    Weight :

                                                                                                                                                                                                      Guard :

                                                                                                                                                                                                        Selection :

                                                                                                                                                                                                          Transformation :

                                                                                                                                                                                                            3.2.3.1.1.1 Expansion region determine Render Params

                                                                                                                                                                                                            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

                                                                                                                                                                                                                                        3.3 Package RenderEngine

                                                                                                                                                                                                                                        3.3.1 Deployment View Engine Parts

                                                                                                                                                                                                                                        Overview Render Engine



                                                                                                                                                                                                                                        Node timeline
                                                                                                                                                                                                                                        Node playlist
                                                                                                                                                                                                                                        Node proc
                                                                                                                                                                                                                                        Node pnode
                                                                                                                                                                                                                                        Node Frame
                                                                                                                                                                                                                                        Node State

                                                                                                                                                                                                                                        3.3.2 Class View Engine Workings

                                                                                                                                                                                                                                        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 Processor
                                                                                                                                                                                                                                        Class ExitNode
                                                                                                                                                                                                                                        Class ProcNode
                                                                                                                                                                                                                                        Class Trafo
                                                                                                                                                                                                                                        Class Link
                                                                                                                                                                                                                                        Class Hub
                                                                                                                                                                                                                                        Class Projector
                                                                                                                                                                                                                                        Class Mask
                                                                                                                                                                                                                                        Class ARender
                                                                                                                                                                                                                                        Class VRender
                                                                                                                                                                                                                                        Class GLRender
                                                                                                                                                                                                                                        Class Frame
                                                                                                                                                                                                                                        Class AFrame
                                                                                                                                                                                                                                        Class VFrame
                                                                                                                                                                                                                                        Class GLBuf
                                                                                                                                                                                                                                        Class Source
                                                                                                                                                                                                                                        Class Parameter

                                                                                                                                                                                                                                        4 Package GUI

                                                                                                                                                                                                                                        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