From 5f187a53495e2b10afd57992407bd59e2546e804 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Thu, 12 Nov 2009 20:11:28 +0100 Subject: [PATCH] docs: Add overview and architecture document and cleanup docs more. --- common | 2 +- docs/libs/Makefile.am | 2 +- docs/libs/architecture.xml | 128 +++++++++++++++++++++++++++++++++++++++++++++ docs/libs/ges-docs.sgml | 11 ++-- docs/libs/ges-sections.txt | 4 +- docs/libs/ges.types | 3 ++ ges/ges.c | 2 +- 7 files changed, 142 insertions(+), 10 deletions(-) create mode 100644 docs/libs/architecture.xml diff --git a/common b/common index 0702fe1..792d198 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 0702fe19e974bc4461b5cfeb5db0e80de00a84d3 +Subproject commit 792d198f3f694e5475d1467b5ae9371a23baf7a3 diff --git a/docs/libs/Makefile.am b/docs/libs/Makefile.am index 89e4f6d..fd060b2 100644 --- a/docs/libs/Makefile.am +++ b/docs/libs/Makefile.am @@ -85,7 +85,7 @@ EXTRA_HFILES = \ HTML_IMAGES = # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). -content_files = +content_files = architecture.xml # Other files to distribute. extra_files = diff --git a/docs/libs/architecture.xml b/docs/libs/architecture.xml new file mode 100644 index 0000000..41929eb --- /dev/null +++ b/docs/libs/architecture.xml @@ -0,0 +1,128 @@ + + + %version-entities; + + ]> + + + Overview and architecture + 1 + GStreamer Editing Services + + + + + + + + + + + Goals of GStreamer Editing Services + + + The GStreamer multimedia framework and the accompanying GNonLin set + of plugins for non-linear editing offer all the building blocks for: + + + Decoding and encoding to a wide variety of formats, through + all the available GStreamer plugins. + + + Easily choosing segments of streams and arranging them through + time through the GNonLin set of plugins. + + + + + + But all those building blocks only offer stream-level access, + which results in developers who want to write non-linear editors + to write a consequent amount of code to get to the level of + non-linear editing notions which are closer + and more meaningful for the end-user (and therefore the + application). + + + + The GStreamer Editing Services (hereafter GES) + aims to fill the gap between GStreamer/GNonLin and the + application developer by offering a series of classes to + simplify the creation of many kind of editing-related + applications. + + + + + + Architecture + + + Timeline and TimelinePipeline + + + The most top-level object encapsulating every other object is + the GESTimeline. It is the + central object for any editing project. + + + + The GESTimeline is + a GstElement. It can therefore be used in + any GStreamer pipeline like any other object. + + + + The GESTimeline can contain two types of objects: + + + Layers - Corresponds to the user-visible + layout of non-overlapping objects. A minimalistic would + only have one layer. A more complex editing application + could use as many as needed. + + + Tracks - Corresponds to the output + stream formats. A typical GESTimeline would have a audio + track and a video track. A audio editor would only require + one single audio Track. + + + + + + FIXME : INSERT DIAGRAM + + + + In order to reduce even more the amount of GStreamer + interaction the application developer has to deal with , a + convenience GstPipeline has been made available specifically + for Timelines + : GESTimelinePipeline. + + + + + + Timeline layers + + + The layers are the end-user visible part of GES. + + + + + Timeline Tracks + + + The tracks are the GStreamer-level components of a + Timeline. They are a 1-to-1 relationship to the output + streams. + + + + + diff --git a/docs/libs/ges-docs.sgml b/docs/libs/ges-docs.sgml index 014af1b..d4f30f9 100644 --- a/docs/libs/ges-docs.sgml +++ b/docs/libs/ges-docs.sgml @@ -27,21 +27,22 @@ applications. platform as well as Windows. It is released under the GNU Library General Public License (GNU LGPL). - + + Base Classes - - - - + + + + diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index 5ff66c0..f45537f 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -1,8 +1,8 @@ ges/ges.h
-ges -GStreamer Editing Services +ges-common +Initialization ges_init
diff --git a/docs/libs/ges.types b/docs/libs/ges.types index 8266618..b063037 100644 --- a/docs/libs/ges.types +++ b/docs/libs/ges.types @@ -1,3 +1,6 @@ +#include +#include + ges_track_get_type ges_track_type_get_type ges_track_object_get_type diff --git a/ges/ges.c b/ges/ges.c index 524055b..438f885 100644 --- a/ges/ges.c +++ b/ges/ges.c @@ -23,7 +23,7 @@ GST_DEBUG_CATEGORY (ges_debug); /** - * SECTION:ges + * SECTION:ges-common * @short_description: Initialization. */ -- 2.7.4