Heavily refactor the sitemap

This commit is contained in:
Mathieu Duponchelle 2019-05-27 00:32:55 +02:00
parent 2d46903eb7
commit 4e000e6701
85 changed files with 227 additions and 276 deletions

View file

@ -177,7 +177,7 @@ then be placed under control of a parent. The floating ref keeps the object
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
@ -202,7 +202,7 @@ The responsibilities for an object that sinks other objects are summarised as:
object.
- remove the object from the list.
also see [relations](design/relations.md)
also see [relations](additional/design/relations.md)
### Properties

View file

@ -31,7 +31,7 @@ code-wise.
## IMPLEMENTATION
- implement more QOS, [qos](design/qos.md).
- implement more QOS, [qos](additional/design/qos.md).
- implement BUFFERSIZE.

View file

@ -16,7 +16,7 @@ downstream element and contains memory and metadata information.
## Lifecycle
`GstMemory` extends from `GstMiniObject` and therefore uses its lifecycle
management (See [miniobject](design/miniobject.md)).
management (See [miniobject](additional/design/miniobject.md)).
## Writability

View file

@ -11,7 +11,7 @@ description of the element.
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.

View file

@ -29,7 +29,7 @@ pipeline to PAUSED and PLAYING again in order to let the pipeline select
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

View file

@ -30,18 +30,18 @@ Lets look at some example sources.
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

View file

@ -93,7 +93,7 @@ upstream elements.
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
@ -151,7 +151,7 @@ is free to refuse buffers if they were not preceded by a SEGMENT event.
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
@ -190,7 +190,7 @@ such as demuxers.
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
@ -247,7 +247,7 @@ The general flow of executing the seek with FLUSH is as follows:
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
@ -262,7 +262,7 @@ It contains a single GstClockTime with the required latency. The latency
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

View file

@ -12,7 +12,7 @@ to/from it. `gst_bin_add()` and `gst_bin_remove()` perform these
operations respectively.
The bin maintains a parent-child relationship with its elements (see
[relations](design/relations.md)).
[relations](additional/design/relations.md)).
## Retrieving elements
@ -35,7 +35,7 @@ operations include:
- 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
@ -50,7 +50,7 @@ handled specially.
`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.

View file

@ -52,8 +52,8 @@ list of pads
## 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).

View file

@ -3,13 +3,13 @@
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
@ -34,7 +34,7 @@ change:
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
@ -76,4 +76,4 @@ auto- matic clock selection algorithm described above.
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)).

View file

@ -41,7 +41,7 @@ buffer arrives at the sink, it will already be late and will be dropped.
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 file

@ -18,7 +18,7 @@
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

View file

@ -122,7 +122,7 @@ GstMemory * gst_memory_new_wrapped (GstMemoryFlags flags,
## 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
@ -131,7 +131,7 @@ call. This allows the implementation to monitor the access patterns or set up
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

View file

@ -9,8 +9,8 @@ without requiring an API change while allowing a wide range of different
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

View file

@ -70,7 +70,7 @@ negotiation.
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

View file

@ -121,7 +121,7 @@ to only complete the state change to `PAUSED` after receiving the first
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:
@ -141,7 +141,7 @@ output streams.
- *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
@ -225,7 +225,7 @@ element can understand the buffer contents. It does this by querying the
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
@ -397,7 +397,7 @@ Before going to `PLAYING`, the pipeline select a clock and samples the
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:

View file

@ -16,7 +16,7 @@ be signalled.
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

View file

@ -40,7 +40,7 @@ not supported.
**`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
@ -56,16 +56,16 @@ not supported.
**`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))

View file

@ -2,7 +2,7 @@
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

View file

@ -81,7 +81,7 @@ Videosink reports its current position as (simplified):
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

View file

@ -41,7 +41,7 @@ more buffers are to be processed after the EOS event.
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.
@ -60,7 +60,7 @@ more buffers are to be processed after the EOS event.
- 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.

View file

@ -36,7 +36,7 @@ Different sources exist for this counter:
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
@ -60,7 +60,7 @@ time spent in the PLAYING state and is calculated as follows:
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
@ -83,7 +83,7 @@ clock. This value is monotonically increasing at the rate of the clock.
## 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:
@ -105,7 +105,7 @@ 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:
@ -187,7 +187,7 @@ is noted with `B.sync_time`. Thus:
```
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.

View file

@ -86,7 +86,7 @@ is `GST_FORMAT_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

View file

@ -0,0 +1,3 @@
# Additional documentation
This section references miscellaneous documents, such as design considerations.

View file

@ -0,0 +1,30 @@
---
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/

View file

@ -1 +0,0 @@
# API reference

View file

@ -2,7 +2,7 @@
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

View file

@ -1,86 +0,0 @@
---
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 dont 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)

View file

@ -21,7 +21,7 @@ cost of greater complexity, writing new applications is not always easy.
<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>

View file

@ -2,4 +2,4 @@
short-description: All the GStreamer libraries from the various components
...
# GStreamer libraries
# API reference

View file

@ -179,7 +179,7 @@ parameters:
- 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.

View file

@ -2,4 +2,4 @@
short-description: All the GStreamer plugins from its various components
...
# GStreamer plugins
# Plugins

View file

@ -6,21 +6,25 @@ import sys
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)

View file

@ -1,4 +1,3 @@
doc_index.md
installing/index.md
installing/for-android-development.md
installing/for-ios-development.md
@ -6,50 +5,6 @@ doc_index.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
@ -90,14 +45,40 @@ doc_index.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
@ -133,76 +114,96 @@ doc_index.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