diff options
author | Thibault Saunier <thibault.saunier@osg.samsung.com> | 2017-03-08 18:02:47 -0300 |
---|---|---|
committer | Thibault Saunier <thibault.saunier@osg.samsung.com> | 2017-03-08 18:02:57 -0300 |
commit | 8857e004f78ea009e1c87a93da5cf3e25dbde07f (patch) | |
tree | d2c51ca35e6472f698b2b2b9bb80f56b29198f08 | |
parent | e570d1e08009992a0dd6a24bb4cda4427b2b460f (diff) |
doc: Build documentation with hotdoc
-rw-r--r-- | docs/hotdoc/images/layer_track_overview.png | bin | 0 -> 27255 bytes | |||
-rw-r--r-- | docs/hotdoc/index.md | 64 | ||||
-rw-r--r-- | docs/hotdoc/meson.build | 23 | ||||
-rw-r--r-- | docs/hotdoc/sitemap.txt | 1 | ||||
-rw-r--r-- | docs/meson.build | 21 |
5 files changed, 101 insertions, 8 deletions
diff --git a/docs/hotdoc/images/layer_track_overview.png b/docs/hotdoc/images/layer_track_overview.png Binary files differnew file mode 100644 index 00000000..8e285173 --- /dev/null +++ b/docs/hotdoc/images/layer_track_overview.png diff --git a/docs/hotdoc/index.md b/docs/hotdoc/index.md new file mode 100644 index 00000000..cbfb1744 --- /dev/null +++ b/docs/hotdoc/index.md @@ -0,0 +1,64 @@ +# 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. 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. diff --git a/docs/hotdoc/meson.build b/docs/hotdoc/meson.build new file mode 100644 index 00000000..20227690 --- /dev/null +++ b/docs/hotdoc/meson.build @@ -0,0 +1,23 @@ +ges_excludes = [] +foreach f: ['gesmarshal.h', 'ges-internal.h', 'ges-auto-transition.[ch]', + 'ges-structured-interface.[ch]', 'ges-structure-parser.[ch]', + 'ges-smart-video-mixer.[ch]', 'gstframepositioner.[ch]', + 'ges/lex.priv_ges_parse_yy.c'] + ges_excludes += [join_paths(meson.current_source_dir(), '..', '..', 'ges', f)] +endforeach + +hotdoc = import('hotdoc') +gst_editin_services_doc = hotdoc.generate_doc('gst-editing-services', + project_version: apiversion, + extra_assets: [join_paths(meson.current_source_dir(), 'images')], + c_sources: ['../../ges/ges.h', '../../ges/*.[hc]'], + gi_sources: [ges_gir[0].full_path()], + 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, +) diff --git a/docs/hotdoc/sitemap.txt b/docs/hotdoc/sitemap.txt new file mode 100644 index 00000000..4f91fcd8 --- /dev/null +++ b/docs/hotdoc/sitemap.txt @@ -0,0 +1 @@ +gi-index diff --git a/docs/meson.build b/docs/meson.build index c89a68c5..766ae5e0 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -1,11 +1,16 @@ -docconf = configuration_data() +if hotdoc_p.found() and build_gir + build_hotdoc = true + subdir('hotdoc') +else + docconf = configuration_data() -docconf.set('GST_API_VERSION', apiversion) -docconf.set('PACKAGE_VERSION', gst_version) -docconf.set('PLUGINDIR', '@0@/lib/gstreamer-1.0'.format(get_option('prefix'))) + docconf.set('GST_API_VERSION', apiversion) + docconf.set('PACKAGE_VERSION', gst_version) + docconf.set('PLUGINDIR', '@0@/lib/gstreamer-1.0'.format(get_option('prefix'))) -version_entities = configure_file(input : 'version.entities.in', - output : 'version.entities', - configuration : docconf) + version_entities = configure_file(input : 'version.entities.in', + output : 'version.entities', + configuration : docconf) -subdir('libs') + subdir('libs') +endif |