mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-22 09:41:07 +00:00
docs/: restructure so that common stuff is shown first
Original commit message from CVS: * docs/Makefile.am: * docs/manual/elements-api.xml: restructure so that common stuff is shown first * docs/manual/init-api.xml: convert to examples * docs/manual/manual.xml: * docs/manuals.mak: * docs/url.entities: link to API on the website, possibly override later in build * examples/manual/.cvsignore: ignore more * examples/manual/Makefile.am: add more examples * examples/manual/extract.pl: error out on failure
This commit is contained in:
parent
00ec0495e1
commit
bba6ac4b74
14 changed files with 271 additions and 190 deletions
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
||||||
|
2004-09-09 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
|
* docs/Makefile.am:
|
||||||
|
* docs/manual/elements-api.xml:
|
||||||
|
restructure so that common stuff is shown first
|
||||||
|
* docs/manual/init-api.xml:
|
||||||
|
convert to examples
|
||||||
|
* docs/manual/manual.xml:
|
||||||
|
* docs/manuals.mak:
|
||||||
|
* docs/url.entities:
|
||||||
|
link to API on the website, possibly override later in build
|
||||||
|
* examples/manual/.cvsignore:
|
||||||
|
ignore more
|
||||||
|
* examples/manual/Makefile.am:
|
||||||
|
add more examples
|
||||||
|
* examples/manual/extract.pl:
|
||||||
|
error out on failure
|
||||||
|
|
||||||
2004-09-08 Thomas Vander Stichele <thomas at apestaart dot org>
|
2004-09-08 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
* docs/gst/tmpl/gstthread.sgml:
|
* docs/gst/tmpl/gstthread.sgml:
|
||||||
|
|
|
@ -18,7 +18,7 @@ DIST_SUBDIRS = gst faq manual pwg libs plugins xsl
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
slides manuals.mak htmlinstall.mak upload.mak \
|
slides manuals.mak htmlinstall.mak upload.mak \
|
||||||
image-png image-pdf image-eps version.entities.in
|
image-png image-pdf image-eps url.entities version.entities.in
|
||||||
|
|
||||||
upload:
|
upload:
|
||||||
@if test "x$(SUBDIRS_DOCS)" != x; then for a in $(SUBDIRS_DOCS); do cd $$a; make upload; cd ..; done; fi
|
@if test "x$(SUBDIRS_DOCS)" != x; then for a in $(SUBDIRS_DOCS); do cd $$a; make upload; cd ..; done; fi
|
||||||
|
|
|
@ -1,95 +0,0 @@
|
||||||
<chapter id="chapter-initialisation">
|
|
||||||
<title>Initializing <application>GStreamer</application></title>
|
|
||||||
<para>
|
|
||||||
When writing a <application>GStreamer</application> application, you can
|
|
||||||
simply include <filename class='headerfile'>gst/gst.h</filename> to get
|
|
||||||
access to the library functions.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Before the <application>GStreamer</application> libraries can be used,
|
|
||||||
<function>gst_init</function> has to be called from the main application.
|
|
||||||
This call will perform the necessary initialization of the library as
|
|
||||||
well as parse the GStreamer-specific command line options.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
A typical program would have code to initialize GStreamer that
|
|
||||||
looks like this:
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<programlisting>
|
|
||||||
/* example-begin init.c */
|
|
||||||
|
|
||||||
#include <gst/gst.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
guint major, minor, micro;
|
|
||||||
|
|
||||||
gst_init (&argc, &argv);
|
|
||||||
|
|
||||||
gst_version (&major, &minor, &micro);
|
|
||||||
printf ("This program is linked against GStreamer %d.%d.%d\n",
|
|
||||||
major, minor, micro);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* example-end init.c */
|
|
||||||
</programlisting>
|
|
||||||
<para>
|
|
||||||
Use the <symbol>GST_VERSION_MAJOR</symbol>,
|
|
||||||
<symbol>GST_VERSION_MINOR</symbol> and <symbol>GST_VERSION_MICRO</symbol>
|
|
||||||
macros to get the <application>GStreamer</application> version you are
|
|
||||||
building against, or use the function <function>gst_version</function>
|
|
||||||
to get the version your application is linked against.
|
|
||||||
<!-- FIXME: include an automatically generated list of these options. -->
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
It is also possible to call the <function>gst_init</function> function
|
|
||||||
with two <symbol>NULL</symbol> arguments, in which case no command line
|
|
||||||
options will be parsed by <application>GStreamer</application>.
|
|
||||||
</para>
|
|
||||||
<sect1>
|
|
||||||
<title>The popt interface</title>
|
|
||||||
<para>
|
|
||||||
You can also use a popt table to initialize your own parameters as shown in the
|
|
||||||
next example:
|
|
||||||
</para>
|
|
||||||
<programlisting>
|
|
||||||
/* example-begin popt.c */
|
|
||||||
|
|
||||||
#include <gst/gst.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
gboolean silent = FALSE;
|
|
||||||
gchar *savefile = NULL;
|
|
||||||
struct poptOption options[] = {
|
|
||||||
{"silent", 's', POPT_ARG_NONE|POPT_ARGFLAG_STRIP, &silent, 0,
|
|
||||||
"do not output status information", NULL},
|
|
||||||
{"output", 'o', POPT_ARG_STRING|POPT_ARGFLAG_STRIP, &savefile, 0,
|
|
||||||
"save xml representation of pipeline to FILE and exit", "FILE"},
|
|
||||||
POPT_TABLEEND
|
|
||||||
};
|
|
||||||
|
|
||||||
gst_init_with_popt_table (&argc, &argv, options);
|
|
||||||
|
|
||||||
printf ("Run me with --help to see the Application options appended.\n");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* example-end popt.c */
|
|
||||||
</programlisting>
|
|
||||||
<para>
|
|
||||||
As shown in this fragment, you can use a <ulink
|
|
||||||
url="http://developer.gnome.org/doc/guides/popt/"
|
|
||||||
type="http">popt</ulink> table to define your application-specific
|
|
||||||
command line options, and pass this table to the
|
|
||||||
function <function>gst_init_with_popt_table</function>. Your
|
|
||||||
application options will be parsed in addition to the standard
|
|
||||||
<application>GStreamer</application> options.
|
|
||||||
</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
</chapter>
|
|
|
@ -2,66 +2,106 @@
|
||||||
<title>Elements</title>
|
<title>Elements</title>
|
||||||
<sect1 id="section-elements-create">
|
<sect1 id="section-elements-create">
|
||||||
<title>Creating a GstElement</title>
|
<title>Creating a GstElement</title>
|
||||||
|
<para>
|
||||||
|
The simplest way to create an element is to use
|
||||||
|
<ulink type="http"
|
||||||
|
url="&URLAPI;GstElementFactory.html#gst-element-factory-make">
|
||||||
|
<function>gst_element_factory_make</function>
|
||||||
|
</ulink>.
|
||||||
|
This function takes a factory name and an element name for the newly created
|
||||||
|
element.
|
||||||
|
The name of the
|
||||||
|
element is something you can use later on to look up the element in
|
||||||
|
a bin, for example. You can pass <symbol>NULL</symbol> as the name
|
||||||
|
argument to get a unique, default name.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When you don't need the element anymore, you need to unref it using
|
||||||
|
<ulink type="http"
|
||||||
|
url="&URLAPI;GstObject.html#gst-object-unref">
|
||||||
|
<function>gst_object_unref</function></ulink>.
|
||||||
|
This decreases the reference count for the element by 1. An element has a
|
||||||
|
refcount of 1 when it gets created. An element gets destroyed completely
|
||||||
|
when the refcount is decreased to 0.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The following example &EXAFOOT; shows how to create an element named
|
||||||
|
<emphasis>source</emphasis> from the element factory named
|
||||||
|
<emphasis>fakesrc</emphasis>. It checks if the creation succeeded.
|
||||||
|
After checking, it unrefs the element.
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
/* example-begin elementmake.c */
|
||||||
|
|
||||||
|
#include <gst/gst.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
GstElement *element;
|
||||||
|
|
||||||
|
gst_init (&argc, &argv);
|
||||||
|
|
||||||
|
element = gst_element_factory_make ("fakesrc", "source");
|
||||||
|
|
||||||
|
if (!element) {
|
||||||
|
g_error ("Could not create an element from 'fakesrc' factory.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
gst_object_unref (GST_OBJECT (element));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* example-end elementmake.c */
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
A <ulink type="http"
|
<function>gst_element_factory_make</function> is actually a shorthand
|
||||||
url="../../gstreamer/html/GstElement.html"><classname>GstElement</classname></ulink>
|
for a combination of two functions.
|
||||||
object is created from a factory.
|
A
|
||||||
To create an element, you have to get access to a
|
<ulink type="http"
|
||||||
<ulink type="http" url="../../gstreamer/html/GstElementFactory.html">
|
url="&URLAPI;GstElement.html"><classname>GstElement</classname></ulink>
|
||||||
<classname>GstElementFactory</classname></ulink> object using a unique
|
object is created from a factory.
|
||||||
factory name.
|
To create the element, you have to get access to a
|
||||||
|
<ulink type="http" url="&URLAPI;GstElementFactory.html">
|
||||||
|
<classname>GstElementFactory</classname></ulink>
|
||||||
|
object using a unique factory name.
|
||||||
|
This is done with
|
||||||
|
<ulink type="http"
|
||||||
|
url="&URLAPI;GstElementFactory.html#gst-element-factory-find">
|
||||||
|
<function>gst_element_factory_find</function></ulink>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The following code example is used to get a factory that can be used
|
The following code fragment is used to get a factory that can be used
|
||||||
to create the 'mad' element, an mp3 decoder.
|
to create the <emphasis>fakesrc</emphasis> element, a fake data source.
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
GstElementFactory *factory;
|
GstElementFactory *factory;
|
||||||
|
|
||||||
factory = gst_element_factory_find ("mad");
|
factory = gst_element_factory_find ("fakesrc");
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
Once you have the handle to the element factory, you can create a
|
Once you have the handle to the element factory, you can create a
|
||||||
real element with the following code fragment:
|
real element with the following code fragment:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
GstElement *element;
|
GstElement *element;
|
||||||
|
|
||||||
element = gst_element_factory_create (factory, "decoder");
|
element = gst_element_factory_create (factory, "source");
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
<function>gst_element_factory_create</function> will use the element
|
<ulink type="http"
|
||||||
factory to create an element with the given name. The name of the
|
url="&URLAPI;GstElementFactory.html#gst-element-factory-create">
|
||||||
element is something you can use later on to look up the element in
|
<function>gst_element_factory_create</function></ulink>
|
||||||
a bin, for example. You can pass <symbol>NULL</symbol> as the name
|
will use the element factory to create an element with the given name.
|
||||||
argument to get a unique, default name.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
|
||||||
A simple shortcut exists for creating an element from a factory. The
|
|
||||||
following example creates an element named "decoder" from the element
|
|
||||||
factory named "mad". This convenience function is most widely used to
|
|
||||||
create an element.
|
|
||||||
</para>
|
|
||||||
<programlisting>
|
|
||||||
GstElement *element;
|
|
||||||
|
|
||||||
element = gst_element_factory_make ("mad", "decoder");
|
|
||||||
</programlisting>
|
|
||||||
<para>
|
|
||||||
When you don't need the element anymore, you need to unref it, as shown in the following
|
|
||||||
example.
|
|
||||||
</para>
|
|
||||||
<programlisting>
|
|
||||||
GstElement *element;
|
|
||||||
|
|
||||||
...
|
|
||||||
gst_object_unref (GST_OBJECT (element));
|
|
||||||
</programlisting>
|
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="section-elements-properties">
|
<sect1 id="section-elements-properties">
|
||||||
<title>GstElement properties</title>
|
<title>GstElement properties</title>
|
||||||
<para>
|
<para>
|
||||||
A <ulink type="http" url="../../gstreamer/html/GstElement.html">
|
A <ulink type="http" url="&URLAPI;GstElement.html">
|
||||||
<classname>GstElement</classname></ulink> can have several properties
|
<classname>GstElement</classname></ulink> can have several properties
|
||||||
which are implemented using standard <classname>GObject</classname>
|
which are implemented using standard <classname>GObject</classname>
|
||||||
properties. The usual <classname>GObject</classname> methods to query,
|
properties. The usual <classname>GObject</classname> methods to query,
|
||||||
|
@ -69,7 +109,7 @@
|
||||||
are therefore supported.
|
are therefore supported.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Every <ulink type="http" url="../../gstreamer/html/GstElementFactory.html">
|
Every <ulink type="http" url="&URLAPI;GstElementFactory.html">
|
||||||
<classname>GstElement</classname></ulink> inherits at least
|
<classname>GstElement</classname></ulink> inherits at least
|
||||||
one property of its parent <classname>GstObject</classname>:
|
one property of its parent <classname>GstObject</classname>:
|
||||||
the "name" property. This is the name you provide to the
|
the "name" property. This is the name you provide to the
|
||||||
|
@ -81,16 +121,31 @@
|
||||||
<classname>GObject</classname> property mechanism as shown below.
|
<classname>GObject</classname> property mechanism as shown below.
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
GstElement *element;
|
<![CDATA[
|
||||||
GValue value = { 0, }; /* initialize the GValue for g_object_get() */
|
/* example-begin elementget.c */
|
||||||
|
|
||||||
element = gst_element_factory_make ("mad", "decoder");
|
#include <gst/gst.h>
|
||||||
g_object_set (G_OBJECT (element), "name", "mydecoder", NULL);
|
|
||||||
...
|
|
||||||
|
|
||||||
g_value_init (&value, G_TYPE_STRING);
|
int
|
||||||
g_object_get_property (G_OBJECT (element), "name", &value);
|
main (int argc, char *argv[])
|
||||||
...
|
{
|
||||||
|
GstElement *element;
|
||||||
|
GValue value = { 0, }; /* initialize the GValue for g_object_get() */
|
||||||
|
|
||||||
|
gst_init (&argc, &argv);
|
||||||
|
element = gst_element_factory_make ("fakesrc", "source");
|
||||||
|
g_object_set (G_OBJECT (element), "name", "mysource", NULL);
|
||||||
|
|
||||||
|
g_value_init (&value, G_TYPE_STRING);
|
||||||
|
g_object_get_property (G_OBJECT (element), "name", &value);
|
||||||
|
|
||||||
|
g_print ("The name of the source is '%s'.\n", g_value_get_string (&value));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* example-end elementget.c */
|
||||||
|
]]>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
Most plugins provide additional properties to provide more information
|
Most plugins provide additional properties to provide more information
|
||||||
|
@ -113,7 +168,7 @@
|
||||||
<sect1 id="section-elements-signals">
|
<sect1 id="section-elements-signals">
|
||||||
<title>GstElement signals</title>
|
<title>GstElement signals</title>
|
||||||
<para>
|
<para>
|
||||||
A <ulink type="http" url="../../gstreamer/html/GstElementFactory.html">
|
A <ulink type="http" url="&URLAPI;gstreamer/html/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.
|
callback mechanism.
|
||||||
|
|
|
@ -12,14 +12,17 @@
|
||||||
well as parse the GStreamer-specific command line options.
|
well as parse the GStreamer-specific command line options.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
A typical program would have code to initialize GStreamer that
|
A typical program
|
||||||
|
&EXAFOOT;
|
||||||
|
would have code to initialize GStreamer that
|
||||||
looks like this:
|
looks like this:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
/* example-begin init.c */
|
/* example-begin init.c */
|
||||||
|
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
|
@ -35,6 +38,7 @@ main (int argc, char *argv[])
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* example-end init.c */
|
/* example-end init.c */
|
||||||
|
]]>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
Use the <symbol>GST_VERSION_MAJOR</symbol>,
|
Use the <symbol>GST_VERSION_MAJOR</symbol>,
|
||||||
|
|
|
@ -5,6 +5,18 @@
|
||||||
%image-entities;
|
%image-entities;
|
||||||
<!ENTITY % version-entities SYSTEM "version.entities">
|
<!ENTITY % version-entities SYSTEM "version.entities">
|
||||||
%version-entities;
|
%version-entities;
|
||||||
|
<!ENTITY % url-entities SYSTEM "url.entities">
|
||||||
|
%url-entities;
|
||||||
|
|
||||||
|
<!ENTITY EXAFOOT "
|
||||||
|
<footnote>
|
||||||
|
<para>
|
||||||
|
The code for this example is automatically extracted from
|
||||||
|
the documentation and built under <filename>examples/manual</filename>
|
||||||
|
in the GStreamer tarball.
|
||||||
|
</para>
|
||||||
|
</footnote>
|
||||||
|
">
|
||||||
|
|
||||||
<!-- Part 1: Overview -->
|
<!-- Part 1: Overview -->
|
||||||
<!ENTITY INTRO SYSTEM "intro.xml">
|
<!ENTITY INTRO SYSTEM "intro.xml">
|
||||||
|
@ -141,7 +153,8 @@
|
||||||
|
|
||||||
<!-- ############ Basic concepts - part ############# -->
|
<!-- ############ Basic concepts - part ############# -->
|
||||||
|
|
||||||
<part id="part-basic-concepts"><title>Basic Concepts</title>
|
<part id="part-basic-concepts">
|
||||||
|
<title>Basic Concepts</title>
|
||||||
<partintro>
|
<partintro>
|
||||||
<para>
|
<para>
|
||||||
We will first describe the basics of
|
We will first describe the basics of
|
||||||
|
@ -170,7 +183,23 @@
|
||||||
</part>
|
</part>
|
||||||
|
|
||||||
<!-- ############ Basic API - part ############# -->
|
<!-- ############ Basic API - part ############# -->
|
||||||
<part id="part-basic-api"><title>Basic API</title>
|
<part id="part-basic-api">
|
||||||
|
<title>Basic API</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
This chapter will describe the basics of programming with GStreamer.
|
||||||
|
Most of the concepts from the previous chapter will be illustrated with code
|
||||||
|
fragments.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Most of the code examples in this manual are automatically extracted as part
|
||||||
|
of the build process of the GStreamer tarball. After building GStreamer from
|
||||||
|
source, you will find the examples in <filename>examples/manual</filename>.
|
||||||
|
Each example has a comment on the first line giving the name of the file
|
||||||
|
it will be extracted as.
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
&INIT-API;
|
&INIT-API;
|
||||||
|
|
||||||
&ELEMENTS-API;
|
&ELEMENTS-API;
|
||||||
|
|
|
@ -85,6 +85,7 @@ $(BUILDDIR)/$(MAIN): $(XML) $(CSS) $(EXTRA_SOURCES)
|
||||||
@for a in $(XML); do cp $(srcdir)/$$a $(BUILDDIR); done
|
@for a in $(XML); do cp $(srcdir)/$$a $(BUILDDIR); done
|
||||||
@for a in $(CSS); do cp $(srcdir)/$$a $(BUILDDIR); done
|
@for a in $(CSS); do cp $(srcdir)/$$a $(BUILDDIR); done
|
||||||
@cp ../version.entities $(BUILDDIR)
|
@cp ../version.entities $(BUILDDIR)
|
||||||
|
@cp ../url.entities $(BUILDDIR)
|
||||||
|
|
||||||
html/index.html: $(BUILDDIR)/$(MAIN) $(PNG_BUILT) $(FIG_SRC)
|
html/index.html: $(BUILDDIR)/$(MAIN) $(PNG_BUILT) $(FIG_SRC)
|
||||||
@make check-local
|
@make check-local
|
||||||
|
|
3
docs/url.entities
Normal file
3
docs/url.entities
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<!-- These entities could be overridden for installed docs -->
|
||||||
|
<!ENTITY URLAPI "http://gstreamer.freedesktop.org/data/doc/gstreamer/stable/gstreamer/html/">
|
||||||
|
|
15
examples/manual/.gitignore
vendored
15
examples/manual/.gitignore
vendored
|
@ -1,25 +1,24 @@
|
||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
*.c
|
||||||
*.o
|
*.o
|
||||||
*.lo
|
*.lo
|
||||||
*.la
|
*.la
|
||||||
.deps
|
.deps
|
||||||
.libs
|
.libs
|
||||||
|
|
||||||
dynamic
|
dynamic
|
||||||
dynamic.c
|
elementget
|
||||||
|
elementmake
|
||||||
gnome
|
gnome
|
||||||
gnome.c
|
|
||||||
helloworld
|
helloworld
|
||||||
helloworld.c
|
|
||||||
helloworld2
|
helloworld2
|
||||||
helloworld2.c
|
init
|
||||||
|
popt
|
||||||
queue
|
queue
|
||||||
queue.c
|
|
||||||
threads
|
threads
|
||||||
threads.c
|
|
||||||
xml-mp3
|
xml-mp3
|
||||||
xml-mp3.c
|
|
||||||
xml.c
|
|
||||||
xml
|
xml
|
||||||
xmlTest.gst
|
xmlTest.gst
|
||||||
README
|
README
|
||||||
|
|
|
@ -10,10 +10,6 @@ else
|
||||||
GST_LOADSAVE_SRC = xml-mp3
|
GST_LOADSAVE_SRC = xml-mp3
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXAMPLES = dynamic $(GNOME) helloworld init popt queue threads $(GST_LOADSAVE_SRC)
|
|
||||||
noinst_PROGRAMS = $(EXAMPLES)
|
|
||||||
|
|
||||||
LDADD = $(GST_OBJ_LIBS)
|
|
||||||
INCLUDES = $(GST_OBJ_CFLAGS)
|
INCLUDES = $(GST_OBJ_CFLAGS)
|
||||||
|
|
||||||
#dynamic_LDADD = $(GST_OBJ_LIBS) $(LIBGNOMEUI_LIBS)
|
#dynamic_LDADD = $(GST_OBJ_LIBS) $(LIBGNOMEUI_LIBS)
|
||||||
|
@ -23,11 +19,41 @@ gnome_CFLAGS = $(GST_OBJ_CFLAGS) $(LIBGNOMEUI_CFLAGS)
|
||||||
|
|
||||||
EXTRA_DIST = extract.pl
|
EXTRA_DIST = extract.pl
|
||||||
|
|
||||||
# for some reason specifying %.c runs us into trouble when running make
|
EXAMPLES = \
|
||||||
# clean, it starts looking for things like mostlyclean-am.c, please
|
dynamic $(GNOME) factorymake helloworld \
|
||||||
# help me fix that so we don't need to specify all sources here
|
init popt queue threads $(GST_LOADSAVE_SRC)
|
||||||
# also, it's a bit irritating that right now a change in any xml file
|
|
||||||
# triggers a rebuild of all examples
|
dynamic.c: $(top_srcdir)/docs/manual/dynamic.xml
|
||||||
#%.c:
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
dynamic.c gnome.c helloworld.c init.c popt.c queue.c threads.c xml-mp3.c: $(top_srcdir)/docs/manual/*.xml
|
|
||||||
$(PERL_PATH) $(srcdir)/extract.pl $@ $(top_srcdir)/docs/manual/*.xml
|
elementmake.c elementget.c: $(top_srcdir)/docs/manual/elements-api.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
gnome.c: $(top_srcdir)/docs/manual/gnome.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
helloworld.c: $(top_srcdir)/docs/manual/helloworld.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
init.c popt.c: $(top_srcdir)/docs/manual/init-api.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
queue.c: $(top_srcdir)/docs/manual/queues.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
threads.c: $(top_srcdir)/docs/manual/threads.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
xml-mp3.c: $(top_srcdir)/docs/manual/xml.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
# we use some of the examples as testsuite apps, to verify that
|
||||||
|
# they actually run
|
||||||
|
include $(top_srcdir)/testsuite/Rules
|
||||||
|
|
||||||
|
tests_pass = elementmake elementget init popt $(GNOME)
|
||||||
|
tests_fail =
|
||||||
|
tests_ignore =
|
||||||
|
|
||||||
|
noinst_PROGRAMS = $(EXAMPLES)
|
||||||
|
LDADD = $(GST_OBJ_LIBS)
|
||||||
|
|
|
@ -22,6 +22,8 @@ xml_decode ($)
|
||||||
# main
|
# main
|
||||||
my $output = shift @ARGV;
|
my $output = shift @ARGV;
|
||||||
|
|
||||||
|
$found = 0;
|
||||||
|
|
||||||
foreach $file (@ARGV)
|
foreach $file (@ARGV)
|
||||||
{
|
{
|
||||||
open FILE, $file or die "Cannot open file $file";
|
open FILE, $file or die "Cannot open file $file";
|
||||||
|
@ -31,6 +33,7 @@ foreach $file (@ARGV)
|
||||||
if ($line =~ /\/\* example-begin $output \*\//)
|
if ($line =~ /\/\* example-begin $output \*\//)
|
||||||
{
|
{
|
||||||
print "Extracting $output from $file\n";
|
print "Extracting $output from $file\n";
|
||||||
|
$found = 1;
|
||||||
open OUTPUT, ">$output";
|
open OUTPUT, ">$output";
|
||||||
print OUTPUT xml_decode ($line);
|
print OUTPUT xml_decode ($line);
|
||||||
my $example = 1;
|
my $example = 1;
|
||||||
|
@ -50,3 +53,8 @@ foreach $file (@ARGV)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!$found)
|
||||||
|
{
|
||||||
|
print "Could not find $output example !\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
15
tests/old/examples/manual/.gitignore
vendored
15
tests/old/examples/manual/.gitignore
vendored
|
@ -1,25 +1,24 @@
|
||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
*.c
|
||||||
*.o
|
*.o
|
||||||
*.lo
|
*.lo
|
||||||
*.la
|
*.la
|
||||||
.deps
|
.deps
|
||||||
.libs
|
.libs
|
||||||
|
|
||||||
dynamic
|
dynamic
|
||||||
dynamic.c
|
elementget
|
||||||
|
elementmake
|
||||||
gnome
|
gnome
|
||||||
gnome.c
|
|
||||||
helloworld
|
helloworld
|
||||||
helloworld.c
|
|
||||||
helloworld2
|
helloworld2
|
||||||
helloworld2.c
|
init
|
||||||
|
popt
|
||||||
queue
|
queue
|
||||||
queue.c
|
|
||||||
threads
|
threads
|
||||||
threads.c
|
|
||||||
xml-mp3
|
xml-mp3
|
||||||
xml-mp3.c
|
|
||||||
xml.c
|
|
||||||
xml
|
xml
|
||||||
xmlTest.gst
|
xmlTest.gst
|
||||||
README
|
README
|
||||||
|
|
|
@ -10,10 +10,6 @@ else
|
||||||
GST_LOADSAVE_SRC = xml-mp3
|
GST_LOADSAVE_SRC = xml-mp3
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXAMPLES = dynamic $(GNOME) helloworld init popt queue threads $(GST_LOADSAVE_SRC)
|
|
||||||
noinst_PROGRAMS = $(EXAMPLES)
|
|
||||||
|
|
||||||
LDADD = $(GST_OBJ_LIBS)
|
|
||||||
INCLUDES = $(GST_OBJ_CFLAGS)
|
INCLUDES = $(GST_OBJ_CFLAGS)
|
||||||
|
|
||||||
#dynamic_LDADD = $(GST_OBJ_LIBS) $(LIBGNOMEUI_LIBS)
|
#dynamic_LDADD = $(GST_OBJ_LIBS) $(LIBGNOMEUI_LIBS)
|
||||||
|
@ -23,11 +19,41 @@ gnome_CFLAGS = $(GST_OBJ_CFLAGS) $(LIBGNOMEUI_CFLAGS)
|
||||||
|
|
||||||
EXTRA_DIST = extract.pl
|
EXTRA_DIST = extract.pl
|
||||||
|
|
||||||
# for some reason specifying %.c runs us into trouble when running make
|
EXAMPLES = \
|
||||||
# clean, it starts looking for things like mostlyclean-am.c, please
|
dynamic $(GNOME) factorymake helloworld \
|
||||||
# help me fix that so we don't need to specify all sources here
|
init popt queue threads $(GST_LOADSAVE_SRC)
|
||||||
# also, it's a bit irritating that right now a change in any xml file
|
|
||||||
# triggers a rebuild of all examples
|
dynamic.c: $(top_srcdir)/docs/manual/dynamic.xml
|
||||||
#%.c:
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
dynamic.c gnome.c helloworld.c init.c popt.c queue.c threads.c xml-mp3.c: $(top_srcdir)/docs/manual/*.xml
|
|
||||||
$(PERL_PATH) $(srcdir)/extract.pl $@ $(top_srcdir)/docs/manual/*.xml
|
elementmake.c elementget.c: $(top_srcdir)/docs/manual/elements-api.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
gnome.c: $(top_srcdir)/docs/manual/gnome.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
helloworld.c: $(top_srcdir)/docs/manual/helloworld.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
init.c popt.c: $(top_srcdir)/docs/manual/init-api.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
queue.c: $(top_srcdir)/docs/manual/queues.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
threads.c: $(top_srcdir)/docs/manual/threads.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
xml-mp3.c: $(top_srcdir)/docs/manual/xml.xml
|
||||||
|
$(PERL_PATH) $(srcdir)/extract.pl $@ $<
|
||||||
|
|
||||||
|
# we use some of the examples as testsuite apps, to verify that
|
||||||
|
# they actually run
|
||||||
|
include $(top_srcdir)/testsuite/Rules
|
||||||
|
|
||||||
|
tests_pass = elementmake elementget init popt $(GNOME)
|
||||||
|
tests_fail =
|
||||||
|
tests_ignore =
|
||||||
|
|
||||||
|
noinst_PROGRAMS = $(EXAMPLES)
|
||||||
|
LDADD = $(GST_OBJ_LIBS)
|
||||||
|
|
|
@ -22,6 +22,8 @@ xml_decode ($)
|
||||||
# main
|
# main
|
||||||
my $output = shift @ARGV;
|
my $output = shift @ARGV;
|
||||||
|
|
||||||
|
$found = 0;
|
||||||
|
|
||||||
foreach $file (@ARGV)
|
foreach $file (@ARGV)
|
||||||
{
|
{
|
||||||
open FILE, $file or die "Cannot open file $file";
|
open FILE, $file or die "Cannot open file $file";
|
||||||
|
@ -31,6 +33,7 @@ foreach $file (@ARGV)
|
||||||
if ($line =~ /\/\* example-begin $output \*\//)
|
if ($line =~ /\/\* example-begin $output \*\//)
|
||||||
{
|
{
|
||||||
print "Extracting $output from $file\n";
|
print "Extracting $output from $file\n";
|
||||||
|
$found = 1;
|
||||||
open OUTPUT, ">$output";
|
open OUTPUT, ">$output";
|
||||||
print OUTPUT xml_decode ($line);
|
print OUTPUT xml_decode ($line);
|
||||||
my $example = 1;
|
my $example = 1;
|
||||||
|
@ -50,3 +53,8 @@ foreach $file (@ARGV)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!$found)
|
||||||
|
{
|
||||||
|
print "Could not find $output example !\n";
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue