summaryrefslogtreecommitdiff
path: root/docs/random/design
blob: 46708676005985b1bad90c752475785ace2daf76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
GnlSource:
  - extends from a GstBin
  - consist of a single GStreamer pipeline with M output pads
  - have a start and stop time
  - have one or more output pads, ghosted from the Gst pipeline

GnlLayer:
  - extends GstBin
  - contains sources
  - sources cannot overlap
  - sources have start/length properties inside the layer

GnlComposition:
  - extends GnlLayer
  - can contain GnlLayers, possibly overlapping

GnlOperation:
  - extends GnlSource
  - also ghosts N input pads in addition to the GnlSources output pads

GnlTimeline
  - extends GnlComposition



GstBin
 !
 +---- GnlSource
 !      !
 !      +----- Operation
 !	
 +---- GnlLayer
        !
        +---- GnlComposition
	       !
               +---- GnlTimeline
 



 .-0----->-----------5000----->------10000----->-----15000---.
 ! main_timeline                                             !
 !                                                           !
 ! .- composition -----------------------------------------. !
 ! !                                                       ! !
 ! ! .- layer1 ------------------------------------------. ! !
 ! ! !                                                   ! ! !
 ! ! !                .- operation ---.                  ! ! !
 ! ! !                !               !                  ! ! !
 ! ! !                ! blend         !                  ! ! !
 ! ! !                '---------------'                  ! ! !
 ! ! '---------------------------------------------------' ! !
 ! ! .- layer2 ------------------------------------------. ! !
 ! ! !                                                   ! ! !
 ! ! ! .-- source1 -------------------.                  ! ! !
 ! ! ! !                              !                  ! ! !
 ! ! ! ! /myfile.avi                  !                  ! ! !
 ! ! ! '------------------------------'                  ! ! !
 ! ! '---------------------------------------------------' ! !
 ! ! .- layer3 ------------------------------------------. ! !
 ! ! !                .- source2 ---------------------.  ! ! !
 ! ! !                !                               !  ! ! !
 ! ! !                ! /myfile2.avi                  !  ! ! !
 ! ! !                '-------------------------------'  ! ! !
 ! ! '---------------------------------------------------' ! !
 ! '-------------------------------------------------------' ! 
 '-----------------------------------------------------------'

  

      *****		(alpha blend 2 layers)
===========
      *********		(monochrome 1 layer)
      =========