Skip to content
Snippets Groups Projects
Commit 2c9b1ae7 authored by Thibault Saunier's avatar Thibault Saunier
Browse files

Revert "doc: Build documentation with hotdoc"

This reverts commit 8857e004.

This was not meant to be pushed yet.
parent 909f0b74
No related branches found
No related tags found
No related merge requests found
docs/hotdoc/images/layer_track_overview.png

26.6 KiB

# 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.
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,
)
gi-index
if hotdoc_p.found() and build_gir docconf = configuration_data()
build_hotdoc = true
subdir('hotdoc')
else
docconf = configuration_data()
docconf.set('GST_API_VERSION', apiversion) docconf.set('GST_API_VERSION', apiversion)
docconf.set('PACKAGE_VERSION', gst_version) docconf.set('PACKAGE_VERSION', gst_version)
docconf.set('PLUGINDIR', '@0@/lib/gstreamer-1.0'.format(get_option('prefix'))) docconf.set('PLUGINDIR', '@0@/lib/gstreamer-1.0'.format(get_option('prefix')))
version_entities = configure_file(input : 'version.entities.in', version_entities = configure_file(input : 'version.entities.in',
output : 'version.entities', output : 'version.entities',
configuration : docconf) configuration : docconf)
subdir('libs') subdir('libs')
endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment