alive until it is parented, and once the object is parented you can forget
about it.
-also see [relations](design/relations.md)
+also see [relations](additional/design/relations.md)
### parent-child relations
object.
- remove the object from the list.
-also see [relations](design/relations.md)
+also see [relations](additional/design/relations.md)
### Properties
## IMPLEMENTATION
- - implement more QOS, [qos](design/qos.md).
+ - implement more QOS, [qos](additional/design/qos.md).
- implement BUFFERSIZE.
## Lifecycle
`GstMemory` extends from `GstMiniObject` and therefore uses its lifecycle
-management (See [miniobject](design/miniobject.md)).
+management (See [miniobject](additional/design/miniobject.md)).
## Writability
Caps are exposed on the element pads via `CAPS` and `ACCEPT_CAPS` queries.
This function describes the possible types that the pad can handle or
-produce ([negotiation](design/negotiation.md)).
+produce ([negotiation](additional/design/negotiation.md)).
Various methods exist to work with the media types such as subtracting
or intersecting.
a new clock and distribute a new base time.
The clock selection is performed as part of the state change from PAUSED
-to PLAYING and is described in [states](design/states.md).
+to PLAYING and is described in [states](additional/design/states.md).
## Clock features
limit to how fast you can read from this source. This limit is
usually much higher than the consumption rate. In some cases it
might be slower (an NFS share, for example) in which case you might
- need to use some buffering (see [buffering](design/buffering.md)).
+ need to use some buffering (see [buffering](additional/design/buffering.md)).
- HTTP network element: you can PAUSE without data loss. Depending on
the available network bandwidth, consumption rate might be higher
than production rate in which case buffering should be used (see
- [buffering](design/buffering.md)).
+ [buffering](additional/design/buffering.md)).
- audio source: pausing the audio capture will lead to lost data. this
source is therefore definitely live. In addition, an audio source
will produce data at a fixed rate (the samplerate). Also depending
on the buffersize, this source will introduce a latency (see
- [latency](design/latency.md)).
+ [latency](additional/design/latency.md)).
- udp network source: Pausing the receiving part will lead to lost
data. This source is therefore a live source. Also in a typical case
A `FLUSH_START` may instruct the pipeline to distribute a new `base_time`
to elements so that the `running_time` is reset to 0. (see
-[clocks](design/clocks.md) and [synchronisation](design/synchronisation.md)).
+[clocks](additional/design/clocks.md) and [synchronisation](additional/design/synchronisation.md)).
## EOS
Elements that sync to the clock should store the SEGMENT start and end
values and subtract the start value from the buffer timestamp before
-comparing it against the stream time (see [clocks](design/clocks.md)).
+comparing it against the stream time (see [clocks](additional/design/clocks.md)).
An element is allowed to send out buffers with the SEGMENT start time
already subtracted from the timestamp. If it does so, it needs to send a
A QOS, or quality of service message, is generated in an element to
report to the upstream elements about the current quality of real-time
performance of the stream. This is typically done by the sinks that
-measure the amount of framedrops they have. (see [qos](design/qos.md))
+measure the amount of framedrops they have. (see [qos](additional/design/qos.md))
## SEEK
now from the new position.
More information about the different seek types can be found in
-[seeking](design/seeking.md).
+[seeking](additional/design/seeking.md).
## NAVIGATION
value is calculated by the pipeline and distributed to all sink elements
before they are set to PLAYING. The sinks will add the configured
latency value to the timestamps of the buffer in order to delay their
-presentation. (See also [latency](design/latency.md)).
+presentation. (See also [latency](additional/design/latency.md)).
## DRAIN
operations respectively.
The bin maintains a parent-child relationship with its elements (see
-[relations](design/relations.md)).
+[relations](additional/design/relations.md)).
## Retrieving elements
- clock get/set
The state change distribution is the most complex and is explained in
-[states](design/states.md).
+[states](additional/design/states.md).
## GstBus
`ASYNC_START`/`ASYNC_STOP` messages received from the children are used to
trigger a recalculation of the current state of the bin, as described in
-[states](design/states.md).
+[states](additional/design/states.md).
The application can retrieve the external `GstBus` and integrate it in the
mainloop or it can just `pop()` messages off in its own thread.
## Ghost Pads
-More info in [ghostpad](design/gstghostpad.md).
+More info in [ghostpad](additional/design/gstghostpad.md).
## State
-An element has a state. More info in [state](design/states.md).
+An element has a state. More info in [state](additional/design/states.md).
A `GstPipeline` is usually a toplevel bin and provides all of its children
with a clock.
-A `GstPipeline` also provides a toplevel `GstBus` (see [gstbus](design/gstbus.md))
+A `GstPipeline` also provides a toplevel `GstBus` (see [gstbus](additional/design/gstbus.md))
The pipeline also calculates the `running_time` based on the selected
-clock (see also clocks.txt and [synchronisation](design/synchronisation.md)).
+clock (see also clocks.txt and [synchronisation](additional/design/synchronisation.md)).
The pipeline will calculate a global latency for the elements in the
-pipeline. (See also [latency](design/latency.md)).
+pipeline. (See also [latency](additional/design/latency.md)).
## State changes
The `running_time` represents the total elapsed time, measured in clock
units, that the pipeline spent in the PLAYING state (see
-[synchronisation](design/synchronisation.md)). The `running_time` is set to 0 after a
+[synchronisation](additional/design/synchronisation.md)). The `running_time` is set to 0 after a
flushing seek.
## Clock selection
A `GstPipeline` provides a `GstBus` to the application. The bus can be
retrieved with `gst_pipeline_get_bus()` and can then be used to
retrieve messages posted by the elements in the pipeline (see
-[gstbus](design/gstbus.md)).
+[gstbus](additional/design/gstbus.md)).
The latency is the time it takes to construct one buffer of data and it's
exposed with a `LATENCY` query.
-See [latency](design/latency.md)
+See [latency](additional/design/latency.md)
## Timestamps
view. use the frame id to get access to the different views.
- **interlace-mode**, `G_TYPE_STRING`: Default progressive. The interlace
- mode (also see the [interlaced video design docs](design/interlaced-video.md)).
+ mode (also see the [interlaced video design docs](additional/design/interlaced-video.md)).
The following values are possible:
- *"progressive"*: all frames are progressive
## Lifecycle
`GstMemory` extends from `GstMiniObject` and therefore uses its lifecycle
-management (See [miniobject](design/miniobject.md)).
+management (See [miniobject](additional/design/miniobject.md)).
## Data Access
the required memory mappings when needed.
The access of the memory object is controlled with the locking mechanism on
-`GstMiniObject` (See [miniobject](design/miniobject.md)).
+`GstMiniObject` (See [miniobject](additional/design/miniobject.md)).
Mapping a memory region requires the caller to specify the access method: READ
and/or WRITE. Mapping a memory region will first try to get a lock on the
types of messages.
Messages are posted by objects in the pipeline and are passed to the
-application using the `GstBus` (See also [gstbus](design/gstbus.md)
-and [gstpipeline](design/gstpipeline.md)).
+application using the `GstBus` (See also [gstbus](additional/design/gstbus.md)
+and [gstpipeline](additional/design/gstpipeline.md)).
## Message types
The basics of negotiation are as follows:
-- `GstCaps` (see [caps](design/caps.md)) are refcounted before they are pushed as
+- `GstCaps` (see [caps](additional/design/caps.md)) are refcounted before they are pushed as
an event to describe the contents of the following buffer.
- An element should reconfigure itself to the new format received as a
data.
Normally the state changes of elements are coordinated by the pipeline
-as explained in [states](design/states.md).
+as explained in [states](additional/design/states.md).
Different categories of elements exist:
- *mixer/muxer elements*: combine several input streams into one output
stream.
-Other categories of elements can be constructed (see [klass](design/draft-klass.md)).
+Other categories of elements can be constructed (see [klass](additional/design/draft-klass.md)).
## Bins
peer element for the supported formats and by selecting a suitable
common format. The selected format is then first sent to the peer
element with a CAPS event before pushing the buffer (see
-[negotiation](design/negotiation.md)).
+[negotiation](additional/design/negotiation.md)).
When an element pad receives a CAPS event, it has to check if it
understand the media type. The element must refuse following buffers if
current time of the clock. This is the `base_time`. It then distributes
this time to all elements. Elements can then synchronize against the
clock using the buffer `running_time`
-`base_time` (See also [synchronisation](design/synchronisation.md)).
+`base_time` (See also [synchronisation](additional/design/synchronisation.md)).
The following chain of state changes then takes place:
Several things can happen that require the preroll cond to be signalled.
These include state changes or flush events. The prerolling is
-implemented in sinks (see [Sink elements](design/element-sink.md)).
+implemented in sinks (see [Sink elements](additional/design/element-sink.md)).
## Committing the state
**`GST_QUERY_DURATION`**: get info on the total duration of the stream.
-**`GST_QUERY_LATENCY`**: get amount of latency introduced in the pipeline. (See [latency](design/latency.md))
+**`GST_QUERY_LATENCY`**: get amount of latency introduced in the pipeline. (See [latency](additional/design/latency.md))
**`GST_QUERY_RATE`**: get the current playback rate of the pipeline
**`GST_QUERY_FORMATS`**: return list of supported formats that can be used for `GST_QUERY_CONVERT`.
-**`GST_QUERY_BUFFERING`**: query available media for efficient seeking (See [buffering](design/buffering.md))
+**`GST_QUERY_BUFFERING`**: query available media for efficient seeking (See [buffering](additional/design/buffering.md))
**`GST_QUERY_CUSTOM`**: a custom query, the name of the query defines the properties of the query.
**`GST_QUERY_URI`**: query the uri of the source or sink element
-**`GST_QUERY_ALLOCATION`**: the buffer allocation properties (See [bufferpool](design/bufferpool.md))
+**`GST_QUERY_ALLOCATION`**: the buffer allocation properties (See [bufferpool](additional/design/bufferpool.md))
-**`GST_QUERY_SCHEDULING`**: the scheduling properties (See [scheduling](design/scheduling.md))
+**`GST_QUERY_SCHEDULING`**: the scheduling properties (See [scheduling](additional/design/scheduling.md))
-**`GST_QUERY_ACCEPT_CAPS`**: check if caps are supported (See [negotiation](design/negotiation.md))
+**`GST_QUERY_ACCEPT_CAPS`**: check if caps are supported (See [negotiation](additional/design/negotiation.md))
-**`GST_QUERY_CAPS`**: get the possible caps (See [negotiation](design/negotiation.md))
+**`GST_QUERY_CAPS`**: get the possible caps (See [negotiation](additional/design/negotiation.md))
These design docs detail some of the lower-level mechanism of certain parts
of GStreamer's RTP stack. For a higher-level overview see the [RTP and RTSP
-support](rtp.md) section.
+support](additional/rtp.md) section.
# RTP auxiliary stream design
current_position = clock_time - element->base_time + segment_time
```
-See [synchronisation](design/synchronisation.md) for a more detailed and
+See [synchronisation](additional/design/synchronisation.md) for a more detailed and
accurate explanation of synchronisation and position reporting.
Since after a flushing seek the `stream_time` is reset to 0, the new buffer
with a timestamp of `S.start`.
- marks playback rate (rate). This is the required playback rate.
- marks applied rate (`applied_rate`). This is the already applied playback
- rate. (See also [trickmodes](design/trickmodes.md))
+ rate. (See also [trickmodes](additional/design/trickmodes.md))
- marks `running_time` of buffers. This is the time used to synchronize
against the clock.
- a monotonically increasing value that can be used to synchronize
against the clock (See also
- [synchronisation](design/synchronisation.md)).
+ [synchronisation](additional/design/synchronisation.md)).
- `stream_time`:
* current position in stream between 0 and duration.
In GStreamer any element can provide a `GstClock` object that can be used
in the pipeline. The `GstPipeline` object will select a clock from all the
providers and will distribute it to all other elements (see
-[gstpipeline](design/gstpipeline.md)).
+[gstpipeline](additional/design/gstpipeline.md)).
While it is possible, it is not recommended to create a clock derived
from the contents of a stream (for example, create a clock from the PCR
is set to `PLAYING`.
- after a flushing seek, the `running_time` is set to 0 (see
- [seeking](design/seeking.md)). This is accomplished by redistributing a new
+ [seeking](additional/design/seeking.md)). This is accomplished by redistributing a new
base\_time to the elements that got flushed.
This algorithm captures the `running_time` when the pipeline is set from
## Timestamps
The `GstBuffer` timestamps and the preceding SEGMENT event (See
-[streams](design/streams.md)) define a transformation of the buffer timestamps
+[streams](additional/design/streams.md)) define a transformation of the buffer timestamps
to `running_time` as follows:
The following notation is used:
Valid buffers for synchronisation are those with B.timestamp between
`S.start` and `S.stop` (after applying the `S.offset`). All other buffers
outside this range should be dropped or clipped to these boundaries (see
-also [segments](design/segments.md)).
+also [segments](additional/design/segments.md)).
The following transformation to `running_time` exist:
```
One then waits for the clock to reach `B.sync_time` before rendering the
-buffer in the sink (See also [clocks](design/clocks.md)).
+buffer in the sink (See also [clocks](additional/design/clocks.md)).
For multiple streams this means that buffers with the same `running_time`
are to be displayed at the same time.
One element will actually perform the seek, this is usually the demuxer
or source element. For more information on how to perform the different
-seek types see [seeking](design/seeking.md).
+seek types see [seeking](additional/design/seeking.md).
For client side trickmode a `SEGMENT` event will be sent downstream with
the new rate and start/stop positions. All elements prepare themselves
--- /dev/null
+# Additional documentation
+
+This section references miscellaneous documents, such as design considerations.
--- /dev/null
+---
+short-description: Collection of GStreamer-related multimedia content
+...
+
+# Videos
+
+## GStreamer Conference Videos and Slides
+
+* [GStreamer Conference 2016: Videos and Slides] [(PDF slides)]
+* [GStreamer Conference 2015: Videos and Slides] [(PDF slides)][1]
+* [GStreamer Conference 2014: Videos and Slides] [(PDF slides)][2]
+* [GStreamer Conference 2013: Videos and Slides] [(PDF slides)][3]
+* [GStreamer Conference 2012: Videos and Slides] [(PDF slides)][4]
+* [GStreamer Conference 2011: Videos and Slides] [(PDF slides)][5]
+* [GStreamer Conference 2010: Videos and Slides] [(PDF slides)][6]
+
+[GStreamer Conference 2016: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2016
+[GStreamer Conference 2015: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2015
+[GStreamer Conference 2014: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2014
+[GStreamer Conference 2013: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2013
+[GStreamer Conference 2012: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2012
+[GStreamer Conference 2011: Videos and Slides]: http://gstconf.ubicast.tv/channels/#conferences-2011
+[GStreamer Conference 2010: Videos and Slides]: http://gstconf.ubicast.tv/channels/#conferences-2010
+[(PDF slides)]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2016/
+[1]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2015/
+[2]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2014/
+[3]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2013/
+[4]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2012/
+[5]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2011/
+[6]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2010/
+++ /dev/null
-# API reference
short-description: Contributing to GStreamer
...
-# How to Contribute to GStreamer
+# Contributing to GStreamer
This document provides instructions and guidelines for submitting issues,
feature requests and patches to GStreamer. The following applies to all
+++ /dev/null
----
-short-description: Tutorials and Manuals
-render-subpages: false
-...
-
-# Documentation and Tutorials
-
-Feel free to jump straight to the download section, start practicing
-with the tutorials, or read the F.A.Q. if you don’t know what this is
-all about.
-
-## General
-
- * [Application Development Manual (Read this first)](application-development/index.md)
- * [Frequently Asked Questions](frequently-asked-questions/index.md)
- * [Plugin Writer's Guide](plugin-development/index.md)
- * <a href="/data/doc/gstreamer/head/gstreamer/html/">Core Reference</a>
- * <a href="/data/doc/gstreamer/head/gstreamer-libs/html/">Core Libraries Reference</a>
- * [Core Design Documentation](design/index.md)
- * [GStreamer 0.10 to 1.0 porting guide](https://gitlab.freedesktop.org/gstreamer/gstreamer/raw/master/docs/random/porting-to-1.0.txt)
-
-<!-- FIXME: save useful bits from wiki
-| GStreamer Wiki (see esp. <a href="&site;/wiki/ReleasePlanning">ReleasePlanning</a> and <a href="&site;/wiki/SubmittingPatches">SubmittingPatches</a>)
-| <a href="&site;/wiki/">HTML</a> |
--->
-
-
-## GStreamer APIs References
-
-* [GStreamer Core library](gstreamer)
-* [GStreamer Libraries Reference](libs.md)
-* [GStreamer Plugins Reference](gst-index)
-
-> ![Warning](images/icons/emoticons/warning.svg) Only the API in libraries from
-> GStreamer core and gst-plugins-base are guaranteed to be API and ABI stable
-
-
-## Other modules
-
- * [GStreamer Editing Services Reference](gst-editing-services)
- * [GStreamer RTSP Server Reference](gst-rtsp-server)
- * [GStreamer VAAPI Reference](vaapi)
- * [GStreamer Validate](gst-devtools)
- * <a href="/data/doc/orc/">Orc - Optimized inner loop Runtime Compiler</a>
-
-## GStreamer Conference Videos and Slides
-
-* [GStreamer Conference 2016: Videos and Slides] [(PDF slides)]
-* [GStreamer Conference 2015: Videos and Slides] [(PDF slides)][1]
-* [GStreamer Conference 2014: Videos and Slides] [(PDF slides)][2]
-* [GStreamer Conference 2013: Videos and Slides] [(PDF slides)][3]
-* [GStreamer Conference 2012: Videos and Slides] [(PDF slides)][4]
-* [GStreamer Conference 2011: Videos and Slides] [(PDF slides)][5]
-* [GStreamer Conference 2010: Videos and Slides] [(PDF slides)][6]
-
- [GStreamer Conference 2016: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2016
- [GStreamer Conference 2015: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2015
- [GStreamer Conference 2014: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2014
- [GStreamer Conference 2013: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2013
- [GStreamer Conference 2012: Videos and Slides]: http://gstconf.ubicast.tv/channels/#gstreamer-conference-2012
- [GStreamer Conference 2011: Videos and Slides]: http://gstconf.ubicast.tv/channels/#conferences-2011
- [GStreamer Conference 2010: Videos and Slides]: http://gstconf.ubicast.tv/channels/#conferences-2010
- [(PDF slides)]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2016/
- [1]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2015/
- [2]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2014/
- [3]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2013/
- [4]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2012/
- [5]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2011/
- [6]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2010/
-
-
-## GStreamer licensing advisory
-
-The GStreamer community provides the following licensing advisory for
-developers planing on or already using GStreamer for their applications:
-
- * [GStreamer Licensing Advisory](licensing.md)
-
-
-## GStreamer plugin module split-up
-
-[An explanation of the various plugin modules and how they were split up](splitup.md)
-
-## RTP and RTSP support in GStreamer
-
- * [RTSP and RTP component overview](rtp.md)
<div class="row toned-row">
<div class="col-lg-2 col-lg-offset-2 col-xs-6 col-md-3">
- <a class="icon" id="apiref" href="api.html" data-hotdoc-relative-link=true>API Reference</a>
+ <a class="icon" id="apiref" href="libs.html" data-hotdoc-relative-link=true>API Reference</a>
</div>
<div class="col-lg-2 col-xs-6 col-md-3">
<a class="icon" id="hig" href="application-development/index.html" data-hotdoc-relative-link=true>
short-description: All the GStreamer libraries from the various components
...
-# GStreamer libraries
+# API reference
- A long, English, name for the element.
- - The type of the element, see the docs/design/draft-klass.txt
+ - The type of the element, see the docs/additional/design/draft-klass.txt
document in the GStreamer core source tree for details and examples.
- A brief description of the purpose of the element.
short-description: All the GStreamer plugins from its various components
...
-# GStreamer plugins
+# Plugins
if __name__ == "__main__":
in_, out, index_md = sys.argv[1], sys.argv[2], sys.argv[3]
with open(in_) as f:
+
index = f.read()
+ index = '\n'.join(l for l in index.splitlines())
+
if sys.argv[4]:
- index = '\n'.join('\t' + l for l in index.splitlines())
libs, plugins = sys.argv[4].split(os.pathsep), sorted(
sys.argv[5].split(os.pathsep), key=lambda x: os.path.basename(x))
- index += '\n api.md\n libs.md'
+ index += '\n\tlibs.md'
for lib in libs:
if not lib:
continue
- index += "\n " + lib + '.json'
- index += '\n gst-index'
+ index += "\n\t\t" + lib + '.json'
+ index += '\n\tgst-index'
for plugin in plugins:
if not plugin:
continue
- index += "\n " + plugin + '.json'
- index = '%s\n%s' % (index_md, index)
+ index += "\n\t\t" + plugin + '.json'
+
+ index = '%s\n%s' % (index_md, index)
+
with open(out, 'w') as fw:
fw.write(index)
-doc_index.md
installing/index.md
installing/for-android-development.md
installing/for-ios-development.md
installing/on-windows.md
installing/on-linux.md
installing/building-from-source-using-cerbero.md
- frequently-asked-questions/index.md
- frequently-asked-questions/general.md
- frequently-asked-questions/dependencies.md
- frequently-asked-questions/getting.md
- frequently-asked-questions/using.md
- frequently-asked-questions/troubleshooting.md
- frequently-asked-questions/git.md
- frequently-asked-questions/developing.md
- frequently-asked-questions/legal.md
- contribute/index.md
- application-development/index.md
- application-development/introduction/index.md
- application-development/introduction/gstreamer.md
- application-development/introduction/motivation.md
- application-development/introduction/basics.md
- application-development/basics/index.md
- application-development/basics/init.md
- application-development/basics/elements.md
- application-development/basics/bins.md
- application-development/basics/bus.md
- application-development/basics/pads.md
- application-development/basics/data.md
- application-development/basics/helloworld.md
- application-development/advanced/index.md
- application-development/advanced/queryevents.md
- application-development/advanced/metadata.md
- application-development/advanced/interfaces.md
- application-development/advanced/clocks.md
- application-development/advanced/buffering.md
- application-development/advanced/dparams.md
- application-development/advanced/threads.md
- application-development/advanced/autoplugging.md
- application-development/advanced/pipeline-manipulation.md
- application-development/highlevel/index.md
- application-development/highlevel/playback-components.md
- application-development/appendix/index.md
- application-development/appendix/programs.md
- application-development/appendix/compiling.md
- application-development/appendix/checklist-element.md
- application-development/appendix/porting.md
- application-development/appendix/porting-1.0.md
- application-development/appendix/integration.md
- application-development/appendix/licensing.md
- application-development/appendix/quotes.md
tutorials/index.md
tutorials/basic/index.md
tutorials/basic/hello-world.md
tutorials/ios/a-basic-media-player.md
tutorials/ios/a-complete-media-player.md
tutorials/table-of-concepts.md
- deploying/index.md
- deploying/mac-osx.md
- deploying/windows.md
- deploying/multiplatform-using-cerbero.md
- tools/index.md
- tools/gst-inspect.md
- tools/gst-launch.md
- tools/ges-launch.md
+ application-development/index.md
+ application-development/introduction/index.md
+ application-development/introduction/gstreamer.md
+ application-development/introduction/motivation.md
+ application-development/introduction/basics.md
+ application-development/basics/index.md
+ application-development/basics/init.md
+ application-development/basics/elements.md
+ application-development/basics/bins.md
+ application-development/basics/bus.md
+ application-development/basics/pads.md
+ application-development/basics/data.md
+ application-development/basics/helloworld.md
+ application-development/advanced/index.md
+ application-development/advanced/queryevents.md
+ application-development/advanced/metadata.md
+ application-development/advanced/interfaces.md
+ application-development/advanced/clocks.md
+ application-development/advanced/buffering.md
+ application-development/advanced/dparams.md
+ application-development/advanced/threads.md
+ application-development/advanced/autoplugging.md
+ application-development/advanced/pipeline-manipulation.md
+ application-development/highlevel/index.md
+ application-development/highlevel/playback-components.md
+ application-development/appendix/index.md
+ application-development/appendix/programs.md
+ application-development/appendix/compiling.md
+ application-development/appendix/checklist-element.md
+ application-development/appendix/porting.md
+ application-development/appendix/porting-1.0.md
+ application-development/appendix/integration.md
+ application-development/appendix/licensing.md
+ application-development/appendix/quotes.md
plugin-development/index.md
plugin-development/introduction/index.md
plugin-development/introduction/preface.md
plugin-development/appendix/checklist-element.md
plugin-development/appendix/porting.md
plugin-development/appendix/licensing-advisory.md
- splitup.md
- licensing.md
- rtp.md
- design/index.md
- design/MT-refcounting.md
- design/TODO.md
- design/activation.md
- design/audiosinks.md
- design/buffer.md
- design/buffering.md
- design/bufferpool.md
- design/caps.md
- design/clocks.md
- design/context.md
- design/controller.md
- design/conventions.md
- design/decodebin.md
- design/dynamic.md
- design/element-sink.md
- design/element-source.md
- design/element-transform.md
- design/encoding.md
- design/events.md
- design/framestep.md
- design/gstbin.md
- design/gstbus.md
- design/gstelement.md
- design/gstghostpad.md
- design/gstobject.md
- design/gstpipeline.md
- design/draft-klass.md
- design/interlaced-video.md
- design/keyframe-force.md
- design/latency.md
- design/live-source.md
- design/mediatype-audio-raw.md
- design/mediatype-text-raw.md
- design/mediatype-video-raw.md
- design/memory.md
- design/messages.md
- design/meta.md
- design/draft-metadata.md
- design/miniobject.md
- design/missing-plugins.md
- design/negotiation.md
- design/orc-integration.md
- design/overview.md
- design/playbin.md
- design/preroll.md
- design/probes.md
- design/progress.md
- design/push-pull.md
- design/qos.md
- design/query.md
- design/relations.md
- design/rtp.md
- design/scheduling.md
- design/seeking.md
- design/segments.md
- design/seqnums.md
- design/sparsestreams.md
- design/standards.md
- design/states.md
- design/stereo-multiview-video.md
- design/stream-selection.md
- design/stream-status.md
- design/streams.md
- design/subtitle-overlays.md
- design/synchronisation.md
- design/draft-tagreading.md
- design/toc.md
- design/tracing.md
- design/trickmodes.md
+ frequently-asked-questions/index.md
+ frequently-asked-questions/general.md
+ frequently-asked-questions/dependencies.md
+ frequently-asked-questions/getting.md
+ frequently-asked-questions/using.md
+ frequently-asked-questions/troubleshooting.md
+ frequently-asked-questions/git.md
+ frequently-asked-questions/developing.md
+ frequently-asked-questions/legal.md
+ frequently-asked-questions/licensing.md
+ deploying/index.md
+ deploying/mac-osx.md
+ deploying/windows.md
+ deploying/multiplatform-using-cerbero.md
+ contribute/index.md
+ additional/index.md
+ additional/splitup.md
+ additional/design/index.md
+ additional/design/MT-refcounting.md
+ additional/design/TODO.md
+ additional/design/activation.md
+ additional/design/audiosinks.md
+ additional/design/buffer.md
+ additional/design/buffering.md
+ additional/design/bufferpool.md
+ additional/design/caps.md
+ additional/design/clocks.md
+ additional/design/context.md
+ additional/design/controller.md
+ additional/design/conventions.md
+ additional/design/decodebin.md
+ additional/design/dynamic.md
+ additional/design/element-sink.md
+ additional/design/element-source.md
+ additional/design/element-transform.md
+ additional/design/encoding.md
+ additional/design/events.md
+ additional/design/framestep.md
+ additional/design/gstbin.md
+ additional/design/gstbus.md
+ additional/design/gstelement.md
+ additional/design/gstghostpad.md
+ additional/design/gstobject.md
+ additional/design/gstpipeline.md
+ additional/design/draft-klass.md
+ additional/design/interlaced-video.md
+ additional/design/keyframe-force.md
+ additional/design/latency.md
+ additional/design/live-source.md
+ additional/design/mediatype-audio-raw.md
+ additional/design/mediatype-text-raw.md
+ additional/design/mediatype-video-raw.md
+ additional/design/memory.md
+ additional/design/messages.md
+ additional/design/meta.md
+ additional/design/draft-metadata.md
+ additional/design/miniobject.md
+ additional/design/missing-plugins.md
+ additional/design/negotiation.md
+ additional/design/orc-integration.md
+ additional/design/overview.md
+ additional/design/playbin.md
+ additional/design/preroll.md
+ additional/design/probes.md
+ additional/design/progress.md
+ additional/design/push-pull.md
+ additional/design/qos.md
+ additional/design/query.md
+ additional/design/relations.md
+ additional/design/rtp.md
+ additional/design/scheduling.md
+ additional/design/seeking.md
+ additional/design/segments.md
+ additional/design/seqnums.md
+ additional/design/sparsestreams.md
+ additional/design/standards.md
+ additional/design/states.md
+ additional/design/stereo-multiview-video.md
+ additional/design/stream-selection.md
+ additional/design/stream-status.md
+ additional/design/streams.md
+ additional/design/subtitle-overlays.md
+ additional/design/synchronisation.md
+ additional/design/draft-tagreading.md
+ additional/design/toc.md
+ additional/design/tracing.md
+ additional/design/trickmodes.md
+ additional/rtp.md
+ additional/videos.md
+ tools/index.md
+ tools/gst-inspect.md
+ tools/gst-launch.md
+ tools/ges-launch.md