summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2005-03-31 09:44:17 +0000
committerEdward Hervey <bilboed@bilboed.com>2005-03-31 09:44:17 +0000
commitc73c0a5db622b21d0dead934c956a2a71a907329 (patch)
tree291aef74ae88c8f1089c4b0f91d720a01fb7955c
parentdd4d9fc08f639fdb29e9a6ddff1f10c58c0a65e9 (diff)
docs/random/design: Updated explanatory documentation
Original commit message from CVS: * docs/random/design: Updated explanatory documentation
-rw-r--r--ChangeLog11
-rw-r--r--docs/random/design131
2 files changed, 65 insertions, 77 deletions
diff --git a/ChangeLog b/ChangeLog
index 86d113a..47663a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
+2005-03-31 Edward Hervey <bilboed@bilboed.com>
+
+ * docs/random/design:
+ Updated explanatory documentation
+
+2005-03-30 Edward Hervey <bilboed@bilboed.com>
+
+ * docs/libs/tmpl/gnlcomposition.sgml:
+
2005-03-30 Edward Hervey <bilboed@bilboed.com>
- * gnl/gnl.h:
+ * gnl/gnl.h:
* gnl/gnlobject.h:
* docs/libs/gnonlin-sections.txt:
* docs/libs/tmpl/gnlobject.sgml:
diff --git a/docs/random/design b/docs/random/design
index 4a40eef..cfaabaa 100644
--- a/docs/random/design
+++ b/docs/random/design
@@ -1,80 +1,59 @@
-GnlSource:
- - extends from a GstBin
- - consist of a single GStreamer pipeline with 1 output pad
- - have a start and stop time
- - have one output pad, ghosted from the Gst bin
-
-GnlLayer:
- - extends GstBin
- - contains sources
- - sources cannot overlap
- - sources have start property inside the layer
-
-GnlComposition:
- - extends GnlLayer
- - can contain GnlLayers, possibly overlapping
- - can hold a layer of non overlapping operations.
-
-GnlOperation:
- - extends GnlSource
- - also ghosts N input pads in addition to the GnlSources output pad
-
-GnlTimeline
- - extends GstBin
- - can be added to a GstThread or GstPipeline to be rendered
- - contains one or more groups
-
-GnlGroup
- - extends GnlComposition
- - contains components of the same media type
- - has a sink pad with final rendered output
+GNonLin overview
+GNonLin works as a companion library for GStreamer, in order to be able to
+easily manipulate and assemble media streams through time, and use that
+composition in any GStreamer graph.
+
+* GnlObject
+
+ All gnonlin objects derive from this base class. It has the following
+properties:
+
+ * Media start/stop time. This allows to select a specific time range from the
+ underlying media stream.
+
+ * Start/Stop time. This allows to position the given object in it's parent
+ object.
+
+ * (Order of) Priority. When you assemble several objects together and they
+ overlap in time, this property allows you to decide which one has priority
+ over the others. The lower the value, the higher the priority.
+
+ * It derives from a GstBin, therefore all GNonLin elements can be used alone in
+ a GStreamer graph.
+
+* GnlSource
+
+ Wrapper to use GStreamer source elements in GNonLin. In addition to GnlObject
+properties it has an element property which is the wrapped element.
+
+* GnlOperation
+
+ Wrapper to use GStreamer filter/effects elements in GNonLin. It can only support
+elements with one output pad.
+
+* GnlComposition
+
+ Class for "combining" several "one source output" GnlObjects. Used as such it
+can only handle same-media type. In addition to adding/removing GnlObjects to
+it, you can also set a default source which will be played during "gaps".
+
+* GnlTimeline
+
+ Class for "combining" several GnlComposition together. This is the highest level
+GNonLin element.
+
+
+Object Hierarchy:
GstBin
!
- +---- GnlSource
- ! !
- ! +----- GnlOperation
- !
- +---- GnlLayer
- ! !
- ! +---- GnlComposition
- ! !
- ! +---- GnlGroup
- !
- +---- GnlTimeline
-
-
-
- .-0----->-----------5000----->------10000----->-----15000---.
- ! main_timeline !
- ! !
- ! .- composition -----------------------------------------. !
- ! ! .- operation ---. ! !
- ! ! ! ! ! !
- ! ! ! blend ! ! !
- ! ! '---------------' ! !
- ! ! .- layer2 ------------------------------------------. ! !
- ! ! ! .-- source1 -------------------. ! ! !
- ! ! ! ! ! ! ! !
- ! ! ! ! /myfile.avi ! ! ! !
- ! ! ! '------------------------------' ! ! !
- ! ! '---------------------------------------------------' ! !
- ! ! .- layer3 ------------------------------------------. ! !
- ! ! ! .- source2 ---------------------. ! ! !
- ! ! ! ! ! ! ! !
- ! ! ! ! /myfile2.avi ! ! ! !
- ! ! ! '-------------------------------' ! ! !
- ! ! '---------------------------------------------------' ! !
- ! '-------------------------------------------------------' !
- '-----------------------------------------------------------'
-
-An operation with N sinkpads uses N layers (in order of priority) to
-create the final ouput on the srcpad.
-
-
- ***** (alpha blend 2 layers)
-===========
- ********* (monochrome 1 layer)
- =========
-
+ +--- GnlObject
+ !
+ +--- GnlSource
+ !
+ +--- GnlOperation
+ !
+ +--- GnlComposition
+ !
+ +--- GnlTimeline