in a swift and cunning move thomasvs leaps up to the front of the pack in the race...
authorThomas Vander Stichele <thomas@apestaart.org>
Sat, 19 Oct 2002 09:15:52 +0000 (09:15 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Sat, 19 Oct 2002 09:15:52 +0000 (09:15 +0000)
Original commit message from CVS:
in a swift and cunning move thomasvs leaps up to the front of the pack in the
race to the biggest commit of the week

12 files changed:
docs/faq/Makefile.am [new file with mode: 0644]
docs/faq/base.css [new file with mode: 0644]
docs/faq/dependencies.xml [new file with mode: 0644]
docs/faq/developing.xml [new file with mode: 0644]
docs/faq/general.xml [new file with mode: 0644]
docs/faq/getting.xml [new file with mode: 0644]
docs/faq/gstreamer-faq.xml [new file with mode: 0644]
docs/faq/magic-pdf [new file with mode: 0644]
docs/faq/magic-png [new file with mode: 0644]
docs/faq/start.xml [new file with mode: 0644]
docs/faq/troubleshooting.xml [new file with mode: 0644]
docs/faq/using.xml [new file with mode: 0644]

diff --git a/docs/faq/Makefile.am b/docs/faq/Makefile.am
new file mode 100644 (file)
index 0000000..3170b28
--- /dev/null
@@ -0,0 +1,15 @@
+DOC=gstreamer-faq
+MAIN=$(DOC).xml
+XML=$(wildcard *.xml)
+XSLFO=$(srcdir)/../xsl/fo.xsl
+XSLFOMODS=$(srcdir)/../xsl/ulink.xsl $(srcdir)/../xsl/keycombo.xsl
+XSLHTML=$(srcdir)/../xsl/html.xsl
+XSLHTMLMODS=$(srcdir)/../xsl/fileext.xsl $(srcdir)/../xsl/admon.xsl \
+       $(srcdir)/../xsl/keycombo.xsl $(srcdir)/../xsl/css.xsl
+XSLS=$(XSLFO) $(XSLFOMODS) $(XSLHTML) $(XSLHTMLMODS)
+SRC=$(XML)
+CSS=base.css
+
+EXTRA_DIST = $(XML) $(CSS)
+
+include $(srcdir)/../manuals.mak
diff --git a/docs/faq/base.css b/docs/faq/base.css
new file mode 100644 (file)
index 0000000..a24c078
--- /dev/null
@@ -0,0 +1,3 @@
+pre.programlisting { 
+        background: #E8E8FF;
+}
diff --git a/docs/faq/dependencies.xml b/docs/faq/dependencies.xml
new file mode 100644 (file)
index 0000000..3e0fe49
--- /dev/null
@@ -0,0 +1,130 @@
+<sect1 id="chapter-dependencies">
+  <title id="title-dependencies">Dependencies</title>
+  <qandaset>
+
+    <qandaentry>
+      <question id="dependencies-why-so-many">
+        <para>Why are there so many dependencies ?</para>
+      </question>
+
+      <answer>
+        <para>
+Making a full-featured media framework is a huge undertaking in itself.
+By using the work done by others, we both reduce the amount of redundant work 
+being done and leave ourselves free to work on the architecture itself 
+instead of working on the low-level stuff.  We would be stupid not to reuse
+the code others have written.
+        </para>
+        <para>
+However, do realize that in no way you are forced to have all dependencies
+installed.  Nono of the core developers has all of them installed.  GStreamer
+has only a few obligate dependencies : GLib 2.0, popt >= 1.6.0, and very
+common stuff like glibc, a C compiler, and so on.  All of the other
+dependencies are optional.
+        </para>
+        <para>
+So, in closing, let's rephrase the question to 
+<quote>Why are you giving me so many choices and such a rich environment ?
+</quote>
+        </para>
+      </answer>
+    </qandaentry>
+
+<qandaentry>
+      <question id="dependencies-glib">
+        <para>
+Does GStreamer use GTK+ 1.2/GLib 1.2 or GLib 2.0 ?
+        </para>
+      </question>
+
+      <answer>
+        <para>
+Since the 0.3.3 release of GStreamer, we use GLib 2.0 as the core library 
+for GStreamer, which features a move of GObject from GTK+ 2.0 to GLib 2.0.
+If you want to compile using GTK+ 1.2/GLib 1.2,  you need to get the 
+0.3.1 or earlier release.   It is of course not supported.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="dependencies-dxr">
+        <para>
+Does GStreamer offer support for DVD decoder cards like dxr2/3 ?
+        </para>
+      </question>
+
+      <answer>
+        <para>
+We do have support for the dxr3, although dxr2 support is unkown. 
+GStreamer can easily accomodate hardware acceleration by writing new 
+device-specific elements.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="dependencies-x">
+        <para>Is GStreamer X independent ?</para>
+      </question>
+
+      <answer>
+        <para>
+Yes, we have no X dependency in any of our core modules. There are GStreamer
+applications that run fine without any need for X.  However, until our Linux 
+Framebuffer or libsvga plugin is ready, you will not be able to play videos 
+without X. In the future, there will probably be lots of different output 
+plugins for video available.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="dependencies-ladspa">
+        <para>What is GStreamer's position on efforts such as LADSPA ?</para>
+      </question>
+
+      <answer>
+        <para>
+GStreamer actively supports such efforts, and in the case of 
+<ulink url="http://ladspa.org/"><citetitle>LADPSA</citetitle></ulink>,
+we already have a wrapper plugin.  This wrapper plug-in detects the LADSPA
+plugins present on your system at register time.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="dependencies-midi">
+        <para>Does GStreamer support MIDI ?</para>
+      </question>
+
+      <answer>
+        <para>
+Not yet. The GStreamer architecture should be able to support the needs of 
+MIDI applications very well however. If you are a developer interested in 
+adding MIDI support to GStreamer we are very interested in getting in touch 
+with you.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="dependencies-gnome">
+        <para>Does GStreamer depend on GNOME ?</para>
+      </question>
+
+      <answer>
+        <para>
+No. But many of the applications developed for GStreamer do, including our 
+sample applications. There is nothing hindering people from developing 
+applications using other toolkits however and we would happily help promote 
+such efforts. A good example of an application using GStreamer, but which is 
+not using GNOME is the 
+<ulink url="http://mozstreamer.mozdev.org"><citetitle>
+Mozstreamer</citetitle></ulink> which uses Mozilla XUL.
+        </para>
+      </answer>
+    </qandaentry>
+  </qandaset>
+</sect1>
diff --git a/docs/faq/developing.xml b/docs/faq/developing.xml
new file mode 100644 (file)
index 0000000..e3b4c29
--- /dev/null
@@ -0,0 +1,190 @@
+<sect1 id="chapter-developing">
+  <title id="title-developing">Developing applications with GStreamer</title>
+
+  <qandaset defaultlabel="qandaset-developing">
+
+    <qandaentry>
+      <question id="developing-compile-programs">
+        <para>How do I compile programs that use GStreamer ?</para>
+      </question>
+
+      <answer>
+        <para>
+GStreamer uses pkg-config to assist applications with compilationa and 
+linking flags. 
+pkg-config is already used by GTK+, GNOME, SDL, and others; so if you are 
+familiar with using it for any of those, you're set.
+        </para>
+        <para>
+If you're not familiar with pkg-config to compile and link a small 
+one-file program, pass the --cflags and --libs arguments to pkg-config.
+For example:
+<programlisting>
+$ gcc `pkg-config --cflags --libs gstreamer` -o myprog myprog.c
+</programlisting>
+would be sufficient for a gstreamer-only program. 
+If (for example) your app also used GTK+ 2.0, you could use
+<programlisting>
+$ gcc `pkg-config --cflags --libs gstreamer gtk+-2.0` -o myprog myprog.c
+</programlisting>
+Those are back-ticks (on the same key with the tilde on US keyboards), 
+not single quotes.
+        </para>
+        <para>
+For bigger projects, you should integrate pkg-config use in your Makefile,
+or integrate with autoconf using the pkg.m4 macro.
+        </para>
+      </answer>
+    </qandaentry>
+
+     <qandaentry>
+      <question id="developing-gconf">
+        <para>How can I use GConf to get the system-wide defaults ?</para>
+      </question>
+
+      <answer>
+        <para>
+It's a good idea to use GConf to use default ways of outputting audio and
+video.  Since GStreamer's GConf keys can be more than
+just one element, but a whole pipeline, it would be a good idea
+to use the gstgconf library.  It provides functions to parse the GConf key
+to a usable pipeline.
+        </para>
+        <para>
+To link against gstgconf, use pkg-config to query the gstreamer-libs.pc file
+for link flags, and add -lgstgconf to the link flags.
+This fragment of configure.ac shows how to use pkg-config to get the LIBS:
+        </para>
+<programlisting>
+dnl check for GStreamer helper libs
+PKG_CHECK_MODULES(GST_HELPLIBS, gstreamer-libs >= $GSTREAMER_REQ,,exit)
+AC_SUBST(GST_HELPLIBS_LIBS)
+AC_SUBST(GST_HELPLIBS_CFLAGS)
+</programlisting>
+        <para>
+This fragment of a Makefile.am file shows how to make your application link
+to it:
+        </para>
+<programlisting>
+bin_PROGRAMS = application
+
+application_LDADD = $(GST_LIBS) $(GST_HELPLIBS_LIBS) -lgstgconf
+application_CFLAGS = $(GST_CFLAGS) $(GST_HELPLIBS_CFLAGS)
+</programlisting>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="developing-libtool-scripts">
+        <para>
+How do I debug these funny shell scripts that libtool makes ?
+        </para>
+      </question>
+
+      <answer>
+        <para>
+When you link a program against uninstalled GStreamer using libtool, 
+funny shell scripts are made to modify your shared object search path 
+and then run your program. For instance, to debug gst-launch, try 
+<programlisting>
+libtool gdb /path/to/gstreamer-launch
+</programlisting>. 
+If this does not work, you're probably using a broken version of libtool. 
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="developing-mail-gstreamer-devel">
+        <para>Why is mail traffic so low on gstreamer-devel ?</para>
+      </question>
+
+      <answer>
+        <para>
+Our main arena for coordination and discussion is IRC, not email. 
+Join us in #gstreamer on irc.freenode.net
+For larger picture questions or getting more input from more persons,
+a mail to gstreamer-devel is never a bad idea.
+However, we do archive our IRC discussions, which you may find in the 
+gstreamer-daily mailing list archives.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="developing-versioning">
+        <para>What kind of versioning scheme does GStreamer use ?</para>
+      </question>
+
+      <answer>
+        <para>
+For public releases, GStreamer uses a standard MAJOR.MINOR.MICRO version 
+scheme.  If the release consists of mostly bug fixes or incremental changes, 
+the MICRO version is incremented.
+If the release contains big changes, the MINOR version is incremented.
+If we're particularly giddy, we might even increase the MAJOR number.  
+Don't hold your breath for that though.
+        </para>
+        <para>
+During the development cycle, GStreamer also uses a fourth or NANO number.
+If this number is 1, then it's a CVS version.  
+Any tarball or package that has a nano number of 1 is made from CVS and thus 
+not supported.  Additionally, if you didn't get this package or tarball from
+the GStreamer team, don't have high hopes on it doing whatever you want it
+to do.
+        </para>
+        <para>
+If the number is 2 or higher, it's an official pre-release in preparation 
+of an actual complete release.  Your help in testing these tarballs and
+packages is very much appreciated.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="developing-coding-style">
+        <para>What is the coding style for GStreamer core ?</para>
+      </question>
+
+      <answer>
+        <para>
+The core is basically coded in K&amp;R with 2-space indenting. 
+Just follow what's already there and you'll be fine. 
+The core could use a code cleanup though at this point.
+        </para>
+        <para>
+Individual plugins in gst-plugins or plugins that you want considered for
+addition to the gst-plugins module should be coded in the same style.
+It's easier if everything is consistent. Consistency is, of course, the goal. 
+        </para>
+        <para>
+If you use emacs, try these lines:
+<programlisting>
+(defun gstreamer-c-mode ()
+  "C mode with adjusted defaults for use with GStreamer."
+  (interactive)
+  (c-mode)
+  (c-set-style "K&amp;R")
+  (setq c-basic-offset 2))
+
+(setq auto-mode-alist (cons '("gst.*/.*\\.[ch]$" . gstreamer-c-mode)
+                       auto-mode-alist))
+</programlisting>
+        </para>
+        <para>
+Or, run your code through 
+<programlisting>
+indent -br -bad -cbi0 -cli2 -bls -l100 -ut -ce
+</programlisting>
+before submitting a patch (FIXME: check if these are indeed the proper options).
+        </para>
+        <para>
+As for the code itself, the 
+<ulink url="http://developer.gnome.org/doc/guides/programming-guidelines/book1.html">GNOME coding guidelines</ulink> is a good read.
+Where possible, we try to adhere to the spirit of GObject and use similar
+coding idioms.
+        </para>
+      </answer>
+    </qandaentry>
+  </qandaset>
+</sect1>
diff --git a/docs/faq/general.xml b/docs/faq/general.xml
new file mode 100644 (file)
index 0000000..4b832a3
--- /dev/null
@@ -0,0 +1,189 @@
+<sect1 id="chapter-general">
+  <title id="title-general">General</title>
+  <qandaset>
+
+    <qandaentry>
+      <question id="general-media-player">
+        <para>Is GStreamer a media player ?</para>
+      </question>
+
+      <answer>
+        <para>
+No, GStreamer is a development framework for creating applications like 
+media players, video editors, streaming media broadcasters and so on. 
+That said, very good media players can easily be built on top
+of GStreamer and we even include a simple yet functional media player 
+with GStreamer, called gst-player.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="general-why-c">
+        <para>
+Why is GStreamer written in C ? Why not C++/Objective-C/... ?
+        </para>
+      </question>
+
+      <answer>
+        <para>
+We like C. Aside from "personal preference", there are a number of technical 
+reasons why C is nice in this project:
+<itemizedlist>
+<listitem>C is extremely portable.</listitem>
+<listitem>C is fast.</listitem>
+<listitem>It is easy to make language bindings for libraries written in C.
+</listitem>
+<listitem>The GObject object system provided by GLib implements objects in C, 
+in a portable, powerful way. This library provides for introspection and 
+runtime dynamic typing. It is a full OO system, but without the syntactic 
+sugar. If you want sugar, take a look at 
+<ulink url="http://www.5z.com/jirka/gob.html">GOB</ulink>.</listitem>
+<listitem>Use of C integrates nicely with Gtk+ and GNOME. Some people like 
+this a lot, but neither Gtk+ nor GNOME are required by GStreamer.</listitem>
+</itemizedlist>
+</para>
+<para>
+So, in closing, we like C. If you don't, that's fine; if you still want to 
+help out on GStreamer, we always need more language binding people. And if 
+not, don't bother us; we're working :-)
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="general-applications">
+        <para>What applications are available for GStreamer ?</para>
+      </question>
+      <answer>
+        <para>
+GStreamer is still very early in its development, but already we see some 
+really nice applications being developed in parallel with GStreamer. 
+Both gst-player and gst-editor are very closely linked to GStreamer itself
+for obvious reasons.
+For a list of some of the more advanced projects, look at the list
+in our <ulink url="http://gstreamer.net/status/">Status table</ulink>.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="general-licensing">
+        <para>
+What are the exact licensing terms for GStreamer and its plugins ?
+        </para>
+      </question>
+      <answer>
+        <para>
+All of GStreamer, including our own plugin code, is licensed under the 
+<ulink url="http://www.gnu.org/licenses/lgpl.html">GNU LGPL</ulink> license.
+Some of the libraries we use for some of the plugins are however under the 
+GPL, which means that those plugins can not be used by a non-GPL-compatible 
+application. 
+        </para>
+        <para>
+As part of the GStreamer source download you find a file called 
+license_README. That file contains information in the exact licensing 
+terms of the libraries we use. As a general rule, GStreamer aims at using 
+only LGPL or BSD licensed libraries if available and only use GPL or 
+proprietary libraries where no good LGPL or BSD alternatives are available.
+        </para>
+From GStreamer 0.4.2 on, we implemented a license field for all of the plugins,
+and in the future we might have the application enforce a stricter policy
+(much like tainting in the kernel).
+        <para>
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="general-sound-server">
+        <para>Is GStreamer a sound server ?</para>
+      </question>
+      <answer>
+        <para>
+No, GStreamer is not a soundserver. GStreamer does however have plugins
+supporting most of the major soundservers available today, including 
+ESD, aRTSd, and to some extent Jack. Support for MAS is also planned.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="general-platforms">
+        <para>
+Will GStreamer be available for platforms other than Unix ?
+        </para>
+      </question>
+      <answer>
+        <para>
+Depends. Our main target is the Unix platform. That said, interest has been 
+expressed in porting GStreamer to other platforms and the GStreamer core 
+team will gladly accept patches to accomplish this.
+Please refer to the
+<ulink url="http://gstreamer.net/status/?category=7">
+platform support status table</ulink>
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="general-gnome">
+        <para>What is GStreamer's relationship with the GNOME community ?</para>
+      </question>
+      <answer>
+        <para>
+While GStreamer is operated as an independent project, we do have a close 
+relationship with the GNOME community. Many of our hackers consider 
+themselves also to be members of the GNOME community. There are plans to 
+make (some part of) GStreamer an official part of the development framework 
+of GNOME.  This does not exclude use of GStreamer by other communities at
+all, of course.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="general-kde">
+        <para>What is GStreamer's relationship with the KDE community ?</para>
+      </question>
+      <answer>
+        <para>
+The GStreamer community wants to have as good a relationship as possible 
+with KDE, and we hope that someday KDE decides to adopt GStreamer as their 
+multimedia API, just like the GNOME community plans on doing. 
+There have been contacts from time to time between the GStreamer community 
+and KDE and we do already have support for the aRTSd sound server used by KDE.
+Also, some of the KDE hackers have created Qt bindings of GStreamer 
+and made a simple video player.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="general-my-application">
+        <para>
+I'm considering adding GStreamer output to my application...
+        </para>
+      </question>
+
+      <answer>
+        <para>
+That doesn't really make sense. GStreamer is not a sound server, so you don't 
+output directly to GStreamer, and it's not an intermediate API between 
+audio data and different kinds of audio sinks. It is a fundamental design 
+decision to use GStreamer in your app; there are no easy ways of somehow 
+'transfering' data from your app to GStreamer. Instead, your app would have 
+to use or implement a number of GStreamer elements, string them together, and 
+tell them to run. In that manner the data would all be internal to the 
+GStreamer pipeline.
+        </para>
+        <para>
+That said, it is possible to write a plugin specific to your app that can get
+at the audio data.
+        </para>
+      </answer>
+    </qandaentry>
+  </qandaset>
+
+</sect1>
diff --git a/docs/faq/getting.xml b/docs/faq/getting.xml
new file mode 100644 (file)
index 0000000..d050ff5
--- /dev/null
@@ -0,0 +1,17 @@
+<sect1 id="chapter-getting">
+  <title id="title-getting">Getting GStreamer</title>
+  <qandaset>
+
+    <qandaentry>
+      <question id="getting-gstreamer">
+        <para>How do I get GStreamer ?</para>
+      </question>
+
+      <answer>
+        <para>
+You either ask us nicely for it or pay us big bucks.
+        </para>
+      </answer>
+    </qandaentry>
+  </qandaset>
+</sect1>
diff --git a/docs/faq/gstreamer-faq.xml b/docs/faq/gstreamer-faq.xml
new file mode 100644 (file)
index 0000000..f6f924b
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+
+<!ENTITY START SYSTEM "start.xml">
+<!ENTITY GENERAL SYSTEM "general.xml">
+<!ENTITY DEPENDENCIES SYSTEM "dependencies.xml">
+<!ENTITY GETTING SYSTEM "getting.xml">
+<!ENTITY USING SYSTEM "using.xml">
+<!ENTITY DEVELOPING SYSTEM "developing.xml">
+<!ENTITY TROUBLESHOOTING SYSTEM "troubleshooting.xml">
+
+]>
+
+<article class="faq">
+  <articleinfo>
+    <title>GStreamer FAQ</title>
+    <abstract>
+      <para>
+        This is the FAQ for GStreamer, a multimedia framework.
+        Questions and answers range from general information to
+        deep-down-and-dirty compilation issues.
+      </para>
+    </abstract>
+    
+    <revhistory>
+      <revision>
+        <revnumber>0.1</revnumber>
+        <date>2002-10-01</date>
+        <revremark>Initial conversion from FAQ database.</revremark>
+      </revision>
+    </revhistory>
+
+  </articleinfo>
+
+  &START;
+  &GENERAL;
+  &DEPENDENCIES;
+  &GETTING;
+  &USING;
+  &DEVELOPING;
+  &TROUBLESHOOTING;
+
+</article>
diff --git a/docs/faq/magic-pdf b/docs/faq/magic-pdf
new file mode 100644 (file)
index 0000000..abc274e
--- /dev/null
@@ -0,0 +1 @@
+<!ENTITY magic "pdf">
diff --git a/docs/faq/magic-png b/docs/faq/magic-png
new file mode 100644 (file)
index 0000000..6941e28
--- /dev/null
@@ -0,0 +1 @@
+<!ENTITY magic "png">
diff --git a/docs/faq/start.xml b/docs/faq/start.xml
new file mode 100644 (file)
index 0000000..ee3aa72
--- /dev/null
@@ -0,0 +1,16 @@
+<sect1 id="start">
+  <title id="start-title">Getting Started</title>
+  <para>
+So you're eager to get started learning about GStreamer.
+There's a few ways you can get started.
+<itemizedlist>
+<listitem>If you want to learn by reading about it, start with
+<xref linkend="title-general" endterm="title-general"/></listitem>
+<listitem>
+If you'd rather learn by trying it out, start with
+<xref linkend="title-getting" endterm="title-getting"/>
+</listitem>
+</itemizedlist>
+  </para>
+</sect1>
+
diff --git a/docs/faq/troubleshooting.xml b/docs/faq/troubleshooting.xml
new file mode 100644 (file)
index 0000000..93bb97b
--- /dev/null
@@ -0,0 +1,23 @@
+<sect1 id="chapter-troubleshooting">
+  <title id="title-troubleshooting">Troubleshooting GStreamer</title>
+  <qandaset>
+
+    <qandaentry>
+      <question id="troubleshooting-wiki">
+        <para>
+I'm having problems building or installing GStreamer. What should I do ?
+        </para>
+      </question>
+
+      <answer>
+        <para>
+We've started a step-by-step 
+<ulink url="http://gstreamer.net/wiki/?DichotomousKey">
+troubleshooting guide</ulink>. 
+Look there before asking, your problem might already have been solved by 
+someone else.
+        </para>
+      </answer>
+    </qandaentry>
+  </qandaset>
+</sect1>
diff --git a/docs/faq/using.xml b/docs/faq/using.xml
new file mode 100644 (file)
index 0000000..5a1566a
--- /dev/null
@@ -0,0 +1,105 @@
+<sect1 id="chapter-using">
+  <title id="title-using">Using GStreamer</title>
+  <qandaset>
+
+    <qandaentry>
+      <question id="using-gst-inspect">
+        <para>How do I tell what GStreamer plugins I have on my system ?</para>
+      </question>
+
+      <answer>
+        <para>
+To do this you use the gst-inspect
+command-line tool, which comes standard with GStreamer.
+Invoked without any arguments,
+<programlisting>
+$ gst-inspect
+</programlisting>
+will print out a listing of installed plugins.
+To learn more about a particular plugin, pass its name on the command line. 
+For example,
+<programlisting>
+$ gst-inspect volume
+</programlisting>
+will give you information about the volume plugin.
+        </para>
+        <para>
+Also, if you install the gst-editor package, you will have a graphical 
+plugin browser available, gst-inspect-gui.
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="using-bugs">
+        <para>Where should I report bugs ?</para>
+      </question>
+
+      <answer>
+        <para>
+Bug management is now hosted on GNOME's Bugzilla at
+<ulink url="http://bugzilla.gnome.org">http://bugzilla.gnome.org</ulink>,
+under the product GStreamer. 
+Using bugzilla you can view past bug history, report new bugs, etc.
+Bugzilla requires you to make an account here, which might seem cumbersome,
+but allows us to at least have a chance at contacting you for further
+information, as we will most likely have to.
+        </para>
+        <para>
+When doing a bug report, you should at least describe
+<itemizedlist>
+<listitem>your distribution</listitem>
+<listitem>
+how you installed GStreamer (from cvs, source, packages, which ?)</listitem>
+<listitem>if you installed GStreamer before</listitem>
+</itemizedlist>
+        </para>
+        <para>
+If you're new to GStreamer, it also is useful for us if you attach output of
+the gst-feedback command to your bug report.
+If you're having problem with a specific application (either one of ours,
+somebody else's, or your own), please also provide a log of gst-mask by
+running
+<programlisting>
+myapp --gst-mask=-1 > mask.log 2>&amp;1
+gzip mask.log
+</programlisting>
+(interrupting the program if it doesn't stop by itself)
+and attach mask.log.gz to your bug report
+        </para>
+      </answer>
+    </qandaentry>
+
+    <qandaentry>
+      <question id="using-gst-launch">
+        <para>How do I use the GStreamer command line interface ?</para>
+      </question>
+      <answer>
+        <para>
+You access the GStreamer command line interface using the command gst-launch.
+To decode an mp3 and play it through OSS, you could use
+<programlisting>
+gst-launch filesrc location=thesong.mp3 ! mad ! osssink
+</programlisting>.
+More examples can be found in the gst-launch man page.
+        </para>
+        <para>
+To automatically detect the right codec in a pipeline, try 
+<programlisting>
+gst-launch filesrc location=my-random-media-file.mpeg ! spider ! osssink
+</programlisting>.
+Try replacing osssink with sdlvideosink and see what happens.
+        </para>
+        <para>
+We also have a simple tool called gst-launch-ext used for debugging,
+which has predefined pipelines for you. This means you can just write
+<programlisting>
+gst-launch-ext (filename)
+</programlisting>
+and it will play the file if the extension is supported.  Note that no effort
+has been made for uninterrupted synchronized playback using this tool.
+        </para>
+      </answer>
+    </qandaentry>
+  </qandaset>
+</sect1>