EXTRA_DIST = $(XML) $(FIGS) $(CSS) magic-png magic-pdf
include $(srcdir)/../manuals.mak
+
+check:
+ xmllint -noout -valid $(MAIN)
+
<classname>GstType</classname>. The definition of a
<classname>GstType</classname> is like:
</para>
- <programlisting>
+ <para>
+ <programlisting>
typedef GstCaps (*GstTypeFindFunc) (GstBuffer *buf,gpointer *priv);
typedef struct _GstType GstType;
GstTypeFindFunc typefindfunc; /* typefind function */
};
- </programlisting>
+ </programlisting>
+ </para>
<para>
All operations on <classname>GstType</classname> occur
via their <classname>guint16 id</classname> numbers, with
<para>
This function will return 0 if the extension was not known.
</para>
+ <para>
+ For more information, see <xref linkend="cha-autoplug"/>.
+ </para>
</sect2>
- <para>
- For more information, see <xref linkend="cha-autoplug"/>.
- </para>
</sect1>
<sect1>
It has the following object properties:
</para>
<itemizedlist>
- <listitem><filename>"value_float"</filename>
+ <listitem><para><filename>"value_float"</filename>
- the property to set and get if it is a float dparam
- </listitem>
- <listitem><filename>"value_int"</filename>
+ </para></listitem>
+ <listitem><para><filename>"value_int"</filename>
- the property to set and get if it is an integer dparam
- </listitem>
- <listitem><filename>"value_int64"</filename>
+ </para></listitem>
+ <listitem><para><filename>"value_int64"</filename>
- the property to set and get if it is a 64 bit integer dparam
- </listitem>
- <listitem><filename>"is_log"</filename>
+ </para></listitem>
+ <listitem><para><filename>"is_log"</filename>
- readonly boolean which is TRUE if the param should be displayed on a log scale
- </listitem>
- <listitem><filename>"is_rate"</filename>
+ </para></listitem>
+ <listitem><para><filename>"is_rate"</filename>
- readonly boolean which is TRUE if the value is a proportion of the sample rate.
For example with a sample rate of 44100, 0.5 would be 22050 Hz and 0.25 would be 11025 Hz.
- </listitem>
+ </para></listitem>
</itemizedlist>
</sect2>
<sect2>
It has the following object properties:
</para>
<itemizedlist>
- <listitem><filename>"update_period"</filename>
+ <listitem><para><filename>"update_period"</filename>
- an int64 value specifying the number nanoseconds between updates. This will be ignored in
<filename>"synchronous"</filename> mode since the buffer size dictates the update period.
- </listitem>
- <listitem><filename>"slope_time"</filename>
+ </para></listitem>
+ <listitem><para><filename>"slope_time"</filename>
- an int64 value specifying the time period to use in the maximum slope calculation
- </listitem>
- <listitem><filename>"slope_delta_float"</filename>
+ </para></listitem>
+ <listitem><para><filename>"slope_delta_float"</filename>
- a float specifying the amount a float value can change in the given slope_time.
- </listitem>
+ </para></listitem>
</itemizedlist>
<para>
Audible artifacts may not be completely eliminated by using this dparam. The only way to eliminate
To construct a new thread you will perform something like:
</para>
- <programlisting>
+ <para>
+ <programlisting>
GstElement *my_thread;
/* create the thread object */
/* start playing */
gst_element_set_state (GST_ELEMENT (my_thread), GST_STATE_PLAYING);
- </programlisting>
-
+ </programlisting>
+ </para>
<para>
The above program will create a thread with two elements in it. As soon
as it is set to the PLAYING state, the thread will start to iterate
itself. You never need to explicitly iterate a thread.
</para>
- <sect2>
+ <sect1>
<title>Constraints placed on the pipeline by the GstThread</title>
<para>
Within the pipeline, everything is the same as in any other bin. The
itself, but it needs to be present on one side or the other to enable
inter-thread communication.
</para>
- </sect2>
- <sect2>
+ </sect1>
+ <sect1>
<title>When would you want to use a thread?</title>
<para>
If you are writing a GUI application, making the top-level bin a thread will make your GUI
the pipeline, which (for example) could cause pops in the output of the sound card, if it is
an audio pipeline.
</para>
- </sect2>
- <para>
+ <para>
A thread can be visualised as below
- </para>
- <figure float="1" id="sec-threads-img">
- <title>A thread</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/thread.&magic;" format="&magic;" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
+ </para>
+ <figure float="1" id="sec-threads-img">
+ <title>A thread</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/thread.&magic;" format="&magic;" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
As an example we show the helloworld program using a thread.
- </para>
+ </para>
- <programlisting>
+ <para>
+ <programlisting>
/* example-begin threads.c */
#include <gst/gst.h>
exit (0);
}
/* example-end threads.c */
- </programlisting>
-
+ </programlisting>
+ </para>
+ </sect1>
</chapter>
It has the following object properties:
</para>
<itemizedlist>
- <listitem><filename>"value_float"</filename>
+ <listitem><para><filename>"value_float"</filename>
- the property to set and get if it is a float dparam
- </listitem>
- <listitem><filename>"value_int"</filename>
+ </para></listitem>
+ <listitem><para><filename>"value_int"</filename>
- the property to set and get if it is an integer dparam
- </listitem>
- <listitem><filename>"value_int64"</filename>
+ </para></listitem>
+ <listitem><para><filename>"value_int64"</filename>
- the property to set and get if it is a 64 bit integer dparam
- </listitem>
- <listitem><filename>"is_log"</filename>
+ </para></listitem>
+ <listitem><para><filename>"is_log"</filename>
- readonly boolean which is TRUE if the param should be displayed on a log scale
- </listitem>
- <listitem><filename>"is_rate"</filename>
+ </para></listitem>
+ <listitem><para><filename>"is_rate"</filename>
- readonly boolean which is TRUE if the value is a proportion of the sample rate.
For example with a sample rate of 44100, 0.5 would be 22050 Hz and 0.25 would be 11025 Hz.
- </listitem>
+ </para></listitem>
</itemizedlist>
</sect2>
<sect2>
It has the following object properties:
</para>
<itemizedlist>
- <listitem><filename>"update_period"</filename>
+ <listitem><para><filename>"update_period"</filename>
- an int64 value specifying the number nanoseconds between updates. This will be ignored in
<filename>"synchronous"</filename> mode since the buffer size dictates the update period.
- </listitem>
- <listitem><filename>"slope_time"</filename>
+ </para></listitem>
+ <listitem><para><filename>"slope_time"</filename>
- an int64 value specifying the time period to use in the maximum slope calculation
- </listitem>
- <listitem><filename>"slope_delta_float"</filename>
+ </para></listitem>
+ <listitem><para><filename>"slope_delta_float"</filename>
- a float specifying the amount a float value can change in the given slope_time.
- </listitem>
+ </para></listitem>
</itemizedlist>
<para>
Audible artifacts may not be completely eliminated by using this dparam. The only way to eliminate
<classname>GstType</classname>. The definition of a
<classname>GstType</classname> is like:
</para>
- <programlisting>
+ <para>
+ <programlisting>
typedef GstCaps (*GstTypeFindFunc) (GstBuffer *buf,gpointer *priv);
typedef struct _GstType GstType;
GstTypeFindFunc typefindfunc; /* typefind function */
};
- </programlisting>
+ </programlisting>
+ </para>
<para>
All operations on <classname>GstType</classname> occur
via their <classname>guint16 id</classname> numbers, with
<para>
This function will return 0 if the extension was not known.
</para>
+ <para>
+ For more information, see <xref linkend="cha-autoplug"/>.
+ </para>
</sect2>
- <para>
- For more information, see <xref linkend="cha-autoplug"/>.
- </para>
</sect1>
<sect1>
To construct a new thread you will perform something like:
</para>
- <programlisting>
+ <para>
+ <programlisting>
GstElement *my_thread;
/* create the thread object */
/* start playing */
gst_element_set_state (GST_ELEMENT (my_thread), GST_STATE_PLAYING);
- </programlisting>
-
+ </programlisting>
+ </para>
<para>
The above program will create a thread with two elements in it. As soon
as it is set to the PLAYING state, the thread will start to iterate
itself. You never need to explicitly iterate a thread.
</para>
- <sect2>
+ <sect1>
<title>Constraints placed on the pipeline by the GstThread</title>
<para>
Within the pipeline, everything is the same as in any other bin. The
itself, but it needs to be present on one side or the other to enable
inter-thread communication.
</para>
- </sect2>
- <sect2>
+ </sect1>
+ <sect1>
<title>When would you want to use a thread?</title>
<para>
If you are writing a GUI application, making the top-level bin a thread will make your GUI
the pipeline, which (for example) could cause pops in the output of the sound card, if it is
an audio pipeline.
</para>
- </sect2>
- <para>
+ <para>
A thread can be visualised as below
- </para>
- <figure float="1" id="sec-threads-img">
- <title>A thread</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/thread.&magic;" format="&magic;" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
+ </para>
+ <figure float="1" id="sec-threads-img">
+ <title>A thread</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/thread.&magic;" format="&magic;" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
As an example we show the helloworld program using a thread.
- </para>
+ </para>
- <programlisting>
+ <para>
+ <programlisting>
/* example-begin threads.c */
#include <gst/gst.h>
exit (0);
}
/* example-end threads.c */
- </programlisting>
-
+ </programlisting>
+ </para>
+ </sect1>
</chapter>