diff options
author | Edward Hervey <bilboed@bilboed.com> | 2005-03-31 09:44:17 +0000 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2005-03-31 09:44:17 +0000 |
commit | c73c0a5db622b21d0dead934c956a2a71a907329 (patch) | |
tree | 291aef74ae88c8f1089c4b0f91d720a01fb7955c | |
parent | dd4d9fc08f639fdb29e9a6ddff1f10c58c0a65e9 (diff) |
docs/random/design: Updated explanatory documentation
Original commit message from CVS:
* docs/random/design:
Updated explanatory documentation
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | docs/random/design | 131 |
2 files changed, 65 insertions, 77 deletions
@@ -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 |