mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 09:10:36 +00:00
docs: fix some typos and add some missing links in the app dev manual
Fixes #624164.
This commit is contained in:
parent
6df8250d01
commit
a646c9b2ca
11 changed files with 56 additions and 43 deletions
|
@ -29,7 +29,7 @@
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<sect1 id="section-mime">
|
<sect1 id="section-mime">
|
||||||
<title>MIME-types as a way to identity streams</title>
|
<title>MIME-types as a way to identify streams</title>
|
||||||
<para>
|
<para>
|
||||||
We have previously introduced the concept of capabilities as a way
|
We have previously introduced the concept of capabilities as a way
|
||||||
for elements (or, rather, pads) to agree on a media type when
|
for elements (or, rather, pads) to agree on a media type when
|
||||||
|
@ -513,7 +513,7 @@ cb_typefound (GstElement *typefind,
|
||||||
<para>
|
<para>
|
||||||
By doing all this, we will be able to make a simple autoplugger that
|
By doing all this, we will be able to make a simple autoplugger that
|
||||||
can automatically setup a pipeline for any media type. In the example
|
can automatically setup a pipeline for any media type. In the example
|
||||||
below, we will do this for audio only. However, we can also do this
|
above, we did this for audio only. However, we can also do this
|
||||||
for video to create a player that plays both audio and video.
|
for video to create a player that plays both audio and video.
|
||||||
</para>
|
</para>
|
||||||
<!-- example-begin dynamic.c d --><!--
|
<!-- example-begin dynamic.c d --><!--
|
||||||
|
@ -615,7 +615,8 @@ main (gint argc,
|
||||||
shortest-path-finding to make sure the most optimal pipeline is chosen,
|
shortest-path-finding to make sure the most optimal pipeline is chosen,
|
||||||
and so on. Basically, the features that you implement in an autoplugger
|
and so on. Basically, the features that you implement in an autoplugger
|
||||||
depend on what you want to use it for. For full-blown implementations,
|
depend on what you want to use it for. For full-blown implementations,
|
||||||
see the <quote>playbin</quote> and <quote>decodebin</quote> elements.
|
see the <quote>playbin</quote> and <quote>decodebin</quote> elements in
|
||||||
|
<xref linkend="chapter-components"/>.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
need to start at 0. The pipeline, which contains the global clock that
|
need to start at 0. The pipeline, which contains the global clock that
|
||||||
all elements in the pipeline will use, in addition has a <quote>base
|
all elements in the pipeline will use, in addition has a <quote>base
|
||||||
time</quote>, which is the clock time at the the point where media time
|
time</quote>, which is the clock time at the the point where media time
|
||||||
is starting from zero. This timestamp is subctracted from the clock
|
is starting from zero. This timestamp is subtracted from the clock
|
||||||
time, and that value is returned by <function>_get_time ()</function>.
|
time, and that value is returned by <function>_get_time ()</function>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
|
|
@ -193,11 +193,13 @@ main (gint argc,
|
||||||
in your application.
|
in your application.
|
||||||
</para>
|
</para>
|
||||||
<note><para>
|
<note><para>
|
||||||
New API is being developed at the moment to make data insertion and
|
<ulink type="http"
|
||||||
extraction less painful for applications. It can be found as GstAppSrc
|
url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gstreamer-app.html">New
|
||||||
and GstAppSink in the gst-plugins-bad module. At the time of writing
|
API</ulink> was developed to make data insertion and extraction easy
|
||||||
(October 2007), this API is not quite stable and ready yet, even though
|
for applications. It can be found as GstAppSrc and GstAppSink in the
|
||||||
it may work fine for your purposes.
|
<ulink type="http"
|
||||||
|
url="http://gstreamer.freedesktop.org/modules/gst-plugins-base.html">
|
||||||
|
gst-plugins-base</ulink> module.
|
||||||
</para></note>
|
</para></note>
|
||||||
<para>
|
<para>
|
||||||
After all those disclaimers, let's start. There's three possible
|
After all those disclaimers, let's start. There's three possible
|
||||||
|
@ -210,7 +212,7 @@ main (gint argc,
|
||||||
pipeline, and how to set negotiation.
|
pipeline, and how to set negotiation.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Those who're paying close attention, will notice that the purpose
|
Those who're paying close attention will notice that the purpose
|
||||||
of identity is almost identical to that of probes. Indeed, this is
|
of identity is almost identical to that of probes. Indeed, this is
|
||||||
true. Probes allow for the same purpose, and a bunch more, and
|
true. Probes allow for the same purpose, and a bunch more, and
|
||||||
with less overhead plus dynamic removing/adding of handlers, but
|
with less overhead plus dynamic removing/adding of handlers, but
|
||||||
|
@ -254,7 +256,7 @@ main (gint argc,
|
||||||
specifying a <classname>GstCaps</classname> as
|
specifying a <classname>GstCaps</classname> as
|
||||||
<quote>caps</quote> property on this element. It will then
|
<quote>caps</quote> property on this element. It will then
|
||||||
only allow types matching that specified capability set for
|
only allow types matching that specified capability set for
|
||||||
negotiation.
|
negotiation. See also <xref linkend="section-caps-filter"/>.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
<chapter id="chapter-dparams">
|
<chapter id="chapter-dparams">
|
||||||
<title>Dynamic Controllable Parameters</title>
|
<title>Dynamic Controllable Parameters</title>
|
||||||
|
<para>
|
||||||
<sect1 id="section-dparams-getting-started">
|
|
||||||
<title>Getting Started</title>
|
|
||||||
<para>
|
|
||||||
The controller subsystem offers a lightweight way to adjust gobject
|
The controller subsystem offers a lightweight way to adjust gobject
|
||||||
properties over stream-time.
|
properties over stream-time.
|
||||||
It works by using time-stamped value pairs that are queued for
|
It works by using time-stamped value pairs that are queued for
|
||||||
element-properties.
|
element-properties.
|
||||||
At run-time the elements continously pull values changes for the
|
At run-time the elements continously pull value changes for the
|
||||||
current stream-time.
|
current stream-time.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<sect1 id="section-dparams-getting-started">
|
||||||
|
<title>Getting Started</title>
|
||||||
<para>
|
<para>
|
||||||
This subsystem is contained within the
|
This subsystem is contained within the
|
||||||
<filename>gstcontroller</filename> library.
|
<filename>gstcontroller</filename> library.
|
||||||
|
|
|
@ -7,7 +7,9 @@
|
||||||
interaction between applications and elements. This method suffices for
|
interaction between applications and elements. This method suffices for
|
||||||
the simple'n'straight settings, but fails for anything more complicated
|
the simple'n'straight settings, but fails for anything more complicated
|
||||||
than a getter and setter. For the more complicated use cases, &GStreamer;
|
than a getter and setter. For the more complicated use cases, &GStreamer;
|
||||||
uses interfaces based on the Glib <classname>GInterface</classname> type.
|
uses interfaces based on the GObject <ulink type="http"
|
||||||
|
url="http://library.gnome.org/devel/gobject/stable/gtype-non-instantiable-classed.html"><classname>GTypeInterface</classname></ulink>
|
||||||
|
type.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -70,11 +72,13 @@
|
||||||
You should not use this interface for volume control in a playback
|
You should not use this interface for volume control in a playback
|
||||||
application. Either use a <classname>volume</classname> element or use
|
application. Either use a <classname>volume</classname> element or use
|
||||||
<classname>playbin</classname>'s <quote>volume</quote> property, or use
|
<classname>playbin</classname>'s <quote>volume</quote> property, or use
|
||||||
the audiosink's <quote>volume</quote> property (if it has one).
|
the <classname>audiosink</classname>'s <quote>volume</quote> property (if it has one).
|
||||||
</para>
|
</para>
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
In order for the <classname>GstMixer</classname> interface to be
|
In order for the <ulink type="http"
|
||||||
|
url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html"><classname>GstMixer</classname></ulink>
|
||||||
|
interface to be
|
||||||
usable, the element implementing it needs to be in the right state,
|
usable, the element implementing it needs to be in the right state,
|
||||||
so that the underlying mixer device is open. This usually means the
|
so that the underlying mixer device is open. This usually means the
|
||||||
element needs to be at least in <classname>GST_STATE_READY</classname>
|
element needs to be at least in <classname>GST_STATE_READY</classname>
|
||||||
|
@ -94,7 +98,7 @@
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Using this interface, it is possible to select one track from a list
|
Using this interface, it is possible to select one track from a list
|
||||||
of tracks supported by that tuner-element. The tuner will than select
|
of tracks supported by that tuner-element. The tuner will then select
|
||||||
that track for media-processing internally. This can, for example, be
|
that track for media-processing internally. This can, for example, be
|
||||||
used to switch inputs on a TV-card (e.g. from Composite to S-video).
|
used to switch inputs on a TV-card (e.g. from Composite to S-video).
|
||||||
</para>
|
</para>
|
||||||
|
@ -104,7 +108,9 @@
|
||||||
</para>
|
</para>
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
In order for the <classname>GstTuner</classname> interface to be
|
In order for the <ulink type="http"
|
||||||
|
url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html"><classname>GstTuner</classname></ulink>
|
||||||
|
interface to be
|
||||||
usable, the element implementing it needs to be in the right state,
|
usable, the element implementing it needs to be in the right state,
|
||||||
so that the underlying device is open. This usually means the
|
so that the underlying device is open. This usually means the
|
||||||
element needs to be at least in <classname>GST_STATE_READY</classname>
|
element needs to be at least in <classname>GST_STATE_READY</classname>
|
||||||
|
@ -120,7 +126,7 @@
|
||||||
<para>
|
<para>
|
||||||
The colorbalance interface is a way to control video-related properties
|
The colorbalance interface is a way to control video-related properties
|
||||||
on an element, such as brightness, contrast and so on. It's sole
|
on an element, such as brightness, contrast and so on. It's sole
|
||||||
reason for existance is that, as far as its authors know, there's no
|
reason for existence is that, as far as its authors know, there's no
|
||||||
way to dynamically register properties using
|
way to dynamically register properties using
|
||||||
<classname>GObject</classname>.
|
<classname>GObject</classname>.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<title>Metadata reading</title>
|
<title>Metadata reading</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Stream information can most easily be read by reading them from a
|
Stream information can most easily be read by reading it from a
|
||||||
<classname>GstPad</classname>. This has already been discussed before
|
<classname>GstPad</classname>. This has already been discussed before
|
||||||
in <xref linkend="section-caps-metadata"/>. Therefore, we will skip
|
in <xref linkend="section-caps-metadata"/>. Therefore, we will skip
|
||||||
it here. Note that this requires access to all pads of which you
|
it here. Note that this requires access to all pads of which you
|
||||||
|
@ -155,7 +155,8 @@ main (int argc, char ** argv)
|
||||||
<title>Tag writing</title>
|
<title>Tag writing</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Tag writing is done using the <classname>GstTagSetter</classname>
|
Tag writing is done using the <ulink type="http"
|
||||||
|
url="&URLAPI;GstTagSetter.html"><classname>GstTagSetter</classname></ulink>
|
||||||
interface. All that's required is a tag-set-supporting element in
|
interface. All that's required is a tag-set-supporting element in
|
||||||
your pipeline. In order to see if any of the elements in your
|
your pipeline. In order to see if any of the elements in your
|
||||||
pipeline supports tag writing, you can use the function
|
pipeline supports tag writing, you can use the function
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
(if configured to do so) drop data.
|
(if configured to do so) drop data.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
To use a queues (and therefore force the use of two distinct threads
|
To use a queue (and therefore force the use of two distinct threads
|
||||||
in the pipeline), one can simply create a <quote>queue</quote> element
|
in the pipeline), one can simply create a <quote>queue</quote> element
|
||||||
and put this in as part of the pipeline. &GStreamer; will take care of
|
and put this in as part of the pipeline. &GStreamer; will take care of
|
||||||
all threading details internally.
|
all threading details internally.
|
||||||
|
|
|
@ -270,16 +270,17 @@ main (int argc,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
]]><!-- example-end elementget.c --></programlisting>
|
]]><!-- example-end elementget.c --></programlisting>
|
||||||
<para>
|
<para>
|
||||||
Most plugins provide additional properties to provide more information
|
Most plugins provide additional properties to provide more information
|
||||||
about their configuration or to configure the element.
|
about their configuration or to configure the element.
|
||||||
<command>gst-inspect</command> is a useful tool to query the properties
|
<command>gst-inspect</command> is a useful tool to query the properties
|
||||||
of a particular element, it will also use property introspection to give
|
of a particular element, it will also use property introspection to give
|
||||||
a short explanation about the function of the property and about the
|
a short explanation about the function of the property and about the
|
||||||
parameter types and ranges it supports. See the appendix for details
|
parameter types and ranges it supports. See
|
||||||
about <command>gst-inspect</command>.
|
<xref linkend="section-applications-inspect"/>
|
||||||
</para>
|
in the appendix for details about <command>gst-inspect</command>.
|
||||||
<para>
|
</para>
|
||||||
|
<para>
|
||||||
For more information about <classname>GObject</classname>
|
For more information about <classname>GObject</classname>
|
||||||
properties we recommend you read the <ulink
|
properties we recommend you read the <ulink
|
||||||
url="http://developer.gnome.org/doc/API/2.0/gobject/index.html"
|
url="http://developer.gnome.org/doc/API/2.0/gobject/index.html"
|
||||||
|
@ -288,7 +289,7 @@ main (int argc,
|
||||||
The Glib Object system</ulink>.
|
The Glib Object system</ulink>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
A <ulink type="http" url="&URLAPI;gstreamer/html/GstElementFactory.html">
|
A <ulink type="http" url="&URLAPI;GstElementFactory.html">
|
||||||
<classname>GstElement</classname></ulink> also provides various
|
<classname>GstElement</classname></ulink> also provides various
|
||||||
<classname>GObject</classname> signals that can be used as a flexible
|
<classname>GObject</classname> signals that can be used as a flexible
|
||||||
callback mechanism. Here, too, you can use <command>gst-inspect</command>
|
callback mechanism. Here, too, you can use <command>gst-inspect</command>
|
||||||
|
|
|
@ -216,7 +216,7 @@ link_to_multiplexer (GstPad *tolink_pad,
|
||||||
<sect2 id="section-caps-structure">
|
<sect2 id="section-caps-structure">
|
||||||
<title>Dissecting capabilities</title>
|
<title>Dissecting capabilities</title>
|
||||||
<para>
|
<para>
|
||||||
A pads capabilities are described in a <classname>GstCaps</classname>
|
A pad's capabilities are described in a <classname>GstCaps</classname>
|
||||||
object. Internally, a <ulink type="http"
|
object. Internally, a <ulink type="http"
|
||||||
url="../../gstreamer/html/gstreamer-GstCaps.html"><classname>GstCaps</classname></ulink>
|
url="../../gstreamer/html/gstreamer-GstCaps.html"><classname>GstCaps</classname></ulink>
|
||||||
will contain one or more <ulink type="http"
|
will contain one or more <ulink type="http"
|
||||||
|
@ -236,8 +236,8 @@ link_to_multiplexer (GstPad *tolink_pad,
|
||||||
accept vorbis-encoded audio data, with the mime-type
|
accept vorbis-encoded audio data, with the mime-type
|
||||||
<quote>audio/x-vorbis</quote>. The source pad will be used
|
<quote>audio/x-vorbis</quote>. The source pad will be used
|
||||||
to send raw (decoded) audio samples to the next element, with
|
to send raw (decoded) audio samples to the next element, with
|
||||||
a raw audio mime-type (in this case,
|
a raw audio mime-type (in this case,
|
||||||
<quote>audio/x-raw-int</quote>) The source pad will also
|
<quote>audio/x-raw-float</quote>). The source pad will also
|
||||||
contain properties for the audio samplerate and the amount of
|
contain properties for the audio samplerate and the amount of
|
||||||
channels, plus some more that you don't need to worry about
|
channels, plus some more that you don't need to worry about
|
||||||
for now.
|
for now.
|
||||||
|
@ -539,7 +539,7 @@ link_elements_with_filter (GstElement *element1, GstElement *element2)
|
||||||
</programlisting>
|
</programlisting>
|
||||||
This will force the data flow between those two elements to
|
This will force the data flow between those two elements to
|
||||||
a certain video format, width, height and framerate (or the linking
|
a certain video format, width, height and framerate (or the linking
|
||||||
will fail if that cannot be achieved in the context of the elments
|
will fail if that cannot be achieved in the context of the elements
|
||||||
involved). Keep in mind that when you use <function>
|
involved). Keep in mind that when you use <function>
|
||||||
gst_element_link_filtered ()</function> it will automatically create
|
gst_element_link_filtered ()</function> it will automatically create
|
||||||
a <classname>capsfilter</classname> element for you and insert it into
|
a <classname>capsfilter</classname> element for you and insert it into
|
||||||
|
@ -585,8 +585,10 @@ link_elements_with_filter (GstElement *element1, GstElement *element2)
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
See the API references for the full API of
|
See the API references for the full API of
|
||||||
<classname>GstStructure</classname> and
|
<ulink type="http"
|
||||||
<classname>GstCaps</classname>.
|
url="&URLAPI;GstStructure.html"><classname>GstStructure</classname></ulink>
|
||||||
|
and <ulink type="http"
|
||||||
|
url="&URLAPI;GstCaps.html"><classname>GstCaps</classname></ulink>.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
@ -59,9 +59,9 @@
|
||||||
through one or more <emphasis>sink pads</emphasis>. Source and sink
|
through one or more <emphasis>sink pads</emphasis>. Source and sink
|
||||||
elements have only source and sink pads, respectively. Data usually
|
elements have only source and sink pads, respectively. Data usually
|
||||||
means buffers (described by the <ulink type="http"
|
means buffers (described by the <ulink type="http"
|
||||||
url="&URLAPI;/gstreamer-GstBuffer.html"><classname>GstBuffer
|
url="&URLAPI;gstreamer-GstBuffer.html"><classname>GstBuffer
|
||||||
</classname></ulink> object) and events (described by the <ulink
|
</classname></ulink> object) and events (described by the <ulink
|
||||||
type="http" url="&URLAPI;/gstreamer-GstEvent.html"><classname>
|
type="http" url="&URLAPI;gstreamer-GstEvent.html"><classname>
|
||||||
GstEvent</classname></ulink> object).
|
GstEvent</classname></ulink> object).
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
|
@ -158,14 +158,14 @@
|
||||||
<para>
|
<para>
|
||||||
Some parts of this part will serve mostly as an explanation of
|
Some parts of this part will serve mostly as an explanation of
|
||||||
how &GStreamer; works internally; they are not actually needed for
|
how &GStreamer; works internally; they are not actually needed for
|
||||||
actual application development. This includes chapter such as the
|
actual application development. This includes chapters such as the
|
||||||
ones covering scheduling, autoplugging and synchronization. Other
|
ones covering scheduling, autoplugging and synchronization. Other
|
||||||
chapters, however, discuss more advanced ways of
|
chapters, however, discuss more advanced ways of
|
||||||
pipeline-application interaction, and can turn out to be very useful
|
pipeline-application interaction, and can turn out to be very useful
|
||||||
for certain applications. This includes the chapters on metadata,
|
for certain applications. This includes the chapters on metadata,
|
||||||
querying and events, interfaces, dynamic parameters and pipeline
|
querying and events, interfaces, dynamic parameters and pipeline
|
||||||
data manipulation.
|
data manipulation.
|
||||||
</para>
|
</para>
|
||||||
</partintro>
|
</partintro>
|
||||||
|
|
||||||
&QUERYEVENTS;
|
&QUERYEVENTS;
|
||||||
|
|
Loading…
Reference in a new issue