doc: Build documentation with hotdoc
authorThibault Saunier <tsaunier@igalia.com>
Mon, 22 Oct 2018 06:22:52 +0000 (08:22 +0200)
committerThibault Saunier <tsaunier@igalia.com>
Mon, 13 May 2019 14:30:35 +0000 (10:30 -0400)
25 files changed:
Makefile.am
configure.ac
docs/Makefile.am [deleted file]
docs/base-classes.md [new file with mode: 0644]
docs/gst_plugins_cache.json [new file with mode: 0644]
docs/images/layer_track_overview.png [moved from docs/libs/layer_track_overview.png with 100% similarity]
docs/index.md [new file with mode: 0644]
docs/libs/.gitignore [deleted file]
docs/libs/Makefile.am [deleted file]
docs/libs/architecture.xml [deleted file]
docs/libs/ges-docs.sgml [deleted file]
docs/libs/ges-sections.txt [deleted file]
docs/libs/ges.types [deleted file]
docs/libs/meson.build [deleted file]
docs/low_level.md [new file with mode: 0644]
docs/meson.build
docs/nle-index.md [new file with mode: 0644]
docs/nle-sitemap.txt [new file with mode: 0644]
docs/nle.md [new file with mode: 0644]
docs/sitemap.txt [new file with mode: 0644]
ges/meson.build
meson.build
meson_options.txt
plugins/meson.build
plugins/nle/meson.build

index a25008b..5344820 100644 (file)
@@ -1,12 +1,10 @@
-DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --with-bash-completion-dir=no
-
 if BUILD_EXAMPLES
 EXAMPLES_SUBDIRS= examples
 else
 EXAMPLES_SUBDIRS=
 endif
 
-SUBDIRS = ges tests tools common m4 pkgconfig docs bindings plugins $(EXAMPLES_SUBDIRS)
+SUBDIRS = ges tests tools common m4 pkgconfig bindings plugins $(EXAMPLES_SUBDIRS)
 
 DIST_SUBDIRS = $(SUBDIRS)
 
index 223f555..bb9d29a 100644 (file)
@@ -114,12 +114,6 @@ AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
 dnl check for gobject-introspection
 GOBJECT_INTROSPECTION_CHECK([0.9.6])
 
-dnl check for documentation tools
-AG_GST_DOCBOOK_CHECK
-GTK_DOC_CHECK([1.3])
-AS_PATH_PYTHON([2.1])
-AG_GST_PLUGIN_DOCS([1.3],[2.1])
-
 dnl check for pygobject
 AC_SUBST(PYGOBJECT_REQ, 3.0)
 PKG_CHECK_MODULES(PYGOBJECT, pygobject-3.0 >= $PYGOBJECT_REQ,
@@ -417,9 +411,6 @@ examples/c/Makefile
 tests/validate/Makefile
 tests/validate/scenarios/Makefile
 tools/Makefile
-docs/Makefile
-docs/version.entities
-docs/libs/Makefile
 pkgconfig/Makefile
 pkgconfig/gst-editing-services.pc
 pkgconfig/gst-editing-services-uninstalled.pc
diff --git a/docs/Makefile.am b/docs/Makefile.am
deleted file mode 100644 (file)
index 40d622a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-if ENABLE_GTK_DOC
-DOCS_SUBDIRS = libs
-else
-DOCS_SUBDIRS = 
-endif
-
-SUBDIRS = $(DOCS_SUBDIRS)
-DIST_SUBDIRS = libs
-
-EXTRA_DIST = \
-       version.entities.in
-
-upload:
-       @if test "x$(SUBDIRS)" != x; then for a in $(SUBDIRS); do cd $$a; make upload; cd ..; done; fi
diff --git a/docs/base-classes.md b/docs/base-classes.md
new file mode 100644 (file)
index 0000000..8efcd96
--- /dev/null
@@ -0,0 +1 @@
+# Base classes
diff --git a/docs/gst_plugins_cache.json b/docs/gst_plugins_cache.json
new file mode 100644 (file)
index 0000000..f542bd3
--- /dev/null
@@ -0,0 +1,669 @@
+{
+    "nle": {
+        "description": "GStreamer Non Linear Engine",
+        "elements": {
+            "nlecomposition": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Edward Hervey <bilboed@bilboed.com>, Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>, Thibault Saunier <tsaunier@gnome.org>",
+                "description": "Combines NLE objects",
+                "hierarchy": [
+                    "NleComposition",
+                    "NleObject",
+                    "GstBin",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Filter/Editor",
+                "long-name": "GNonLin Composition",
+                "name": "nlecomposition",
+                "pad-templates": {
+                    "src": {
+                        "caps": "ANY",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "active": {
+                        "blurb": "Use this object in the NleComposition",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "true",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "async-handling": {
+                        "blurb": "The bin will handle Asynchronous state changes",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "caps": {
+                        "blurb": "Caps used to filter/choose the output stream",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "ANY",
+                        "type-name": "GstCaps",
+                        "writable": true
+                    },
+                    "duration": {
+                        "blurb": "Outgoing duration (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "9223372036854775807",
+                        "min": "0",
+                        "type-name": "gint64",
+                        "writable": true
+                    },
+                    "expandable": {
+                        "blurb": "Expand to the full duration of the container composition",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "inpoint": {
+                        "blurb": "The media start position (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "18446744073709551615",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": true
+                    },
+                    "media-duration-factor": {
+                        "blurb": "The relative rate caused by this object",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "1",
+                        "max": "1.79769e+308",
+                        "min": "0.01",
+                        "type-name": "gdouble",
+                        "writable": true
+                    },
+                    "message-forward": {
+                        "blurb": "Forwards all children messages",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "name": {
+                        "blurb": "The name of the object",
+                        "construct": true,
+                        "construct-only": false,
+                        "default": "NULL",
+                        "hotdoc-fixed-default": true,
+                        "type-name": "gchararray",
+                        "writable": true
+                    },
+                    "parent": {
+                        "blurb": "The parent of the object",
+                        "construct": false,
+                        "construct-only": false,
+                        "type-name": "GstObject",
+                        "writable": true
+                    },
+                    "priority": {
+                        "blurb": "The priority of the object (0 = highest priority)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "-1",
+                        "min": "0",
+                        "type-name": "guint",
+                        "writable": true
+                    },
+                    "start": {
+                        "blurb": "The start position relative to the parent (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": true
+                    },
+                    "stop": {
+                        "blurb": "The stop position relative to the parent (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": false
+                    }
+                },
+                "rank": "none",
+                "signals": {
+                    "commit": {
+                        "args": [
+                            "gboolean"
+                        ],
+                        "retval": "gboolean"
+                    },
+                    "commited": {
+                        "args": [
+                            "gboolean"
+                        ],
+                        "retval": "void"
+                    },
+                    "query-position": {
+                        "args": [],
+                        "retval": "guint64"
+                    }
+                }
+            },
+            "nleoperation": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "Encapsulates filters/effects for use with NLE Objects",
+                "hierarchy": [
+                    "NleOperation",
+                    "NleObject",
+                    "GstBin",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Filter/Editor",
+                "long-name": "GNonLin Operation",
+                "name": "nleoperation",
+                "pad-templates": {
+                    "sink%%d": {
+                        "caps": "ANY",
+                        "direction": "sink",
+                        "presence": "request"
+                    },
+                    "src": {
+                        "caps": "ANY",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "active": {
+                        "blurb": "Use this object in the NleComposition",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "true",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "async-handling": {
+                        "blurb": "The bin will handle Asynchronous state changes",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "caps": {
+                        "blurb": "Caps used to filter/choose the output stream",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "ANY",
+                        "type-name": "GstCaps",
+                        "writable": true
+                    },
+                    "duration": {
+                        "blurb": "Outgoing duration (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "9223372036854775807",
+                        "min": "0",
+                        "type-name": "gint64",
+                        "writable": true
+                    },
+                    "expandable": {
+                        "blurb": "Expand to the full duration of the container composition",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "inpoint": {
+                        "blurb": "The media start position (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "18446744073709551615",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": true
+                    },
+                    "media-duration-factor": {
+                        "blurb": "The relative rate caused by this object",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "1",
+                        "max": "1.79769e+308",
+                        "min": "0.01",
+                        "type-name": "gdouble",
+                        "writable": true
+                    },
+                    "message-forward": {
+                        "blurb": "Forwards all children messages",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "name": {
+                        "blurb": "The name of the object",
+                        "construct": true,
+                        "construct-only": false,
+                        "default": "NULL",
+                        "hotdoc-fixed-default": true,
+                        "type-name": "gchararray",
+                        "writable": true
+                    },
+                    "parent": {
+                        "blurb": "The parent of the object",
+                        "construct": false,
+                        "construct-only": false,
+                        "type-name": "GstObject",
+                        "writable": true
+                    },
+                    "priority": {
+                        "blurb": "The priority of the object (0 = highest priority)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "-1",
+                        "min": "0",
+                        "type-name": "guint",
+                        "writable": true
+                    },
+                    "sinks": {
+                        "blurb": "Number of input sinks (-1 for automatic handling)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "1",
+                        "max": "2147483647",
+                        "min": "-1",
+                        "type-name": "gint",
+                        "writable": true
+                    },
+                    "start": {
+                        "blurb": "The start position relative to the parent (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": true
+                    },
+                    "stop": {
+                        "blurb": "The stop position relative to the parent (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": false
+                    }
+                },
+                "rank": "none",
+                "signals": {
+                    "commit": {
+                        "args": [
+                            "gboolean"
+                        ],
+                        "retval": "gboolean"
+                    },
+                    "input-priority-changed": {
+                        "args": [
+                            "GstPad",
+                            "guint"
+                        ],
+                        "retval": "void"
+                    }
+                }
+            },
+            "nlesource": {
+                "author": "Wim Taymans <wim.taymans@gmail.com>, Edward Hervey <bilboed@bilboed.com>",
+                "description": "Manages source elements",
+                "hierarchy": [
+                    "NleSource",
+                    "NleObject",
+                    "GstBin",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Filter/Editor",
+                "long-name": "GNonLin Source",
+                "name": "nlesource",
+                "pad-templates": {
+                    "src": {
+                        "caps": "ANY",
+                        "direction": "src",
+                        "presence": "always"
+                    }
+                },
+                "properties": {
+                    "active": {
+                        "blurb": "Use this object in the NleComposition",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "true",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "async-handling": {
+                        "blurb": "The bin will handle Asynchronous state changes",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "true",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "caps": {
+                        "blurb": "Caps used to filter/choose the output stream",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "ANY",
+                        "type-name": "GstCaps",
+                        "writable": true
+                    },
+                    "duration": {
+                        "blurb": "Outgoing duration (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "9223372036854775807",
+                        "min": "0",
+                        "type-name": "gint64",
+                        "writable": true
+                    },
+                    "expandable": {
+                        "blurb": "Expand to the full duration of the container composition",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "inpoint": {
+                        "blurb": "The media start position (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "18446744073709551615",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": true
+                    },
+                    "media-duration-factor": {
+                        "blurb": "The relative rate caused by this object",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "1",
+                        "max": "1.79769e+308",
+                        "min": "0.01",
+                        "type-name": "gdouble",
+                        "writable": true
+                    },
+                    "message-forward": {
+                        "blurb": "Forwards all children messages",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "name": {
+                        "blurb": "The name of the object",
+                        "construct": true,
+                        "construct-only": false,
+                        "default": "NULL",
+                        "hotdoc-fixed-default": true,
+                        "type-name": "gchararray",
+                        "writable": true
+                    },
+                    "parent": {
+                        "blurb": "The parent of the object",
+                        "construct": false,
+                        "construct-only": false,
+                        "type-name": "GstObject",
+                        "writable": true
+                    },
+                    "priority": {
+                        "blurb": "The priority of the object (0 = highest priority)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "-1",
+                        "min": "0",
+                        "type-name": "guint",
+                        "writable": true
+                    },
+                    "start": {
+                        "blurb": "The start position relative to the parent (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": true
+                    },
+                    "stop": {
+                        "blurb": "The stop position relative to the parent (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": false
+                    }
+                },
+                "rank": "none",
+                "signals": {
+                    "commit": {
+                        "args": [
+                            "gboolean"
+                        ],
+                        "retval": "gboolean"
+                    }
+                }
+            },
+            "nleurisource": {
+                "author": "Edward Hervey <bilboed@bilboed.com>",
+                "description": "High-level URI Source element",
+                "hierarchy": [
+                    "NleURISource",
+                    "NleSource",
+                    "NleObject",
+                    "GstBin",
+                    "GstElement",
+                    "GstObject",
+                    "GInitiallyUnowned",
+                    "GObject"
+                ],
+                "klass": "Filter/Editor",
+                "long-name": "GNonLin URI Source",
+                "name": "nleurisource",
+                "pad-templates": {
+                    "src": {
+                        "caps": "ANY",
+                        "direction": "src",
+                        "presence": "sometimes"
+                    }
+                },
+                "properties": {
+                    "active": {
+                        "blurb": "Use this object in the NleComposition",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "true",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "async-handling": {
+                        "blurb": "The bin will handle Asynchronous state changes",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "true",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "caps": {
+                        "blurb": "Caps used to filter/choose the output stream",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "ANY",
+                        "type-name": "GstCaps",
+                        "writable": true
+                    },
+                    "duration": {
+                        "blurb": "Outgoing duration (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "9223372036854775807",
+                        "min": "0",
+                        "type-name": "gint64",
+                        "writable": true
+                    },
+                    "expandable": {
+                        "blurb": "Expand to the full duration of the container composition",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "inpoint": {
+                        "blurb": "The media start position (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "18446744073709551615",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": true
+                    },
+                    "media-duration-factor": {
+                        "blurb": "The relative rate caused by this object",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "1",
+                        "max": "1.79769e+308",
+                        "min": "0.01",
+                        "type-name": "gdouble",
+                        "writable": true
+                    },
+                    "message-forward": {
+                        "blurb": "Forwards all children messages",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "false",
+                        "type-name": "gboolean",
+                        "writable": true
+                    },
+                    "name": {
+                        "blurb": "The name of the object",
+                        "construct": true,
+                        "construct-only": false,
+                        "default": "NULL",
+                        "hotdoc-fixed-default": true,
+                        "type-name": "gchararray",
+                        "writable": true
+                    },
+                    "parent": {
+                        "blurb": "The parent of the object",
+                        "construct": false,
+                        "construct-only": false,
+                        "type-name": "GstObject",
+                        "writable": true
+                    },
+                    "priority": {
+                        "blurb": "The priority of the object (0 = highest priority)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "-1",
+                        "min": "0",
+                        "type-name": "guint",
+                        "writable": true
+                    },
+                    "start": {
+                        "blurb": "The start position relative to the parent (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": true
+                    },
+                    "stop": {
+                        "blurb": "The stop position relative to the parent (in nanoseconds)",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "0",
+                        "max": "18446744073709551615",
+                        "min": "0",
+                        "type-name": "guint64",
+                        "writable": false
+                    },
+                    "uri": {
+                        "blurb": "Uri of the file to use",
+                        "construct": false,
+                        "construct-only": false,
+                        "default": "NULL",
+                        "type-name": "gchararray",
+                        "writable": true
+                    }
+                },
+                "rank": "none",
+                "signals": {
+                    "commit": {
+                        "args": [
+                            "gboolean"
+                        ],
+                        "retval": "gboolean"
+                    },
+                    "no-more-pads": {
+                        "args": [],
+                        "retval": "void"
+                    },
+                    "pad-added": {
+                        "args": [
+                            "GstPad"
+                        ],
+                        "retval": "void"
+                    },
+                    "pad-removed": {
+                        "args": [
+                            "GstPad"
+                        ],
+                        "retval": "void"
+                    }
+                }
+            }
+        },
+        "filename": "libgstnle.so",
+        "license": "LGPL",
+        "package": "GStreamer Editing Services",
+        "source": "gst-editing-services",
+        "url": "Unknown package origin"
+    }
+}
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
new file mode 100644 (file)
index 0000000..e2e39da
--- /dev/null
@@ -0,0 +1,68 @@
+---
+short-description:  GStreamer Editing Services API reference.
+...
+
+# GStreamer Editing Services
+
+The "GStreamer Editing Services" is a library to simplify the creation
+of multimedia editing applications. Based on the GStreamer multimedia framework
+and the GNonLin set of plugins, its goals are to suit all types of editing-related
+applications.
+
+The GStreamer Editing Services are cross-platform and work on most UNIX-like
+platform as well as Windows. It is released under the GNU Library General Public License
+(GNU LGPL).
+
+## 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](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.
+
+### Tracks and Layers
+
+The GESTimeline can contain two types of objects (seen in
+"Layers and Tracks"):
+
+-   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.
+
+-   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.
+
+![Layers and Tracks](images/layer_track_overview.png)
+
+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 : [GESPipeline](GESPipeline).
diff --git a/docs/libs/.gitignore b/docs/libs/.gitignore
deleted file mode 100644 (file)
index 65f8c76..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-ges-decl-list.txt
-ges-decl.txt
-ges-overrides.txt
-ges-undeclared.txt
-ges-undocumented.txt
-ges-unused.txt
-ges.args
-ges.hierarchy
-ges.interfaces
-ges.prerequisites
-ges.signals
-*.stamp
-
-html/
-tmpl/
-xml/
-doc-registry.xml
diff --git a/docs/libs/Makefile.am b/docs/libs/Makefile.am
deleted file mode 100644 (file)
index d4362f0..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj
-
-## Process this file with automake to produce Makefile.in
-
-# The name of the module, e.g. 'glib'.
-MODULE=ges
-DOC_MODULE=$(MODULE)
-
-# for upload-doc.mak
-DOC=gstreamer-editing-services
-FORMATS=html
-html: html-build.stamp
-include $(top_srcdir)/common/upload-doc.mak
-
-# The top-level SGML file. Change it if you want.
-DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
-
-# The directory containing the source code.
-# gtk-doc will search all .c & .h files beneath here for inline comments
-# documenting functions and macros.
-DOC_SOURCE_DIR = $(top_srcdir)/ges
-
-SCAN_OPTIONS= 
-
-# Extra options to supply to gtkdoc-mkdb.
-MKDB_OPTIONS=--sgml-mode --source-suffixes=c,h,cc,m
-
-# Extra options to supply to gtkdoc-fixref.
-FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \
-       --extra-dir=$(GST_PREFIX)/share/gtk-doc/html \
-       --extra-dir=$(GSTPB_PREFIX)/share/gtk-doc/html
-
-# Used for dependencies.
-HFILE_GLOB=$(top_srcdir)/ges/ges-*.h
-CFILE_GLOB=$(top_srcdir)/ges/ges-*.c
-
-# Extra options to supply to gtkdoc-scan.
-SCANOBJ_OPTIONS=--type-init-func="g_type_init();gst_init(&argc,&argv)"
-
-# Header files to ignore when scanning.
-IGNORE_HFILES = \
-       gesmarshal.h \
-       ges-internal.h \
-       ges-auto-transition.h \
-       ges-structured-interface.h \
-       ges-structure-parser.h \
-       ges-smart-video-mixer.h \
-       gstframepositioner.h
-IGNORE_CFILES =
-
-# we add all .h files of elements that have signals/args we want
-# sadly this also pulls in the private methods - maybe we should
-# move those around in the source ?
-# also, we should add some stuff here conditionally based on whether
-# or not the plugin will actually build
-# but I'm not sure about that - it might be this Just Works given that
-# the registry won't have the element
-
-EXTRA_HFILES = \
-       $(top_srcdir)/ges/ges-types.h
-
-# Images to copy into HTML directory.
-HTML_IMAGES =  layer_track_overview.png
-
-# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
-content_files = architecture.xml 
-
-# Other files to distribute.
-extra_files =
-
-# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
-# contains GtkObjects/GObjects and you want to document signals and properties.
-GTKDOC_CFLAGS = -I$(top_srcdir) $(GST_PBUTILS_CFLAGS) $(GST_BASE_CFLAGS) \
-       $(GST_CFLAGS)  $(GIO_CFLAGS) $(GCOV_CFLAGS)
-GTKDOC_LIBS =  \
-       $(top_builddir)/ges/libges-@GST_API_VERSION@.la \
-       $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS) $(GCOV_LIBS)
-
-GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC)
-GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC)
-
-# If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-
-include $(top_srcdir)/common/gtk-doc.mak
diff --git a/docs/libs/architecture.xml b/docs/libs/architecture.xml
deleted file mode 100644 (file)
index f345eb9..0000000
+++ /dev/null
@@ -1,111 +0,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 % 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>
-          <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>
-    <title>Architecture</title>
-
-    <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>
-    </refsect2>
-
-
-    <refsect2>
-      <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>
-
-  </refsect1>
-</refentry>
diff --git a/docs/libs/ges-docs.sgml b/docs/libs/ges-docs.sgml
deleted file mode 100644 (file)
index edb9586..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY % version-entities SYSTEM "version.entities">
-%version-entities;
-]>
-
-<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
-  <bookinfo>
-    <title>GStreamer Editing Services &GES_VERSION; Reference Manual</title>
-    <releaseinfo>
-      for GStreamer Editing Services &GST_API_VERSION; (&GES_VERSION;)
-    </releaseinfo>
-  </bookinfo>
-
-  <chapter>
-    <title>GStreamer Editing Services Overview</title>
-    <para>
-      The "GStreamer Editing Services" is a library to simplify the creation
-of multimedia editing applications. Based on the GStreamer multimedia framework
-and the GNonLin set of plugins, its goals are to suit all types of editing-related
-applications.
-    </para>
-
-    <para>
-      The GStreamer Editing Services are cross-platform and work on most UNIX-like
-platform as well as Windows. It is released under the GNU Library General Public License
-(GNU LGPL).
-    </para>
-  <xi:include href="architecture.xml"/>
-  <xi:include href="xml/ges-common.xml"/>
-  <xi:include href="xml/ges-enums.xml"/>
-  <xi:include href="xml/ges-gerror.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Base Classes</title>
-    <xi:include href="xml/gestimeline.xml"/>
-    <xi:include href="xml/geslayer.xml"/>
-    <xi:include href="xml/gestimelineelement.xml"/>
-    <xi:include href="xml/gescontainer.xml"/>
-    <xi:include href="xml/gesclip.xml"/>
-    <xi:include href="xml/gessourceclip.xml"/>
-    <xi:include href="xml/gesoperationclip.xml"/>
-    <xi:include href="xml/gesoverlayclip.xml"/>
-    <xi:include href="xml/gesbaseeffectclip.xml"/>
-    <xi:include href="xml/gestrack.xml"/>
-    <xi:include href="xml/gestrackelement.xml"/>
-    <xi:include href="xml/gessource.xml"/>
-    <xi:include href="xml/gesvideosource.xml"/>
-    <xi:include href="xml/gesaudiosource.xml"/>
-    <xi:include href="xml/gesbaseeffect.xml"/>
-    <xi:include href="xml/gesoperation.xml"/>
-    <xi:include href="xml/gesbasetransitionclip.xml"/>
-    <xi:include href="xml/gesasset.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Timeline objects</title>
-    <xi:include href="xml/gesuriclip.xml"/>
-    <xi:include href="xml/gestitleclip.xml"/>
-    <xi:include href="xml/gestestclip.xml"/>
-    <xi:include href="xml/gestextoverlayclip.xml"/>
-    <xi:include href="xml/gestransitionclip.xml"/>
-    <xi:include href="xml/geseffectclip.xml"/>
-    <xi:include href="xml/gesgroup.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Track objects</title>
-    <xi:include href="xml/gesaudiourisource.xml"/>
-    <xi:include href="xml/gesvideourisource.xml"/>
-    <xi:include href="xml/gestitlesource.xml"/>
-    <xi:include href="xml/gesaudiotestsource.xml"/>
-    <xi:include href="xml/gesvideotestsource.xml"/>
-    <xi:include href="xml/gestextoverlay.xml"/>
-    <xi:include href="xml/gestransition.xml"/>
-    <xi:include href="xml/gesvideotransition.xml"/>
-    <xi:include href="xml/gesaudiotransition.xml"/>
-    <xi:include href="xml/gesimagesource.xml"/>
-    <xi:include href="xml/gesmultifilesource.xml"/>
-    <xi:include href="xml/geseffect.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Convenience classes</title>
-    <xi:include href="xml/gespipeline.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Serialization Classes</title>
-    <xi:include href="xml/gesformatter.xml"/>
-    <xi:include href="xml/gespitiviformatter.xml"/>
-    <xi:include href="xml/gesbasexmlformatter.xml"/>
-    <xi:include href="xml/gesxmlformatter.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Interfaces</title>
-    <xi:include href="xml/gesmetacontainer.xml"/>
-    <xi:include href="xml/gesextractable.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Assets</title>
-    <xi:include href="xml/gesclipasset.xml"/>
-    <xi:include href="xml/gestrackelementasset.xml"/>
-    <xi:include href="xml/gesuriclipasset.xml"/>
-    <xi:include href="xml/gesurisourceasset.xml"/>
-    <xi:include href="xml/gesproject.xml"/>
-  </chapter>
-
-  <chapter>
-    <title>Tracks</title>
-    <xi:include href="xml/gesvideotrack.xml"/>
-    <xi:include href="xml/gesaudiotrack.xml"/>
-  </chapter>
-
-  <chapter id="ges-hierarchy">
-    <title>Object Hierarchy</title>
-    <xi:include href="xml/tree_index.sgml"/>
-  </chapter>
-
-  <index id="api-index-full">
-    <title>API Index</title>
-    <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
-  </index>
-
-  <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
-</book>
diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt
deleted file mode 100644 (file)
index 05f638e..0000000
+++ /dev/null
@@ -1,1259 +0,0 @@
-<INCLUDE>ges/ges.h</INCLUDE>
-
-<SECTION>
-<FILE>ges-common</FILE>
-<TITLE>Initialization</TITLE>
-ges_init
-ges_is_initialized
-ges_init_check
-ges_deinit
-ges_version
-ges_init_get_option_group
-GES_VERSION_MAJOR
-GES_VERSION_MICRO
-GES_VERSION_MINOR
-GES_VERSION_NANO
-<SUBSECTION Standard>
-GES_PADDING
-GES_PADDING_LARGE
-GESAssetLoadingReturn
-</SECTION>
-
-<SECTION>
-<FILE>ges-utils</FILE>
-<TITLE>Utilities</TITLE>
-ges_add_missing_uri_relocation_uri
-
-ges_pspec_equal
-ges_pspec_hash
-
-</SECTION>
-
-<SECTION>
-<FILE>ges-gerror</FILE>
-<TITLE>GES GErrors</TITLE>
-GES_ERROR
-GESError
-</SECTION>
-
-<SECTION>
-<FILE>ges-enums</FILE>
-<TITLE>GES Enums</TITLE>
-GESTrackType
-GESVideoStandardTransitionType
-GESTextHAlign
-DEFAULT_HALIGNMENT
-GESTextVAlign
-DEFAULT_VALIGNMENT
-GESVideoTestPattern
-GESPipelineFlags
-GESEdge
-GESEditMode
-GESMetaFlag
-<SUBSECTION Standard>
-GES_TYPE_TRACK_TYPE
-ges_track_type_get_type
-GES_META_FLAG_TYPE
-ges_meta_flag_get_type
-GES_VIDEO_STANDARD_TRANSITION_TYPE_TYPE
-ges_video_standard_transition_type_get_type
-GES_TEXT_HALIGN_TYPE
-ges_text_halign_get_type
-GES_TEXT_VALIGN_TYPE
-ges_text_valign_get_type
-GES_VIDEO_TEST_PATTERN_TYPE
-ges_video_test_pattern_get_type
-GES_TYPE_PIPELINE_FLAGS
-ges_pipeline_flags_get_type
-GES_TYPE_EDGE
-ges_edge_get_type
-GES_TYPE_EDIT_MODE
-ges_edit_mode_get_type
-ges_track_type_name
-</SECTION>
-
-<SECTION>
-<FILE>gestrack</FILE>
-<TITLE>GESTrack</TITLE>
-GESTrack
-GESCreateElementForGapFunc
-ges_track_new
-ges_track_add_element
-ges_track_set_restriction_caps
-ges_track_update_restriction_caps
-ges_track_remove_element
-ges_track_set_caps
-ges_track_get_caps
-ges_track_enable_update
-ges_track_get_elements
-ges_track_is_updating
-ges_track_commit
-ges_track_set_create_element_for_gap_func
-ges_track_get_mixing
-ges_track_set_mixing
-<SUBSECTION Standard>
-GESTrackClass
-GESTrackPrivate
-ges_track_set_timeline
-ges_track_get_timeline
-ges_track_get_type
-GES_IS_TRACK
-GES_IS_TRACK_CLASS
-GES_TRACK
-GES_TRACK_CLASS
-GES_TRACK_GET_CLASS
-GES_TYPE_TRACK
-</SECTION>
-
-<SECTION>
-<FILE>gesaudiotrack</FILE>
-<TITLE>GESAudioTrack</TITLE>
-GESAudioTrack
-ges_audio_track_new
-<SUBSECTION Standard>
-GESAudioTrackClass
-GESAudioTrackPrivate
-GES_IS_AUDIO_TRACK
-GES_IS_AUDIO_TRACK_CLASS
-GES_AUDIO_TRACK
-GES_AUDIO_TRACK_CLASS
-GES_AUDIO_TRACK_GET_CLASS
-GES_TYPE_AUDIO_TRACK
-ges_audio_track_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesvideotrack</FILE>
-<TITLE>GESVideoTrack</TITLE>
-GESVideoTrack
-ges_video_track_new
-<SUBSECTION Standard>
-GESVideoTrackClass
-GESVideoTrackPrivate
-GES_IS_VIDEO_TRACK
-GES_IS_VIDEO_TRACK_CLASS
-GES_VIDEO_TRACK
-GES_VIDEO_TRACK_CLASS
-GES_VIDEO_TRACK_GET_CLASS
-GES_TYPE_VIDEO_TRACK
-ges_video_track_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gestrackelement</FILE>
-<TITLE>GESTrackElement</TITLE>
-GESTrackElement
-GESTrackElementClass
-ges_track_element_set_active
-ges_track_element_get_track
-ges_track_element_get_nleobject
-ges_track_element_get_gnlobject
-ges_track_element_get_element
-ges_track_element_is_active
-ges_track_element_lookup_child
-ges_track_element_list_children_properties
-ges_track_element_set_child_property
-ges_track_element_set_child_properties
-ges_track_element_set_child_property_valist
-ges_track_element_set_child_property_by_pspec
-ges_track_element_get_child_property
-ges_track_element_get_child_properties
-ges_track_element_get_child_property_valist
-ges_track_element_get_child_property_by_pspec
-ges_track_element_edit
-ges_track_element_set_control_source
-ges_track_element_get_control_binding
-ges_track_element_get_all_control_bindings
-ges_track_element_remove_control_binding
-<SUBSECTION Standard>
-GESTrackElementPrivate
-ges_track_element_set_track
-ges_track_element_get_type
-GES_IS_TRACK_ELEMENT
-GES_IS_TRACK_ELEMENT_CLASS
-GES_TRACK_ELEMENT
-GES_TRACK_ELEMENT_CLASS
-GES_TRACK_ELEMENT_GET_CLASS
-GES_TYPE_TRACK_ELEMENT
-</SECTION>
-
-<SECTION>
-<FILE>gessource</FILE>
-<TITLE>GESSource</TITLE>
-GESSource
-GESSourceClass
-<SUBSECTION Standard>
-GESSourcePrivate
-GES_SOURCE
-GES_SOURCE_CLASS
-GES_SOURCE_GET_CLASS
-GES_TYPE_SOURCE
-GES_IS_SOURCE
-GES_IS_SOURCE_CLASS
-ges_source_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesoperation</FILE>
-<TITLE>GESOperation</TITLE>
-GESOperation
-GESOperationClass
-<SUBSECTION Standard>
-GESOperationPrivate
-ges_operation_get_type
-GES_IS_OPERATION
-GES_IS_OPERATION_CLASS
-GES_OPERATION
-GES_OPERATION_CLASS
-GES_OPERATION_GET_CLASS
-GES_TYPE_OPERATION
-</SECTION>
-
-<SECTION>
-<FILE>gesvideosource</FILE>
-<TITLE>GESVideoSource</TITLE>
-GESVideoSource
-<SUBSECTION Standard>
-GESVideoSourceClass
-GESVideoSourcePrivate
-GES_VIDEO_SOURCE
-GES_VIDEO_SOURCE_CLASS
-GES_VIDEO_SOURCE_GET_CLASS
-GES_TYPE_VIDEO_SOURCE
-GES_IS_VIDEO_SOURCE
-GES_IS_VIDEO_SOURCE_CLASS
-ges_video_source_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesaudiosource</FILE>
-<TITLE>GESAudioSource</TITLE>
-GESAudioSource
-<SUBSECTION Standard>
-GESAudioSourceClass
-GESAudioSourcePrivate
-GES_AUDIO_SOURCE
-GES_AUDIO_SOURCE_CLASS
-GES_AUDIO_SOURCE_GET_CLASS
-GES_TYPE_AUDIO_SOURCE
-GES_IS_AUDIO_SOURCE
-GES_IS_AUDIO_SOURCE_CLASS
-ges_audio_source_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesvideourisource</FILE>
-<TITLE>GESVideoUriSource</TITLE>
-GESVideoUriSource
-<SUBSECTION Standard>
-GESVideoUriSourceClass
-GESVideoUriSourcePrivate
-GES_VIDEO_URI_SOURCE
-GES_VIDEO_URI_SOURCE_CLASS
-GES_VIDEO_URI_SOURCE_GET_CLASS
-GES_TYPE_VIDEO_URI_SOURCE
-GES_IS_VIDEO_URI_SOURCE
-GES_IS_VIDEO_URI_SOURCE_CLASS
-ges_video_uri_source_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesaudiourisource</FILE>
-<TITLE>GESAudioUriSource</TITLE>
-GESAudioUriSource
-<SUBSECTION Standard>
-GESAudioUriSourceClass
-GESAudioUriSourcePrivate
-GES_AUDIO_URI_SOURCE
-GES_AUDIO_URI_SOURCE_CLASS
-GES_AUDIO_URI_SOURCE_GET_CLASS
-GES_TYPE_AUDIO_URI_SOURCE
-GES_IS_AUDIO_URI_SOURCE
-GES_IS_AUDIO_URI_SOURCE_CLASS
-ges_audio_uri_source_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesimagesource</FILE>
-<TITLE>GESImageSource</TITLE>
-GESImageSource
-<SUBSECTION Standard>
-GESImageSourcePrivate
-GES_IS_IMAGE_SOURCE
-GES_IS_IMAGE_SOURCE_CLASS
-GES_IMAGE_SOURCE
-GES_IMAGE_SOURCE_CLASS
-GES_IMAGE_SOURCE_GET_CLASS
-GES_TYPE_IMAGE_SOURCE
-GESImageSourceClass
-ges_image_source_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesmultifilesource</FILE>
-<TITLE>GESMultiFileSource</TITLE>
-GESMultiFileSource
-ges_multi_file_source_new
-<SUBSECTION Standard>
-GESMultiFileSourcePrivate
-GES_IS_MULTI_FILE_SOURCE
-GES_IS_MULTI_FILE_SOURCE_CLASS
-GES_MULTI_FILE_SOURCE
-GES_MULTI_FILE_SOURCE_CLASS
-GES_MULTI_FILE_SOURCE_GET_CLASS
-GES_TYPE_MULTI_FILE_SOURCE
-GESMultiFileSourceClass
-ges_multi_file_source_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gestransition</FILE>
-<TITLE>GESTransition</TITLE>
-GESTransition
-GESTransitionClass
-<SUBSECTION Standard>
-GESTransitionPrivate
-GES_IS_TRANSITION
-GES_IS_TRANSITION_CLASS
-GES_TRANSITION
-GES_TRANSITION_CLASS
-GES_TRANSITION_GET_CLASS
-GES_TYPE_TRANSITION
-ges_transition_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesaudiotransition</FILE>
-<TITLE>GESAudioTransition</TITLE>
-GESAudioTransition
-ges_audio_transition_new
-<SUBSECTION Standard>
-GESAudioTransitionClass
-GESAudioTransitionPrivate
-GES_IS_AUDIO_TRANSITION
-ges_audio_transition_get_type
-GES_IS_AUDIO_TRANSITION_CLASS
-GES_AUDIO_TRANSITION
-GES_AUDIO_TRANSITION_CLASS
-GES_AUDIO_TRANSITION_GET_CLASS
-GES_TYPE_AUDIO_TRANSITION
-</SECTION>
-
-<SECTION>
-<FILE>gesvideotransition</FILE>
-<TITLE>GESVideoTransition</TITLE>
-GESVideoTransition
-ges_video_transition_new
-ges_video_transition_set_transition_type
-ges_video_transition_get_transition_type
-ges_video_transition_set_border
-ges_video_transition_get_border
-ges_video_transition_set_inverted
-ges_video_transition_is_inverted
-<SUBSECTION Standard>
-GESVideoTransitionClass
-GESVideoTransitionPrivate
-ges_video_transition_get_type
-GES_IS_VIDEO_TRANSITION
-GES_IS_VIDEO_TRANSITION_CLASS
-GES_VIDEO_TRANSITION
-GES_VIDEO_TRANSITION_CLASS
-GES_VIDEO_TRANSITION_GET_CLASS
-GES_TYPE_VIDEO_TRANSITION
-</SECTION>
-
-<SECTION>
-<FILE>gestimeline</FILE>
-<TITLE>GESTimeline</TITLE>
-GESTimeline
-ges_timeline_new
-ges_timeline_new_audio_video
-ges_timeline_new_from_uri
-ges_timeline_add_layer
-ges_timeline_append_layer
-ges_timeline_remove_layer
-ges_timeline_add_track
-ges_timeline_remove_track
-ges_timeline_load_from_uri
-ges_timeline_save_to_uri
-ges_timeline_enable_update
-ges_timeline_is_updating
-ges_timeline_commit
-ges_timeline_commit_sync
-ges_timeline_move_layer
-<SUBSECTION usage>
-ges_timeline_get_tracks
-ges_timeline_get_layer
-ges_timeline_get_layers
-ges_timeline_get_track_for_pad
-ges_timeline_get_pad_for_track
-ges_timeline_get_duration
-ges_timeline_get_project
-ges_timeline_get_auto_transition
-ges_timeline_set_auto_transition
-ges_timeline_get_snapping_distance
-ges_timeline_set_snapping_distance
-ges_timeline_get_element
-ges_timeline_is_empty
-GES_TIMELINE_GET_LAYERS
-GES_TIMELINE_GET_TRACKS
-<SUBSECTION Standard>
-GESTimelinePrivate
-GESTimelineClass
-ges_timeline_get_type
-GES_IS_TIMELINE
-GES_IS_TIMELINE_CLASS
-GES_TIMELINE
-GES_TIMELINE_CLASS
-GES_TIMELINE_GET_CLASS
-GES_TYPE_TIMELINE
-</SECTION>
-
-
-<SECTION>
-<FILE>geslayer</FILE>
-<TITLE>GESLayer</TITLE>
-GESLayer
-GESLayerClass
-ges_layer_add_clip
-ges_layer_add_asset
-ges_layer_new
-ges_layer_remove_clip
-ges_layer_set_priority
-ges_layer_get_priority
-ges_layer_get_clips
-ges_layer_get_timeline
-ges_layer_get_auto_transition
-ges_layer_set_auto_transition
-ges_layer_is_empty
-ges_layer_get_duration
-<SUBSECTION Standard>
-GESLayerPrivate
-ges_layer_set_timeline
-ges_layer_get_type
-GES_IS_LAYER
-GES_IS_LAYER_CLASS
-GES_LAYER
-GES_LAYER_CLASS
-GES_LAYER_GET_CLASS
-GES_TYPE_LAYER
-</SECTION>
-
-<SECTION>
-<FILE>gestimelineelement</FILE>
-<TITLE>GESTimelineElement</TITLE>
-GESTimelineElement
-GESTimelineElementClass
-ges_timeline_element_set_parent
-ges_timeline_element_get_parent
-ges_timeline_element_set_timeline
-ges_timeline_element_get_timeline
-ges_timeline_element_set_start
-ges_timeline_element_set_inpoint
-ges_timeline_element_set_duration
-ges_timeline_element_set_max_duration
-ges_timeline_element_set_priority
-ges_timeline_element_get_start
-ges_timeline_element_get_inpoint
-ges_timeline_element_get_duration
-ges_timeline_element_get_max_duration
-ges_timeline_element_get_priority
-ges_timeline_element_ripple
-ges_timeline_element_ripple_end
-ges_timeline_element_roll_start
-ges_timeline_element_roll_end
-ges_timeline_element_trim
-ges_timeline_element_get_toplevel_parent
-ges_timeline_element_copy
-ges_timeline_element_paste
-ges_timeline_element_get_name
-ges_timeline_element_set_name
-ges_timeline_element_list_children_properties
-ges_timeline_element_lookup_child
-ges_timeline_element_get_child_property_by_pspec
-ges_timeline_element_get_child_property_valist
-ges_timeline_element_get_child_properties
-ges_timeline_element_set_child_property_valist
-ges_timeline_element_set_child_property_by_pspec
-ges_timeline_element_set_child_properties
-ges_timeline_element_set_child_property
-ges_timeline_element_get_child_property
-ges_timeline_element_add_child_property
-ges_timeline_element_remove_child_property
-ges_timeline_element_get_track_types
-GES_TIMELINE_ELEMENT_PARENT
-GES_TIMELINE_ELEMENT_TIMELINE
-GES_TIMELINE_ELEMENT_START
-GES_TIMELINE_ELEMENT_END
-GES_TIMELINE_ELEMENT_INPOINT
-GES_TIMELINE_ELEMENT_DURATION
-GES_TIMELINE_ELEMENT_MAX_DURATION
-GES_TIMELINE_ELEMENT_PRIORITY
-GES_TIMELINE_ELEMENT_NAME
-<SUBSECTION Standard>
-GESTimelineElementPrivate
-ges_timeline_element_get_type
-GES_TYPE_TIMELINE_ELEMENT
-GES_TIMELINE_ELEMENT
-GES_TIMELINE_ELEMENT_CLASS
-GES_IS_TIMELINE_ELEMENT
-GES_IS_TIMELINE_ELEMENT_CLASS
-GES_TIMELINE_ELEMENT_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gescontainer</FILE>
-<TITLE>GESContainer</TITLE>
-GESContainer
-GESContainerClass
-GES_CONTAINER_CHILDREN
-GES_CONTAINER_HEIGHT
-ges_container_get_children
-ges_container_add
-ges_container_remove
-ges_container_ungroup
-ges_container_group
-ges_container_edit
-<SUBSECTION Standard>
-GESContainerPrivate
-ges_container_get_type
-GES_TYPE_CONTAINER
-GES_CONTAINER
-GES_CONTAINER_CLASS
-GES_IS_CONTAINER
-GES_IS_CONTAINER_CLASS
-GES_CONTAINER_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gesclip</FILE>
-<TITLE>GESClip</TITLE>
-GESClip
-GESClipClass
-GESCreateTrackElementFunc
-GESCreateTrackElementsFunc
-GESFillTrackElementFunc
-ges_clip_get_layer
-ges_clip_find_track_element
-ges_clip_find_track_elements
-ges_clip_add_asset
-ges_clip_get_top_effects
-ges_clip_get_top_effect_index
-ges_clip_set_top_effect_index
-ges_clip_get_top_effect_position
-ges_clip_set_top_effect_priority
-ges_clip_move_to_layer
-ges_clip_set_supported_formats
-ges_clip_get_supported_formats
-ges_clip_split
-ges_clip_edit
-GES_CLIP_HEIGHT
-<SUBSECTION Standard>
-GESClipPrivate
-GES_IS_CLIP
-GES_IS_CLIP_CLASS
-GES_CLIP
-GES_CLIP_CLASS
-GES_CLIP_GET_CLASS
-GES_TYPE_CLIP
-ges_clip_get_type
-</SECTION>
-
-
-<SECTION>
-<FILE>gespipeline</FILE>
-<TITLE>GESPipeline</TITLE>
-GESPipeline
-ges_pipeline_new
-ges_pipeline_set_timeline
-ges_pipeline_set_mode
-ges_pipeline_set_render_settings
-ges_pipeline_preview_get_audio_sink
-ges_pipeline_preview_get_video_sink
-ges_pipeline_preview_set_audio_sink
-ges_pipeline_preview_set_video_sink
-ges_pipeline_get_mode
-ges_pipeline_get_thumbnail
-ges_pipeline_get_thumbnail_rgb24
-ges_pipeline_save_thumbnail
-<SUBSECTION Standard>
-GESPipelineClass
-GESPipelinePrivate
-ges_play_sink_convert_frame
-ges_pipeline_get_type
-GES_PIPELINE
-GES_PIPELINE_CLASS
-GES_PIPELINE_GET_CLASS
-GES_IS_PIPELINE
-GES_IS_PIPELINE_CLASS
-GES_TYPE_PIPELINE
-</SECTION>
-
-
-<SECTION>
-<FILE>gessourceclip</FILE>
-<TITLE>GESSourceClip</TITLE>
-GESSourceClip
-GESSourceClipClass
-<SUBSECTION Standard>
-GESSourceClipPrivate
-ges_source_clip_get_type
-GES_IS_SOURCE_CLIP
-GES_IS_SOURCE_CLIP_CLASS
-GES_SOURCE_CLIP
-GES_SOURCE_CLIP_CLASS
-GES_SOURCE_CLIP_GET_CLASS
-GES_TYPE_SOURCE_CLIP
-</SECTION>
-
-<SECTION>
-<FILE>gesuriclip</FILE>
-<TITLE>GESUriClip</TITLE>
-GESUriClip
-ges_uri_clip_new
-ges_uri_clip_get_uri
-ges_uri_clip_is_image
-ges_uri_clip_is_muted
-ges_uri_clip_set_is_image
-ges_uri_clip_set_mute
-<SUBSECTION Standard>
-GESUriClipClass
-GESUriClipPrivate
-ges_uri_clip_get_type
-GES_IS_URI_CLIP
-GES_IS_URI_CLIP_CLASS
-GES_URI_CLIP
-GES_URI_CLIP_CLASS
-GES_URI_CLIP_GET_CLASS
-GES_TYPE_URI_CLIP
-</SECTION>
-
-<SECTION>
-<FILE>gesoperationclip</FILE>
-<TITLE>GESOperationClip</TITLE>
-GESOperationClip
-<SUBSECTION Standard>
-GESOperationClipClass
-GESOperationClipPrivate
-GES_OPERATION_CLIP
-GES_IS_OPERATION_CLIP
-GES_TYPE_OPERATION_CLIP
-ges_operation_clip_get_type
-GES_OPERATION_CLIP_CLASS
-GES_IS_OPERATION_CLIP_CLASS
-GES_OPERATION_CLIP_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gesoverlayclip</FILE>
-<TITLE>GESOverlayClip</TITLE>
-GESOverlayClip
-GESOverlayClipClass
-<SUBSECTION Standard>
-GESOverlayClipPrivate
-ges_overlay_clip_get_type
-GES_IS_OVERLAY_CLIP
-GES_IS_OVERLAY_CLIP_CLASS
-GES_OVERLAY_CLIP
-GES_OVERLAY_CLIP_CLASS
-GES_OVERLAY_CLIP_GET_CLASS
-GES_TYPE_OVERLAY_CLIP
-</SECTION>
-
-<SECTION>
-<FILE>gesbasetransitionclip</FILE>
-<TITLE>GESBaseTransitionClip</TITLE>
-GESBaseTransitionClip
-<SUBSECTION Standard>
-GESBaseTransitionClipClass
-GESBaseTransitionClipPrivate
-GES_BASE_TRANSITION_CLIP
-GES_IS_BASE_TRANSITION_CLIP
-GES_TYPE_BASE_TRANSITION_CLIP
-ges_base_transition_clip_get_type
-GES_BASE_TRANSITION_CLIP_CLASS
-GES_IS_BASE_TRANSITION_CLIP_CLASS
-GES_BASE_TRANSITION_CLIP_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gesbaseeffectclip</FILE>
-<TITLE>GESBaseEffectClip</TITLE>
-GESBaseEffectClip
-<SUBSECTION Standard>
-GESBaseEffectClipClass
-GESBaseEffectClipPrivate
-GES_BASE_EFFECT_CLIP
-GES_IS_BASE_EFFECT_CLIP
-GES_TYPE_BASE_EFFECT_CLIP
-ges_base_effect_clip_get_type
-GES_BASE_EFFECT_CLIP_CLASS
-GES_IS_BASE_EFFECT_CLIP_CLASS
-GES_BASE_EFFECT_CLIP_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>geseffectclip</FILE>
-<TITLE>GESEffectClip</TITLE>
-GESEffectClip
-ges_effect_clip_new
-<SUBSECTION Standard>
-GESEffectClipClass
-GESEffectClipPrivate
-GES_EFFECT_CLIP_CLASS
-GES_EFFECT_CLIP
-GES_IS_EFFECT_CLIP
-GES_TYPE_EFFECT_CLIP
-ges_effect_clip_get_type
-GES_EFFECT_CLIP_CLASS_
-GES_IS_EFFECT_CLIP_CLASS
-GES_EFFECT_CLIP_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gestransitionclip</FILE>
-<TITLE>GESTransitionClip</TITLE>
-GESTransitionClip
-ges_transition_clip_new
-ges_transition_clip_new_for_nick
-<SUBSECTION Standard>
-GESTransitionClipClass
-GESTransitionClipPrivate
-GES_IS_TRANSITION_CLIP
-GES_IS_TRANSITION_CLIP_CLASS
-GES_TRANSITION_CLIP
-GES_TRANSITION_CLIP_CLASS
-GES_TRANSITION_CLIP_GET_CLASS
-GES_TYPE_TRANSITION_CLIP
-ges_transition_clip_get_type
-</SECTION>
-
-
-<SECTION>
-<FILE>gestestclip</FILE>
-<TITLE>GESTestClip</TITLE>
-GESTestClip
-GESTestClipClass
-ges_test_clip_new
-ges_test_clip_new_for_nick
-ges_test_clip_get_vpattern
-ges_test_clip_get_frequency
-ges_test_clip_get_volume
-ges_test_clip_is_muted
-ges_test_clip_set_vpattern
-ges_test_clip_set_frequency
-ges_test_clip_set_mute
-ges_test_clip_set_volume
-<SUBSECTION Standard>
-GESTestClipPrivate
-ges_test_clip_get_type
-GES_TYPE_TEST_CLIP
-GES_IS_TEST_CLIP
-GES_IS_TEST_CLIP_CLASS
-GES_TEST_CLIP
-GES_TEST_CLIP_CLASS
-GES_TEST_CLIP_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gestitleclip</FILE>
-<TITLE>GESTitleClip</TITLE>
-GESTitleClip
-ges_title_clip_new
-ges_title_clip_set_text
-ges_title_clip_set_font_desc
-ges_title_clip_set_halignment
-ges_title_clip_set_valignment
-ges_title_clip_set_color
-ges_title_clip_set_background
-ges_title_clip_set_xpos
-ges_title_clip_set_ypos
-ges_title_clip_get_text
-ges_title_clip_get_font_desc
-ges_title_clip_get_valignment
-ges_title_clip_get_halignment
-ges_title_clip_get_text_color
-ges_title_clip_get_background_color
-ges_title_clip_get_xpos
-ges_title_clip_get_ypos
-<SUBSECTION Standard>
-GESTitleClipClass
-GESTitleClipPrivate
-ges_title_clip_get_type
-GES_IS_TITLE_CLIP
-GES_IS_TITLE_CLIP_CLASS
-GES_TITLE_CLIP
-GES_TITLE_CLIP_CLASS
-GES_TITLE_CLIP_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gestextoverlayclip</FILE>
-<TITLE>GESTextOverlayClip</TITLE>
-GESTextOverlayClip
-ges_text_overlay_clip_new
-ges_text_overlay_clip_set_text
-ges_text_overlay_clip_set_font_desc
-ges_text_overlay_clip_set_valign
-ges_text_overlay_clip_set_halign
-ges_text_overlay_clip_set_color
-ges_text_overlay_clip_set_xpos
-ges_text_overlay_clip_set_ypos
-ges_text_overlay_clip_get_text
-ges_text_overlay_clip_get_font_desc
-ges_text_overlay_clip_get_valignment
-ges_text_overlay_clip_get_halignment
-ges_text_overlay_clip_get_color
-ges_text_overlay_clip_get_xpos
-ges_text_overlay_clip_get_ypos
-<SUBSECTION Standard>
-GESTextOverlayClipClass
-GESTextOverlayClipPrivate
-ges_text_overlay_clip_get_type
-GES_IS_OVERLAY_TEXT_CLIP
-GES_IS_OVERLAY_TEXT_CLIP_CLASS
-GES_OVERLAY_TEXT_CLIP
-GES_OVERLAY_TEXT_CLIP_CLASS
-GES_OVERLAY_TEXT_CLIP_GET_CLASS
-GES_TYPE_OVERLAY_TEXT_CLIP
-</SECTION>
-
-<SECTION>
-<FILE>gesvideotestsource</FILE>
-<TITLE>GESVideoTestSource</TITLE>
-GESVideoTestSource
-ges_video_test_source_set_pattern
-ges_video_test_source_get_pattern
-<SUBSECTION Standard>
-GESVideoTestSourceClass
-GESVideoTestSourcePrivate
-ges_video_test_source_get_type
-GES_IS_VIDEO_TEST_SOURCE
-GES_IS_VIDEO_TEST_SOURCE_CLASS
-GES_VIDEO_TEST_SOURCE
-GES_VIDEO_TEST_SOURCE_CLASS
-GES_VIDEO_TEST_SOURCE_GET_CLASS
-GES_TYPE_VIDEO_TEST_SOURCE
-</SECTION>
-
-<SECTION>
-<FILE>gesaudiotestsource</FILE>
-<TITLE>GESAudioTestSource</TITLE>
-GESAudioTestSource
-ges_audio_test_source_set_freq
-ges_audio_test_source_set_volume
-ges_audio_test_source_get_freq
-ges_audio_test_source_get_volume
-<SUBSECTION Standard>
-GESAudioTestSourceClass
-GESAudioTestSourcePrivate
-ges_audio_test_source_get_type
-GES_AUDIO_TEST_SOURCE
-GES_AUDIO_TEST_SOURCE_CLASS
-GES_AUDIO_TEST_SOURCE_GET_CLASS
-GES_TYPE_AUDIO_TEST_SOURCE
-GES_IS_AUDIO_TEST_SOURCE
-GES_IS_AUDIO_TEST_SOURCE_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gestitlesource</FILE>
-<TITLE>GESTitleSource</TITLE>
-GESTitleSource
-ges_title_source_set_text
-ges_title_source_set_font_desc
-ges_title_source_set_halignment
-ges_title_source_set_valignment
-ges_title_source_set_text_color
-ges_title_source_set_background_color
-ges_title_source_set_xpos
-ges_title_source_set_ypos
-ges_title_source_get_text
-ges_title_source_get_font_desc
-ges_title_source_get_halignment
-ges_title_source_get_valignment
-ges_title_source_get_text_color
-ges_title_source_get_background_color
-ges_title_source_get_xpos
-ges_title_source_get_ypos
-<SUBSECTION Standard>
-GESTitleSourceClass
-GESTitleSourcePrivate
-ges_title_source_get_type
-GES_TITLE_SOURCE
-GES_TITLE_SOURCE_CLASS
-GES_TITLE_SOURCE_GET_CLASS
-GES_TYPE_TITLE_CLIP
-GES_TYPE_TITLE_SOURCE
-GES_IS_TITLE_SOURCE
-GES_IS_TITLE_SOURCE_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gestextoverlay</FILE>
-<TITLE>GESTextOverlay</TITLE>
-GESTextOverlay
-ges_text_overlay_new
-ges_text_overlay_set_text
-ges_text_overlay_set_font_desc
-ges_text_overlay_set_halignment
-ges_text_overlay_set_valignment
-ges_text_overlay_set_color
-ges_text_overlay_set_xpos
-ges_text_overlay_set_ypos
-ges_text_overlay_get_text
-ges_text_overlay_get_font_desc
-ges_text_overlay_get_halignment
-ges_text_overlay_get_valignment
-ges_text_overlay_get_color
-ges_text_overlay_get_xpos
-ges_text_overlay_get_ypos
-<SUBSECTION Standard>
-GESTextOverlayClass
-GESTextOverlayPrivate
-ges_text_overlay_get_type
-GES_IS_TEXT_OVERLAY
-GES_IS_TEXT_OVERLAY_CLASS
-GES_TEXT_OVERLAY
-GES_TEXT_OVERLAY_CLASS
-GES_TEXT_OVERLAY_GET_CLASS
-GES_TYPE_TEXT_OVERLAY
-</SECTION>
-
-<SECTION>
-<FILE>gesformatter</FILE>
-<TITLE>GESFormatter</TITLE>
-GESFormatter
-GESFormatterClass
-
-GESFormatterLoadFromURIMethod
-GESFormatterSaveToURIMethod
-GESFormatterCanLoadURIMethod
-GESFormatterCanSaveURIMethod
-
-ges_formatter_class_register_metas
-
-ges_formatter_load_from_uri
-ges_formatter_save_to_uri
-ges_formatter_can_load_uri
-ges_formatter_can_save_uri
-ges_formatter_get_default
-
-<SUBSECTION Standard>
-GES_FORMATTER
-GES_FORMATTER_CLASS
-GES_FORMATTER_GET_CLASS
-GES_IS_FORMATTER
-GES_IS_FORMATTER_CLASS
-GES_TYPE_FORMATTER
-<SUBSECTION Private>
-ges_formatter_get_type
-GESFormatterPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gespitiviformatter</FILE>
-<TITLE>GESPitiviFormatter</TITLE>
-GESPitiviFormatter
-ges_pitivi_formatter_new
-<SUBSECTION Standard>
-GESPitiviFormatterClass
-GESPitiviFormatterPrivate
-GES_TYPE_PITIVI_FORMATTER
-GES_IS_PITIVI_FORMATTER
-GES_IS_PITIVI_FORMATTER_CLASS
-GES_PITIVI_FORMATTER
-GES_PITIVI_FORMATTER_CLASS
-GES_PITIVI_FORMATTER_GET_CLASS
-GES_TYPE_PITIVIFORMATTER
-ges_pitivi_formatter_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesbaseeffect</FILE>
-<TITLE>GESBaseEffect</TITLE>
-GESBaseEffect
-<SUBSECTION Standard>
-GESBaseEffectClass
-GESBaseEffectPrivate
-GES_IS_BASE_EFFECT
-GES_IS_BASE_EFFECT_CLASS
-GES_BASE_EFFECT
-GES_BASE_EFFECT_CLASS
-GES_BASE_EFFECT_GET_CLASS
-GES_TYPE_BASE_EFFECT
-ges_base_effect_get_type
-</SECTION>
-
-<SECTION>
-<FILE>geseffect</FILE>
-<TITLE>GESEffect</TITLE>
-GESEffect
-ges_effect_new
-<SUBSECTION Standard>
-GESEffectClass
-GESEffectPrivate
-GES_IS_EFFECT
-GES_IS_EFFECT_CLASS
-GES_EFFECT
-GES_EFFECT_CLASS
-GES_EFFECT_GET_CLASS
-GES_TYPE_EFFECT
-ges_effect_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesmetacontainer</FILE>
-<TITLE>GESMetaContainer</TITLE>
-GESMetaContainer
-GESMetaForeachFunc
-ges_meta_container_foreach
-ges_meta_container_get_meta
-ges_meta_container_get_boolean
-ges_meta_container_get_date
-ges_meta_container_get_date_time
-ges_meta_container_get_double
-ges_meta_container_get_float
-ges_meta_container_get_int
-ges_meta_container_get_int64
-ges_meta_container_get_string
-ges_meta_container_get_uint
-ges_meta_container_get_uint64
-ges_meta_container_set_boolean
-ges_meta_container_set_date
-ges_meta_container_set_date_time
-ges_meta_container_set_double
-ges_meta_container_set_float
-ges_meta_container_set_int
-ges_meta_container_set_int64
-ges_meta_container_set_string
-ges_meta_container_set_uint
-ges_meta_container_set_uint64
-ges_meta_container_set_meta
-ges_meta_container_register_meta_boolean
-ges_meta_container_register_meta_int
-ges_meta_container_register_meta_uint
-ges_meta_container_register_meta_int64
-ges_meta_container_register_meta_uint64
-ges_meta_container_register_meta_float
-ges_meta_container_register_meta_double
-ges_meta_container_register_meta_date
-ges_meta_container_register_meta_date_time
-ges_meta_container_register_meta_string
-ges_meta_container_register_meta
-ges_meta_container_metas_to_string
-ges_meta_container_add_metas_from_string
-ges_meta_container_get_type
-ges_meta_container_check_meta_registered
-
-GES_META_FORMATTER_NAME
-GES_META_FORMATTER_MIMETYPE
-GES_META_FORMATTER_EXTENSION
-GES_META_FORMATTER_VERSION
-GES_META_FORMATTER_RANK
-GES_META_DESCRIPTION
-
-GES_META_FORMAT_VERSION
-
-<SUBSECTION Standard>
-GESMetaContainerInterface
-GES_IS_META_CONTAINER
-GES_META_CONTAINER
-GES_META_CONTAINER_GET_INTERFACE
-GES_TYPE_META_CONTAINER
-ges_meta_container_get_ype
-</SECTION>
-
-<SECTION>
-<FILE>gesextractable</FILE>
-<TITLE>GESExtractableInterface</TITLE>
-GESExtractable
-GESExtractableInterface
-GESExtractableCheckId
-ges_extractable_get_asset
-ges_extractable_set_asset
-ges_extractable_get_id
-<SUBSECTION Standard>
-GES_IS_EXTRACTABLE
-GES_EXTRACTABLE
-GES_EXTRACTABLE_GET_INTERFACE
-GES_TYPE_EXTRACTABLE
-ges_extractable_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesasset</FILE>
-<TITLE>GESAsset</TITLE>
-GESAsset
-ges_asset_get_extractable_type
-ges_asset_get_id
-ges_asset_request
-ges_asset_request_async
-ges_asset_request_finish
-ges_asset_extract
-ges_asset_get_error
-ges_list_assets
-ges_asset_set_proxy
-ges_asset_list_proxies
-ges_asset_get_proxy_target
-ges_asset_get_proxy
-ges_asset_needs_reload
-<SUBSECTION Standard>
-GESAssetPrivate
-GES_ASSET
-GES_TYPE_ASSET
-GES_ASSET_CLASS
-GES_IS_ASSET
-GES_IS_ASSET_CLASS
-GES_ASSET_GET_CLASS
-ges_asset_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gesclipasset</FILE>
-<TITLE>GESClipAsset</TITLE>
-GESClipAsset
-ges_clip_asset_get_type
-ges_clip_asset_set_supported_formats
-ges_clip_asset_get_supported_formats
-<SUBSECTION Standard>
-GESClipAssetPrivate
-GES_CLIP_ASSET
-GES_TYPE_CLIP_ASSET
-GES_CLIP_ASSET_CLASS
-GES_IS_CLIP_ASSET
-GES_IS_CLIP_ASSET_CLASS
-GES_CLIP_ASSET_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gestrackelementasset</FILE>
-<TITLE>GESTrackElementAsset</TITLE>
-GESTrackElementAsset
-ges_track_element_asset_get_type
-ges_track_element_asset_get_track_type
-ges_track_element_asset_set_track_type
-ges_track_element_add_children_props
-<SUBSECTION Standard>
-GESTrackElementAssetPrivate
-GES_TRACK_ELEMENT_ASSET
-GES_TYPE_TRACK_ELEMENT_ASSET
-GES_TRACK_ELEMENT_ASSET_CLASS
-GES_IS_TRACK_ELEMENT_ASSET
-GES_IS_TRACK_ELEMENT_ASSET_CLASS
-GES_TRACK_ELEMENT_ASSET_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gesuriclipasset</FILE>
-<TITLE>GESUriClipAsset</TITLE>
-GESUriClipAsset
-ges_uri_clip_asset_get_type
-ges_uri_clip_asset_get_duration
-ges_uri_clip_asset_is_image
-ges_uri_clip_asset_get_info
-ges_uri_clip_asset_new
-ges_uri_clip_asset_request_sync
-ges_uri_clip_asset_get_stream_assets
-ges_uri_clip_asset_class_set_timeout
-<SUBSECTION Standard>
-GESUriClipAssetPrivate
-GES_URI_CLIP_ASSET
-GES_TYPE_URI_CLIP_ASSET
-GES_URI_CLIP_ASSET_CLASS
-GES_IS_URI_CLIP_ASSET
-GES_IS_URI_CLIP_ASSET_CLASS
-GES_URI_CLIP_ASSET_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gesgroup</FILE>
-<TITLE>GESGroup</TITLE>
-GESGroup
-ges_group_new
-<SUBSECTION Standard>
-GESGroupClass
-GESGroupPrivate
-GES_GROUP
-GES_IS_GROUP
-GES_TYPE_GROUP
-ges_group_get_type
-GES_GROUP_CLASS
-GES_IS_GROUP_CLASS
-GES_GROUP_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gesurisourceasset</FILE>
-<TITLE>GESUriSourceAsset</TITLE>
-GESUriSourceAsset
-ges_uri_source_asset_get_type
-ges_uri_source_asset_get_filesource_asset
-ges_uri_source_asset_get_stream_info
-ges_uri_source_asset_get_stream_uri
-<SUBSECTION Standard>
-GESUriSourceAssetPrivate
-GES_URI_SOURCE_ASSET
-GES_TYPE_URI_SOURCE_ASSET
-GES_URI_SOURCE_ASSET_CLASS
-GES_IS_URI_SOURCE_ASSET
-GES_IS_URI_SOURCE_ASSET_CLASS
-GES_URI_SOURCE_ASSET_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gesproject</FILE>
-<TITLE>GESProject</TITLE>
-GESProject
-ges_project_load
-ges_project_add_asset
-ges_project_remove_asset
-ges_project_list_assets
-ges_project_get_asset
-ges_project_save
-ges_project_create_asset
-ges_project_create_asset_sync
-ges_project_get_type
-ges_project_get_uri
-ges_project_new
-ges_project_add_encoding_profile
-ges_project_list_encoding_profiles
-ges_project_get_loading_assets
-<SUBSECTION Standard>
-GESProjectPrivate
-GES_PROJECT
-GES_PROJECT_CLASS
-GES_IS_PROJECT
-GES_IS_PROJECT_CLASS
-GES_PROJECT_GET_CLASS
-GES_TYPE_PROJECT
-</SECTION>
-
-<SECTION>
-<FILE>gesbasexmlformatter</FILE>
-<TITLE>GESBaseXmlFormatter</TITLE>
-GESBaseXmlFormatter
-ges_base_xml_formatter_get_type
-<SUBSECTION Standard>
-GESBaseXmlFormatterPrivate
-GES_BASE_XML_FORMATTER
-GES_BASE_XML_FORMATTER_CLASS
-GES_IS_BASE_XML_FORMATTER
-GES_IS_BASE_XML_FORMATTER_CLASS
-GES_BASE_XML_FORMATTER_GET_CLASS
-GES_TYPE_BASE_XML_FORMATTER
-</SECTION>
-
-<SECTION>
-<FILE>gesxmlformatter</FILE>
-<TITLE>GESXmlFormatter</TITLE>
-ges_xml_formatter_get_type
-<SUBSECTION Standard>
-GESXmlFormatterPrivate
-GES_XML_FORMATTER
-GES_TYPE_XML_FORMATTER
-GES_XML_FORMATTER_CLASS
-GES_XML_FORMATTER_GET_CLASS
-GES_IS_XML_FORMATTER
-GES_IS_XML_FORMATTER_CLASS
-</SECTION>
diff --git a/docs/libs/ges.types b/docs/libs/ges.types
deleted file mode 100644 (file)
index 0dd84aa..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <gst/gst.h>
-#include <ges/ges.h>
-
-ges_formatter_get_type
-%ges_text_halign_get_type
-%ges_text_valign_get_type
-ges_timeline_get_type
-ges_layer_get_type
-ges_clip_get_type
-ges_operation_clip_get_type
-ges_overlay_clip_get_type
-ges_pipeline_get_type
-ges_source_clip_get_type
-ges_test_clip_get_type
-ges_base_transition_clip_get_type
-ges_transition_clip_get_type
-ges_base_effect_clip_get_type
-ges_effect_clip_get_type
-ges_uri_clip_get_type
-ges_text_overlay_clip_get_type
-ges_title_clip_get_type
-ges_audio_test_source_get_type
-ges_audio_transition_get_type
-ges_video_uri_source_get_type
-ges_audio_uri_source_get_type
-ges_track_get_type
-ges_image_source_get_type
-ges_multi_file_source_get_type
-ges_track_element_get_type
-ges_base_effect_get_type
-ges_effect_get_type
-ges_operation_get_type
-ges_source_get_type
-ges_text_overlay_get_type
-ges_title_source_get_type
-ges_transition_get_type
-%ges_track_type_get_type
-ges_video_test_source_get_type
-ges_video_transition_get_type
-ges_project_get_type
-%ges_video_test_pattern_get_type
-%ges_video_standard_transition_type_get_type
-ges_meta_container_get_type
diff --git a/docs/libs/meson.build b/docs/libs/meson.build
deleted file mode 100644 (file)
index eb27c85..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-types = configure_file(input : 'ges.types',
-  output : 'ges.types',
-  copy: true)
-
-doc_deps_names = ['glib-2.0',
-                  'gstreamer-@0@'.format(apiversion),
-                  'gstreamer-plugins-base-@0@'.format(apiversion)]
-
-doc_deps = []
-foreach doc_dep : doc_deps_names
-    # TODO: Use get_pkgconfig_variable()
-    runcmd = run_command('pkg-config', '--variable=prefix', doc_dep)
-    if runcmd.returncode() == 0
-        tmp = '--extra-dir=' + runcmd.stdout().strip() + '/share/gtk-doc/html/'
-        tmp.strip()
-        doc_deps = doc_deps + [tmp]
-    endif
-endforeach
-
-gnome.gtkdoc('ges',
-  main_sgml : 'ges-docs.sgml',
-  src_dir : '@0@/../../ges'.format(meson.current_source_dir()),
-  scan_args : ['--deprecated-guards=GST_DISABLE_DEPRECATED',
-            '--ignore-decorators=GES_API',
-            '--ignore-headers=gesmarshal.h ges-internal.h ges-auto-transition.h ges-structured-interface.h ges-structure-parser.h ges-smart-video-mixer.h gstframepositioner.h'
-            ],
-  scanobjs_args : ['--type-init-func="gst_init(NULL,NULL)"'],
-  gobject_typesfile : types,
-  dependencies : [ges_dep],
-  fixxref_args: doc_deps + ['--html-dir=' + get_option('prefix') + '/share/gtk-doc/html/'],
-  content_files : ['architecture.xml', 'ges-sections.txt', version_entities],
-  html_assets : 'layer_track_overview.png',
-  install : true,
-  install_dir : 'gstreamer-editing-services',
-)
diff --git a/docs/low_level.md b/docs/low_level.md
new file mode 100644 (file)
index 0000000..fa1f8b5
--- /dev/null
@@ -0,0 +1,5 @@
+# Low level APIs
+
+Those APIs should usually not be used unless you know
+what you are doing, check other parts of the documentation
+before deciding you should use one of those.
index 49f7967..777aa51 100644 (file)
-docconf = configuration_data()
+build_hotdoc = false
 
-docconf.set('GST_API_VERSION', apiversion)
-docconf.set('VERSION', gst_version)
-docconf.set('PLUGINDIR', '@0@/lib/gstreamer-1.0'.format(get_option('prefix')))
+if meson.is_cross_build()
+    if get_option('doc').enabled()
+        error('Documentation enabled but building the doc while cross building is not supported yet.')
+    endif
 
-version_entities = configure_file(input : 'version.entities.in',
-  output : 'version.entities',
-  configuration : docconf)
+    message('Documentation not built as building it while cross building is not supported yet.')
+    subdir_done()
+endif
 
-subdir('libs')
+required_hotdoc_extensions = ['gi-extension', 'gst-extension']
+if gst_dep.type_name() == 'internal'
+    gst_proj = subproject('gstreamer')
+    plugins_cache_generator = gst_proj.get_variable('plugins_cache_generator')
+else
+    plugins_cache_generator = find_program(join_paths(gst_dep.get_pkgconfig_variable('libexecdir'), 'gstreamer-' + apiversion, 'gst-plugins-doc-cache-generator'))
+endif
+
+plugins_cache = join_paths(meson.current_source_dir(), 'gst_plugins_cache.json')
+
+if plugins_cache_generator.found()
+    plugins_doc_dep = custom_target('editing-services-doc-cache',
+        build_by_default: true,
+        command: [plugins_cache_generator, plugins_cache, '@OUTPUT@', '@INPUT@'],
+        input: plugins,
+        output: 'gst_plugins_cache.json',
+    )
+else
+    warning('GStreamer plugin inspector for documentation not found, can\'t update the cache')
+endif
+
+hotdoc_p = find_program('hotdoc', required: get_option('doc'))
+if not hotdoc_p.found()
+    message('Hotdoc not found, not building the documentation')
+    subdir_done()
+endif
+
+hotdoc = import('hotdoc')
+foreach extension: required_hotdoc_extensions
+    if not hotdoc.has_extensions(extension)
+        if get_option('doc').enabled()
+            error('Documentation enabled but gi-extension missing')
+        endif
+
+        message('@0@ extensions not found, not building documentation requiring it'.format(extension))
+    endif
+endforeach
+
+if not build_gir
+    if get_option('doc').enabled()
+        error('Documentation enabled but introspection not built.')
+    endif
+
+    message('Introspection not built, can\'t build the documentation')
+    subdir_done()
+endif
+
+build_hotdoc = true
+ges_excludes = []
+foreach f: ['gesmarshal.*',
+            'ges-internal.*',
+            'ges-auto-transition.*',
+            'ges-structured-interface.*',
+            'ges-structure-parser.*',
+            'ges-version.h',
+            'ges-smart-*',
+            'ges-command-line-formatter.*',
+            'ges-base-xml-formatter.h',
+            'gstframepositioner.*',
+            'lex.priv_ges_parse_yy.c',
+            'ges-parse-lex.[c]']
+    ges_excludes += [join_paths(meson.current_source_dir(), '..', '..', 'ges', f)]
+endforeach
+
+hotdoc = import('hotdoc')
+libs_doc = [hotdoc.generate_doc('gst-editing-services',
+    project_version: apiversion,
+    extra_assets: [join_paths(meson.current_source_dir(), 'images')],
+    gi_c_sources: ges_sources + ges_headers,
+    gi_c_source_roots: [join_paths(meson.current_source_dir(), '../ges/')],
+    gi_sources: [ges_gir[0].full_path()],
+    gi_c_source_filters: ges_excludes,
+    sitemap: 'sitemap.txt',
+    index: 'index.md',
+    gi_index: 'index.md',
+    gi_smart_index: true,
+    gi_order_generated_subpages: true,
+    dependencies: [ges_dep],
+    disable_incremental_build: true,
+)]
+
+plugins_doc = [hotdoc.generate_doc('nle',
+    project_version: apiversion,
+    extra_assets: [join_paths(meson.current_source_dir(), 'images')],
+    sitemap: 'nle-sitemap.txt',
+    index: 'nle-index.md',
+    dependencies: [nle],
+    disable_incremental_build: true,
+    gst_order_generated_subpages: true,
+    gst_index: 'nle-index.md',
+    gst_c_sources: ['../../plugins/nle/*.[ch]'],
+    gst_smart_index: true,
+    gst_cache_file: plugins_cache,
+    gst_plugin_name: 'nle',
+)]
\ No newline at end of file
diff --git a/docs/nle-index.md b/docs/nle-index.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/docs/nle-sitemap.txt b/docs/nle-sitemap.txt
new file mode 100644 (file)
index 0000000..d82d519
--- /dev/null
@@ -0,0 +1 @@
+gst-index
\ No newline at end of file
diff --git a/docs/nle.md b/docs/nle.md
new file mode 100644 (file)
index 0000000..97b8968
--- /dev/null
@@ -0,0 +1,7 @@
+---
+short-description: Non Linear Engine
+...
+
+# Non Linear Engine
+
+NLE is a set of elements to implement Non Linear multimedia editing.
diff --git a/docs/sitemap.txt b/docs/sitemap.txt
new file mode 100644 (file)
index 0000000..bf911c9
--- /dev/null
@@ -0,0 +1,58 @@
+gi-index
+       ges.h
+       ges-timeline.h
+       ges-layer.h
+       ges-clip.h
+               ges-uri-clip.h
+               ges-title-clip.h
+               ges-test-clip.h
+       ges-pipeline.h
+       ges-project.h
+       ges-effect.h
+       base-classes.md
+               ges-timeline-element.h
+               ges-container.h
+       ges-track.h
+               ges-audio-track.h
+               ges-video-track.h
+       ges-asset.h
+       ges-extractable.h
+       ges-gerror.h
+       ges-group.h
+       ges-meta-container.h
+       ges-text-overlay.h
+       ges-formatter.h
+       ges-track-element.h
+               ges-video-source.h
+               ges-audio-source.h
+       ges-enums.h
+       low_level.md
+               ges-audio-test-source.h
+               ges-audio-transition.h
+               ges-audio-uri-source.h
+               ges-base-effect-clip.h
+               ges-base-effect.h
+               ges-base-transition-clip.h
+               ges-clip-asset.h
+               # ges-effect-asset.h
+               ges-effect-clip.h
+               ges-image-source.h
+               ges-multi-file-source.h
+               ges-operation-clip.h
+               ges-operation.h
+               ges-overlay-clip.h
+               # ges-pitivi-formatter.h
+               ges-screenshot.h
+               ges-source-clip.h
+               ges-source.h
+               ges-text-overlay-clip.h
+               ges-title-source.h
+               ges-track-element-asset.h
+               ges-transition-clip.h
+               ges-transition.h
+               ges-types.h
+               ges-uri-asset.h
+               ges-video-test-source.h
+               ges-video-transition.h
+               ges-video-uri-source.h
+               # ges-xml-formatter.h
\ No newline at end of file
index 7688a03..8dace54 100644 (file)
@@ -1,4 +1,4 @@
-ges_sources = [
+ges_sources = files([
     'ges.c',
     'ges-enums.c',
     'ges-meta-container.c',
@@ -62,9 +62,9 @@ ges_sources = [
     'ges-structured-interface.c',
     'ges-structure-parser.c',
     'gstframepositioner.c'
-]
+])
 
-ges_headers = [
+ges_headers = files([
     'ges-types.h',
     'ges.h',
     'ges-prelude.h',
@@ -123,7 +123,7 @@ ges_headers = [
     'ges-effect-asset.h',
     'ges-utils.h',
     'ges-group.h'
-]
+])
 
 if libxml_dep.found()
   ges_sources += files(['ges-pitivi-formatter.c'])
@@ -177,7 +177,7 @@ if build_gir
       '-I' + meson.current_build_dir() + '/..',
       '--cflags-end']
     endif
-    ges_gen_sources += [gnome.generate_gir(libges,
+    ges_gir = gnome.generate_gir(libges,
         sources : ges_sources + ges_headers,
         namespace : 'GES',
         nsversion : apiversion,
@@ -188,7 +188,9 @@ if build_gir
         install : true,
         dependencies : libges_deps,
         extra_args : ges_gir_extra_args
-    )]
+    )
+
+    ges_gen_sources += [ges_gir]
 endif
 
 ges_dep = declare_dependency(link_with : libges,
index 71b0573..d928c9b 100644 (file)
@@ -1,6 +1,6 @@
 project('gst-editing-services', 'c',
   version : '1.17.0.1',
-  meson_version : '>= 0.47',
+  meson_version : '>= 0.48',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
 
@@ -180,6 +180,7 @@ subdir('tools')
 subdir('pkgconfig')
 subdir('tests')
 subdir('examples')
+subdir('docs')
 
 override_detector = '''
 import sys
@@ -225,14 +226,4 @@ if pygi_override_dir != ''
   subdir('bindings/python')
 endif
 
-if build_machine.system() == 'windows'
-  message('Disabling gtk-doc while building on Windows')
-else
-  if find_program('gtkdoc-scan', required : get_option('gtk_doc')).found()
-    subdir('docs')
-  else
-    message('Not building documentation as gtk-doc was not found')
-  endif
-endif
-
 run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
index cc9bde3..57417e0 100644 (file)
@@ -1,5 +1,3 @@
-option('gtk_doc', type : 'feature', value : 'auto', yield : true,
-       description : 'Build API documentation with gtk-doc')
 option('introspection', type : 'feature', value : 'auto', yield : true,
        description : 'Generate gobject-introspection bindings')
 option('tests', type : 'feature', value : 'auto', yield : true,
@@ -7,4 +5,6 @@ option('tests', type : 'feature', value : 'auto', yield : true,
 option('pygi-overrides-dir', type : 'string', value : '',
         description: 'Path to pygobject overrides directory')
 option('xptv', type : 'feature', value : 'auto',
-       description : 'Build the deprecated xptv formater')
\ No newline at end of file
+       description : 'Build the deprecated xptv formater')
+option('doc', type : 'feature', value : 'auto', yield: true,
+       description: 'Enable documentation.')
index 7fa5b4b..7190450 100644 (file)
@@ -1,2 +1,3 @@
+plugins = []
 subdir('nle')
 subdir('ges')
\ No newline at end of file
index 29b41a5..74f0938 100644 (file)
@@ -15,3 +15,4 @@ nle = library('gstnle', nle_sources,
   install_dir : plugins_install_dir,
 )
 pkgconfig.generate(nle, install_dir : plugins_pkgconfig_install_dir)
+plugins += [nle]