docs: Minor fixes
[platform/upstream/gstreamer.git] / docs / libs / architecture.xml
index 41929eb..f345eb9 100644 (file)
@@ -1,59 +1,56 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
-          "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
-         <!ENTITY % version-entities SYSTEM "version.entities">
-         %version-entities;
-         <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
-         ]>
+"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
+]>
 <refentry id="ges-architecture" revision="25 mar 2009">
   <refmeta>
     <refentrytitle>Overview and architecture</refentrytitle>
+
     <manvolnum>1</manvolnum>
+
     <refmiscinfo>GStreamer Editing Services</refmiscinfo>
   </refmeta>
 
   <!-- <refnamediv> -->
+
   <!-- <refname>Overview</refname> -->
+
   <!-- <refpurpose> -->
+
   <!-- Goals of the GStreamer Editing Services. -->
+
   <!-- </refpurpose> -->
+
   <!-- </refnamediv> -->
 
   <refsect1>
     <title>Goals of GStreamer Editing Services</title>
-    
-    <para>
-      The GStreamer multimedia framework and the accompanying GNonLin set
-      of plugins for non-linear editing offer all the building blocks for:
-      <itemizedlist>
-       <listitem>
-         Decoding and encoding to a wide variety of formats, through
-         all the available GStreamer plugins.
-       </listitem>
-       <listitem>
-         Easily choosing segments of streams and arranging them through
-         time through the GNonLin set of plugins.
-       </listitem>
-      </itemizedlist>
-    </para>
-
-    <para>
-      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
-      <emphasis>non-linear editing</emphasis> notions which are closer
-      and more meaningful for the end-user (and therefore the
-      application).
-    </para>
-
-    <para>
-      The GStreamer Editing Services <remark>(hereafter GES)</remark>
-      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. 
-    </para>
 
+    <para>The GStreamer multimedia framework and the accompanying GNonLin set
+    of plugins for non-linear editing offer all the building blocks for:
+    <itemizedlist>
+        <listitem>
+          <para>Decoding and encoding to a wide variety of formats, through
+          all the available GStreamer plugins.</para>
+        </listitem>
+
+        <listitem>
+          <para>Easily choosing segments of streams and arranging them through
+          time through the GNonLin set of plugins.</para>
+        </listitem>
+      </itemizedlist></para>
+
+    <para>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 <emphasis>non-linear
+    editing</emphasis> notions which are closer and more meaningful for the
+    end-user (and therefore the application).</para>
+
+    <para>The GStreamer Editing Services <remark>(hereafter GES)</remark> 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.</para>
   </refsect1>
 
   <refsect1>
     <refsect2>
       <title>Timeline and TimelinePipeline</title>
 
-      <para>
-       The most top-level object encapsulating every other object is
-       the <link linkend="GESTimeline">GESTimeline</link>. It is the
-       central object for any editing project. 
-      </para>
-
-      <para>
-       The <classname>GESTimeline</classname> is
-       a <classname>GstElement</classname>. It can therefore be used in
-       any GStreamer pipeline like any other object.
-      </para>
-
-      <para>
-       The GESTimeline can contain two types of objects:
-       <itemizedlist>
-         <listitem>
-           <emphasis>Layers</emphasis> - 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.
-         </listitem>
-         <listitem>
-           <emphasis>Tracks</emphasis> - 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.
-         </listitem>
-       </itemizedlist>
-      </para>
-
-      <para>
-       FIXME : INSERT DIAGRAM
-      </para>
-
-      <para>
-       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
-       :  <link linkend="GESTimelinePipeline">GESTimelinePipeline</link>.
-      </para>
+      <para>The most top-level object encapsulating every other object is the
+      <link linkend="GESTimeline">GESTimeline</link>. It is the central object
+      for any editing project.</para>
+
+      <para>The <classname>GESTimeline</classname> is a
+      <classname>GstElement</classname>. It can therefore be used in any
+      GStreamer pipeline like any other object.</para>
     </refsect2>
 
 
     <refsect2>
-      <title>Timeline layers</title>
-
-      <para>
-       The layers are the end-user visible part of GES.
-      </para>
+      <title>Tracks and Layers</title>
+
+      <para>The GESTimeline can contain two types of objects (seen in <xref
+      linkend="layer_tracks_diagram" />): <itemizedlist>
+          <listitem>
+            <para>Layers - Corresponds to the user-visible arrangement of clips,
+            and what you primarily interact with as an application developer.
+            A minimalistic timeline would only have one layer,
+            but a more complex editing application could use as many as needed.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>Tracks - Corresponds to the output streams in GStreamer.
+            A typical GESTimeline, aimed at a video editing application, would
+            have an audio track and a video track.
+            A GESTimeline for an audio editing application would only require
+            an audio track. Multiple layers can be related to each track.</para>
+          </listitem>
+        </itemizedlist></para>
+
+      <figure float="0" id="layer_tracks_diagram">
+        <title>Layers and Tracks</title>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="layer_track_overview.png" scale="75" />
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para>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 : <link
+      linkend="GESPipeline">GESPipeline</link>.</para>
     </refsect2>
 
-    <refsect2>
-      <title>Timeline Tracks</title>
-
-      <para>
-       The tracks are the GStreamer-level components of a
-       Timeline. They are a 1-to-1 relationship to the output
-       streams. 
-      </para>
-    </refsect2>
   </refsect1>
-
 </refentry>