docs: remove FAQ which was moved into gst-docs module

This commit is contained in:
Tim-Philipp Müller 2016-11-14 17:46:07 +00:00
parent ca3b05b96d
commit d4f4707eda
19 changed files with 11 additions and 1620 deletions

View file

@ -1,4 +1,4 @@
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-docbook
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
# note: keep in sync with configure.ac
ACLOCAL_AMFLAGS = -I m4 -I common/m4

View file

@ -53,7 +53,7 @@ fi
CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-gtk-doc'
if test "x$package" = "xgstreamer"; then
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-docbook --enable-failing-tests --enable-poisoning"
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-failing-tests --enable-poisoning"
elif test "x$package" = "xgst-plugins-bad"; then
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-player-tests"
fi

View file

@ -466,7 +466,6 @@ dnl check for gobject-introspection
GOBJECT_INTROSPECTION_CHECK([1.31.1])
dnl check for documentation tools
AG_GST_DOCBOOK_CHECK
GTK_DOC_CHECK([1.12])
AG_GST_PLUGIN_DOCS([1.12])
@ -1072,7 +1071,6 @@ common/Makefile
common/m4/Makefile
docs/Makefile
docs/design/Makefile
docs/faq/Makefile
docs/gst/Makefile
docs/gst/gstreamer.types
docs/libs/Makefile
@ -1153,8 +1151,7 @@ Configuration
Package name : ${GST_PACKAGE_NAME}
Package origin : ${GST_PACKAGE_ORIGIN}
Documentation (manuals) : ${enable_docbook}
Documentation (API) : ${enable_gtk_doc}
API Documentation : ${enable_gtk_doc}
Debug logging : ${enable_gst_debug}
Tracing subsystem hooks : ${enable_gst_tracer_hooks}

View file

@ -1,9 +1,3 @@
if ENABLE_DOCBOOK
SUBDIRS_DOCBOOK = faq
else
SUBDIRS_DOCBOOK =
endif
if ENABLE_GTK_DOC
if ENABLE_PLUGIN_DOCS
PLUGIN_DOCS_DIRS = plugins
@ -16,8 +10,8 @@ endif
BUILT_SOURCES = version.entities
SUBDIRS = design gst libs $(PLUGIN_DOCS_DIRS) $(SUBDIRS_DOCBOOK)
DIST_SUBDIRS = design gst libs plugins faq slides xsl
SUBDIRS = design gst libs $(PLUGIN_DOCS_DIRS)
DIST_SUBDIRS = design gst libs plugins slides xsl
EXTRA_DIST = \
manuals.mak htmlinstall.mak \

View file

@ -6,12 +6,16 @@ IMPORTANT
Please make sure you've read and understood everything in this file
before you try changing documentation.
Some of the docbook-related bits in this README might be out of date now that
quite a bit of the documentation has moved into the gst-docs repository.
OVERVIEW
========
GStreamer has two sets of documentation that we maintain:
* API references, using gtk-doc (gstreamer, gstreamer-libs)
* "books", using DocBook/XML (faq, manual, pwg)
* FAQ / Application Development Manual / Plugin Writer's Guide / Tutorials -
these are maintained in markdown format and live in the gst-docs repository.
DOCBOOK NOTES
=============
@ -99,7 +103,7 @@ SPELL CHECKING
GTK-DOC NOTES
=============
* files under CVS control:
* files under revision control:
- Makefile.am
- gstreamer-sections.txt
describes which symbols later appear on one api-doc page

7
docs/faq/.gitignore vendored
View file

@ -1,7 +0,0 @@
Makefile
Makefile.in
.deps
build
html
*.pdf
*.ps

View file

@ -1,38 +0,0 @@
### this is the part you can customize if you need to
# base name of doc
DOC = faq
# formats defined for upload-doc.mak
FORMATS=html ps pdf
# main xml file
MAIN = $(DOC).xml
# all xml sources
XML = $(notdir $(wildcard $(srcdir)/*.xml))
# base style sheet
CSS = base.css
# image sources
PNG_SRC =
FIG_SRC = $(notdir $(wildcard $(srcdir)/*.fig))
# extra sources to copy in build directory
EXTRA_SRC =
### this is the generic bit and you shouldn't need to change this
# get the generic docbuilding Makefile stuff
include $(srcdir)/../manuals.mak
# get the generic upload target
include $(top_srcdir)/common/upload-doc.mak
### this is standard automake stuff
# package up all the source
EXTRA_DIST = $(SRC)
# install documentation
faqdir = $(docdir)/$(DOC)
faq_DATA = $(PDF_DAT) $(PS_DAT)
include $(srcdir)/../htmlinstall.mak

View file

@ -1,3 +0,0 @@
pre.programlisting {
background: #E8E8FF;
}

View file

@ -1,98 +0,0 @@
<sect1 id="chapter-dependencies">
<title id="title-dependencies">Dependencies</title>
<qandaset defaultlabel="qanda">
<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. None of the core developers has all of them installed. GStreamer
has only a few obligate dependencies : GLib 2.0, liborc, 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-x">
<para>Is GStreamer X independent ?</para>
</question>
<answer>
<para>
Yes, we have no hard X dependency in any of our modules. There are many
GStreamer applications that run fine without any need for X, for example
streaming servers, transcoding applications, or audio applications that
don't output any video. Other applications output video to a framebuffer,
custom-made hardware sinks, or via wayland.
</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://www.ladspa.org/"><citetitle>LADSPA</citetitle></ulink>,
we already have a wrapper plugin. This wrapper plug-in detects the LADSPA
plugins present on your system at run 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>
<para>
MIDI playback is provided by plugins such as wildmidi and timidity.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="dependencies-gnome">
<para>Does GStreamer depend on GNOME or GTK+ ?</para>
</question>
<answer>
<para>
No. But many of the applications developed for GStreamer do, including some
of our sample applications. Other applications use the Qt toolkit, or are
written for Mac OS/X or Windows. We aim to provide API that is toolkit
agnostic and can be used from any toolkit, desktop environment or operating
system.
</para>
</answer>
</qandaentry>
</qandaset>
</sect1>

View file

@ -1,221 +0,0 @@
<sect1 id="chapter-developing">
<title id="title-developing">Developing applications with GStreamer</title>
<qandaset defaultlabel="qanda">
<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 compilation 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>
$ libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-&GST_API_VERSION;` -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>
$ libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-&GST_API_VERSION; 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 (providing PKG_CONFIG_CHECK).
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="developing-uninstalled-gstreamer">
<para>How do I develop against an uninstalled GStreamer copy ?</para>
</question>
<answer>
<para>
It is possible to develop and compile against an uninstalled copy of
gstreamer and gst-plugins-* (for example, against git checkouts). This
allows you to develop against and test the latest GStreamer version
without having to install it and without interfering with your system-wide
GStreamer setup.
</para>
<para>
The easiest way too create such a setup is the
<ulink url="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/create-uninstalled-setup.sh">latest version of create-uninstalled-setup.sh</ulink>
</para>
<para>
This setup makes use of the
<ulink url="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/gst-uninstalled">latest version of gst-uninstalled</ulink>.
Running this script, you'll be in an environment where the uninstalled
tools and plugins will be used by default. Also, pkg-config will detect the
uninstalled copies before (and prefer them to) any installed copies.
</para>
<para>
Multiple uninstalled setups can be used in parallel. Have a look at
<ulink url="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/gst-uninstalled">gst-uninstalled</ulink>
to see how it determines which environment is used.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="developing-gconf">
<para>How can I use GConf to get the system-wide defaults ?</para>
</question>
<answer>
<para>
For GNOME applications it's a good idea to use GConf to find the default ways
of outputting audio and video. You can do this by using the 'gconfaudiosink'
and 'gconfvideosink' elements for audio and video output. They will take
care of everything GConf-related for you and automatically use the outputs
that the user configured. If you are using gconfaudiosink, your application
should set the 'profile' property.
</para>
</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 --mode=execute gdb /path/to/gst-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 <ulink url="irc://irc.freenode.net/#gstreamer">#gstreamer on irc.freenode.net</ulink>
For larger picture questions or getting more input from more persons,
a mail to gstreamer-devel is never a bad idea.
</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 git development version.
Any tarball or package that has a nano number of 1 is made from git 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 code?</para>
</question>
<answer>
<para>
The core and almost all plugin modules are basically coded in K&amp;R with
2-space indenting. Just follow what's already there and you'll be fine.
</para>
<para>
Individual plugins in gst-plugins-* or plugins that you want considered for
addition to one of the gst-plugins-* modules should be coded in the same style.
It's easier if everything is consistent. Consistency is, of course, the goal.
</para>
<para>
Simply run your code (only the *.c files, not the header files) through
<programlisting>
indent \
--braces-on-if-line \
--case-brace-indentation0 \
--case-indentation2 \
--braces-after-struct-decl-line \
--line-length80 \
--no-tabs \
--cuddle-else \
--dont-line-up-parentheses \
--continuation-indentation4 \
--honour-newlines \
--tab-size8 \
--indent-level2
</programlisting>
before submitting a patch. (This is using GNU indent.) There is also a
gst-indent script in the GStreamer core source tree in the tools directory
which wraps this and contains the latest option. The easiest way to get the
indenting right is probably to develop against a git checkout. The local
git commit hook will ensure correct indentation. We only require code files to
be indented, header files may be indented manually for better readability
(however, please use spaces for indenting, not tabs, even in header files).
</para>
<para>
<!-- TODO(ensonic): link is dead, pending question on desktop-devel
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>
<para>
Patches should be made against git master or the latest release and should be
in 'unified context' format (use diff -u -p). They should be attached to
a bug report (or feature request) in
<ulink url="http://bugzilla.gnome.org">bugzilla</ulink> rather than
sent to the mailing list.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="developing-translations">
<para>I have translated one of the module .po files into a new language. How do I get it included?</para>
</question>
<answer>
<para>GStreamer translations are uniformly managed through the Translation Project (http://translationproject.org). There are some instructions on how to join the Translation Project team and submit new translations at http://translationproject.org/html/translators.html.</para>
<para>New translations submitted via the Translation Project are merged periodically into git by the maintainers by running 'make download-po' in the various modules.</para>
</answer>
</qandaentry>
</qandaset>
</sect1>

View file

@ -1,78 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!ENTITY % image-entities SYSTEM "image.entities">
%image-entities;
<!ENTITY % version-entities SYSTEM "version.entities">
%version-entities;
<!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 TROUBLESHOOTING SYSTEM "troubleshooting.xml">
<!ENTITY GIT SYSTEM "git.xml">
<!ENTITY DEVELOPING SYSTEM "developing.xml">
<!ENTITY LEGAL SYSTEM "legal.xml">
]>
<article class="faq" id="index">
<articleinfo>
<title>GStreamer FAQ (&GST_VERSION;)</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.2.1</revnumber>
<date>2006-05-19</date>
<revremark>Some updates for GStreamer-0.10</revremark>
</revision>
<revision>
<revnumber>0.2.0</revnumber>
<date>2006-03-16</date>
<revremark>Review and update whole document.</revremark>
</revision>
<revision>
<revnumber>0.1.1</revnumber>
<date>2003-04-24</date>
<revremark>Added Q&amp;A about developing with uninstalled copy.</revremark>
</revision>
<revision>
<revnumber>0.1.0</revnumber>
<date>2002-10-01</date>
<revremark>Initial conversion from FAQ database.</revremark>
</revision>
</revhistory>
-->
</articleinfo>
&START;
&GENERAL;
&DEPENDENCIES;
&GETTING;
&USING;
&TROUBLESHOOTING;
&GIT;
&DEVELOPING;
&LEGAL;
</article>

View file

@ -1,213 +0,0 @@
<sect1 id="chapter-general">
<title id="title-general">General</title>
<qandaset defaultlabel="qanda">
<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 especially when using the high-level object called playbin.
</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><para>C is extremely portable.</para></listitem>
<listitem><para>C is fast.</para></listitem>
<listitem><para>It is easy to make language bindings for libraries written in C.
</para></listitem>
<listitem><para>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://live.gnome.org/Vala">Vala</ulink>.</para></listitem>
<listitem><para>Use of C integrates nicely with Gtk+ and GNOME. Some people like
this a lot, but neither Gtk+ nor GNOME are required by GStreamer.</para></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>
Many media player applications have chosen GStreamer for their backend.
Also a couple of media format conversion tools have been written using the powers of GStreamer.
With the advent of GStreamer-0.10 several media editing applications have been started.
</para>
<para>
For a list of projects, look at the
<ulink url="http://gstreamer.freedesktop.org/apps/">application list</ulink>
on the GStreamer project website.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="general-format">
<para>Does GStreamer support the format of my media files?</para>
</question>
<answer>
<para>
GStreamer aims to support every format imaginable, but that doesn't mean the
developers have managed to achieve that aim yet. If a GStreamer enabled
application doesn't play back your files, you can help us solve that problem
by <ulink url="http://bugzilla.gnome.org">filing an enhancement request
bug</ulink> for that format. If you have it, please provide:
<itemizedlist>
<listitem><para>links to other players, preferably Open Source and working
on Unix</para></listitem>
<listitem><para>links to explanations of the format.</para></listitem>
<listitem><para>ways to obtain mediafiles in that format to test.
</para></listitem>
</itemizedlist>
</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-2.1.html">GNU LGPL 2.1</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 in gst-plugins package. 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>
<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>
</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
pulseaudio, ESD, aRTSd, Jack and others.
</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. It also works on Win32 and Mac OS X,
but it may still be a bit challenging to get everything up and running.
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.
GStreamer is officialy bundled with the GNOME desktop, as lots of packages
(like gnome-media, totem and rhythmbox) are using it.
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 (planned for KDE 4).
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,
made a simple video player and using it in some audio players (JuK and AmaroK).
</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>

View file

@ -1,164 +0,0 @@
<sect1 id="chapter-getting">
<title id="title-getting">Getting GStreamer</title>
<qandaset defaultlabel="qanda">
<qandaentry>
<question id="getting-gstreamer">
<para>How do I get GStreamer ?</para>
</question>
<answer>
<para>
Generally speaking, you have three options, ranging from easy to hard :
<itemizedlist>
<listitem><para><link linkend="getting-gstreamer-packages">
distribution-specific packages</link></para></listitem>
<listitem><para><link linkend="getting-gstreamer-source">
source tarballs</link></para></listitem>
<listitem><para><link linkend="getting-gstreamer-packages">
git</link></para></listitem>
</itemizedlist>
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="gstreamer-versions-explained">
<para>There seem to be different GStreamer versions, like 0.10 and 1.0?
What's up with that?</para>
</question>
<answer>
<para>
GStreamer-0.10 and GStreamer-1.0 are the main version
&apos;series&apos; currently in use. For all practical purposes
you should think of them as two completely different libraries
which just happen to have a similar name. They can be installed
in parallel and are completely independent.
</para>
<para>
For the 0.10 version you will need the 0.10 plugins and bindings
(gst-plugins 0.10.x, gst-ffmpeg 0.10.x, gst-python 0.10.x etc.), while
for the 1.0 version you will need the 1.0 plugins and bindings
(ie. gst-plugins-base 1.0.x, gst-plugins-good 1.0.x,
gst-plugins-ugly 1.0.x, gst-plugins-bad 1.0.x, gst-ffmpeg 1.0.x,
gst-python 1.0.x). The micro version for each main version does
not have to match exactly, only the major versions needs to be the
same (ie. it may be that the current gst-plugins-good version is
1.0.6 and the current GStreamer core version is 1.0.13).
GStreamer-1.0 will not see or use any of the GStreamer-0.10 plugins
and vice versa.
</para>
<para>
All GStreamer command line tools are suffixed with their main
version, e.g. gst-launch-0.10 and gst-launch-1.0, or gst-inspect-0.10
and gst-inspect-1.0.
</para>
<para>
Applications will use either GStreamer-0.10 or GStreamer-1.0, since
the 0.10 and 1.0 API/ABI are not compatible.
</para>
<para>
Odd-numbered versions such as 0.9.x, 0.11.x, etc. are unstable
developer releases that should generally not be used.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="gstreamer-versions-which-one-to-get">
<para>So which GStreamer version should I get?</para>
</question>
<answer>
<para>
You should download GStreamer-1.0. GStreamer-0.10 is end-of-life.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="getting-gstreamer-source">
<para>How can I install GStreamer from source ?</para>
</question>
<answer>
<para>
We provide tarballs of our releases on our
<!-- <ulink url="http://sourceforge.net/project/showfiles.php?group_id=1936">
Sourceforge files page.</ulink>
</para>
<para>
We also put source tarballs on our -->own site, at
<ulink url="http://gstreamer.freedesktop.org/src/">
http://gstreamer.freedesktop.org/src/
</ulink>
</para>
<para>
When compiling from source, make sure you specify PKG_CONFIG_PATH correctly
when building against GStreamer. For example, if you configured GStreamer
with the default prefix (which is /usr/local), then you need to
<programlisting>
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
</programlisting>
before building gst-plugins.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="getting-gstreamer-packages">
<para>Are there premade binaries available ?</para>
</question>
<answer>
<para>
Yes we currently provide <ulink url="http://gstreamer.freedesktop.org/pkg/">precompiled packages for Windows, OS/X, Android and iOS</ulink>.
</para>
<para>
We currently do not provide packages for Linux distributions, but
rather rely on the distributions for that. GStreamer packages should
be available for all major (and minor) distributions.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="getting-gstreamer3">
<para>Why don't you provide premade binaries for distribution XY ?</para>
</question>
<answer>
<para>
GStreamer is run on a volunteer basis. The package that are provided are made by non-paid people who do this on their own time. The distributions we support with binaries are the distributions that we have people who have volunteered to make binaries for. If you are interested in maintaining GStreamer binaries for other distributions or Unices we would be happy to hear from you. Contact us through the GStreamer-devel mailing list.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="getting-gstreamer4">
<para>I am having trouble compiling GStreamer on my LFS installation, why ?</para>
</question>
<answer>
<para>
If you are running LFS our basic opinion is that you should be knowledgeable enough to solve any build issues you get on your own. Being volunteered based we can't promise support to anyone of course, but are you using LFS consider yourself extra unsupported. We
neither can or want to know enough, about how your unique system is configured, to be able to help you. That said, if you come to the #gstreamer channel on irc.openprojects.net we might of course be able to give you some general hints and pointers.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="getting-gstreamer-git">
<para>How do I get GStreamer through git ?</para>
</question>
<answer>
<para>
see this page : <ulink url="http://gstreamer.freedesktop.org/dev/">http://gstreamer.freedesktop.org/dev/</ulink> for git access. (anonymous and developer)
</para>
</answer>
</qandaentry>
</qandaset>
</sect1>

View file

@ -1,164 +0,0 @@
<sect1 id="chapter-git">
<title id="title-git">Building GStreamer from git</title>
<qandaset defaultlabel="qanda">
<qandaentry>
<question id="git-uninstalled">
<para>
Is there a way to test or develop against GStreamer from git without
interfering with my system GStreamer installed from packages?
</para>
</question>
<answer>
<para>
Yes! You have two options: you can either run GStreamer in an uninstalled setup
(see <link linkend="developing-uninstalled-gstreamer">How do I develop against
an uninstalled GStreamer copy ?</link>), or you can use GNOME's jhbuild.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="git-anon">
<para>
How do I check out GStreamer from git ?
</para>
</question>
<answer>
<para>
GStreamer is hosted on Freedesktop.org. GStreamer consists of various parts.
In the beginning, you will be interested in the "gstreamer" module, containing
the core, and "gst-plugins-base" and "gst-plugins-good", containing the basic
set of plugins. Finally, you may also be interested in "gst-plugins-ugly",
"gst-plugins-bad" and "gst-ffmpeg" for more comprehensive media format support.
</para>
<para>
To check out the latest git version of the core and the basic modules, use
<programlisting>
for module in gstreamer gst-plugins-base gst-plugins-good; do
git clone git://anongit.freedesktop.org/git/gstreamer/$module ;
done
</programlisting>
This will create three directories in your current directory: "gstreamer",
"gst-plugins-base", and "gst-plugins-good". If you want to get another module,
use the above git clone command line and replace $module with the name of the
module. Once you have checked out these modules, you will need to change into
each directory and run ./autogen.sh, which will among other things checkout
the common module underneath each module checkout.
</para>
<para>
The <ulink url="http://gstreamer.freedesktop.org/modules/">modules page</ulink>
has a list of active ones together with a short description.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="git-developer">
<para>
How do I get developer access to GStreamer git ?
</para>
</question>
<answer>
<para>
If you want to gain developer access to GStreamer git, you should ask for
it on the development lists, or ask one of the maintainers directly. We will
usually only consider requests by developers who have been active and
competent GStreamer contributors for some time already. If you are not
already a registered developer with a user account on Freedesktop.org,
you will then have to provide them with:
<orderedlist>
<listitem><para>your desired unix username</para></listitem>
<listitem><para>your full name</para></listitem>
<listitem><para>your e-mail address</para></listitem>
<listitem><para>a copy of your public sshv2 identity.
If you do not have this yet, you can generate it by running
"ssh-keygen -t rsa -f ~/.ssh/id_rsa.pub-fdo". The resulting public key
will be in <filename>~/.ssh/id_rsa.pub-fdo</filename></para></listitem>
<listitem><para>your GPG fingerprint. This would allow you to
add and remove ssh keys to your account.
</para></listitem>
</orderedlist>
Once you have all these items, see <ulink url="http://freedesktop.org/wiki/AccountRequests">http://freedesktop.org/wiki/AccountRequests</ulink> for what to do with them.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="autogen-libtool">
<label>I ran autogen.sh, but it fails with aclocal errors. What's wrong ?</label>
<para>
<programlisting>
+ running aclocal -I m4 -I common/m4 ...
aclocal: configure.ac: 8: macro `AM_DISABLE_STATIC' not found in library
aclocal: configure.ac: 17: macro `AM_PROG_LIBTOOL' not found in library
aclocal failed
</programlisting>
What's wrong ?
</para>
</question>
<answer>
<para>
aclocal is unable to find two macros installed by libtool in a file called
libtool.m4. Normally this would indicate that you don't have libtool, but
that would mean autogen.sh would have failed on not finding libtool.
</para>
<para>
It is more likely that you installed automake (which provides aclocal) in
a different prefix than libtool. You can check this by examining in what
prefix both aclocal and libtool are installed.
</para>
<para>
You can do three things to fix this :
<orderedlist>
<listitem><para>install automake in the same prefix as libtool</para></listitem>
<listitem><para>force use of the automake installed in the same prefix as libtool
by using the --with-automake option</para></listitem>
<listitem><para>figure out what prefix libtool has been installed to and point
aclocal to the right location by running
<programlisting>
export ACLOCAL_FLAGS="-I $(prefix)/share/aclocal"
</programlisting>
where you replace prefix with the prefix where libtool was installed.
</para></listitem>
</orderedlist>
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="werror">
<para>
Why is "-Wall -Werror" being used ?
</para>
</question>
<answer>
<para>
"-Wall" is being used because it finds a lot of possible problems with code.
Not all of them are necessarily a problem, but it's better to have the compiler
report some false positives and find a work-around than to spend time
chasing a bug for days that the compiler was giving you hints about.
</para>
<para>
"-Werror" is turned off for actual releases. It's turned on by default for
git and prereleases so that people actually notice and fix problems found by
"-Wall". We want people to actively hit and report or fix them.
</para>
<para>
If for any reason you want to bypass these flags and you are certain it's the
right thing to do, you can run
<programlisting>make ERROR_CFLAGS=""</programlisting>
to clear the CFLAGS for error checking.
</para>
</answer>
</qandaentry>
</qandaset>
</sect1>

View file

@ -1,215 +0,0 @@
<sect1 id="chapter-legal">
<title id="title-legal">GStreamer Legal Issues</title>
<para>
This part of the FAQ is based on a series of questions we asked the FSF
to understand how the GPL works and how patents affects the GPL. These
questions were answered by the <ulink url="http://www.fsf.org/">
FSF lawyers</ulink>, so we view them as the
final interpretation on how the GPL and LGPL interact with patents in our
opinion. This consultancy was paid for by
<ulink url="http://www.fluendo.com/">Fluendo</ulink>
in order to obtain clear and quotable answers. These answers were certified
by the FSF lawyer team and verified by FSF lawyer and law professor Eben Moglen.
</para>
<qandaset defaultlabel="qanda">
<qandaentry>
<question id="legal-distribute-three">
<para>
Can someone distribute the combination of
<itemizedlist>
<listitem><para>GStreamer, the LGPL library</para></listitem>
<listitem><para>MyPlayer, a GPL playback application</para></listitem>
<listitem><para>The binary-only Sorenson decoder</para></listitem>
</itemizedlist>
together in one distribution/operating system ? If not, what
needs to be changed to make this possible ?
</para>
</question>
<answer>
<para>
This would be a problem, because the GStreamer and MyPlayer licenses would
forbid it. In order to link GStreamer to MyPlayer, you need to use section
3 of the LGPL to convert GStreamer to GPL. The GPL version of GStreamer
forbids linking to the Sorenson decoder. Anyway, the MyPlayer GPL
license forbids this.
</para>
<para>
If the authors of MyPlayer want to permit this, we have an
exception for them: the controlled interface exception from the FAQ.
The idea of this is that you can't get around the GPL just by including
a LGPL bit in the middle.
</para>
<para>
Note: MyPlayer is a completely fictituous application at the time of writing.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="legal-binary-plugin">
<para>
Suppose Apple wants to write a binary-only proprietary
plugin for GStreamer to decode Sorenson video, which will be shipped
stand-alone, not part of a package like in the question above.
Can Apple distribute this binary-only plugin ?
</para>
</question>
<answer>
<para>
Yes, modulo certain reverse engineering requirements in section 6 of
the LGPL.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="legal-gpl-program">
<para>
If a program released under the GPL uses a library that
is LGPL, and this library can dlopen plug-ins at runtime, what are the
requirements for the license of the plug-in ?
</para>
</question>
<answer>
<para>
You may not distribute the plug-in with the GPL application.
Distributing the plug-in alone, with the knowledge that it will be used
primarily by GPL software is a bit of an edge case. We will not advise you
that it would be safe to do so, but we also will not advise you that it
would be absolutely forbidden.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="legal-safe-countries">
<para>
Can someone in a country that does not have software patents distribute
code covered by US patents under the GPL to people in, for example, Norway ?
If he/she visits the US, can he/she be arrested ?
</para>
</question>
<answer>
<para>
Yes, he can.
No, there are no criminal penalties for patent infringement in the US.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="legal-unsafe-countries">
<para>
Can someone from the US distribute software covered by
US patents under the GPL to people in Norway ? To people in the US ?
</para>
</question>
<answer>
<para>
This might infringe some patents, but the GPL would not forbid it
absent some actual restriction, such as a court judgement or agreement.
The US government is empowered to refuse importation of patent
infringing devices, including software.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="legal-gpl-library-patents">
<para>
There are a lot of GPL- or LGPL-licensed libraries that
handle media codecs which have patents. Take mad, an mp3 decoding library,
as an example. It is licensed under the GPL. In countries where patents
are valid, does this invalidate the GPL license for this project ?
</para>
</question>
<answer>
<para>
The mere existence of a patent which might read on the program does not
change anything. However, if a court judgement or other agreement
prevents you from distributing libmad under GPL terms, you can not
distribute it at all.
</para>
<para>
The GPL and LGPL say (sections 7 and 11):
<quote>If you cannot distribute so as to satisfy simultaneously your
obligations under this License and any other pertinent obligations, then
as a consequence you may not distribute the Library at all.</quote>
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="legal-gpl-court-judgment">
<para>
So let's say there is a court judgement. Does this mean that the GPL license is
invalid for the project everywhere, or only in the countries where it conflicts
with the applicable patents ?
</para>
</question>
<answer>
<para>
The GPL operates on a per-action, not per-program basis. That is, if
you are in a country which has software patents, and a court tells you
that you cannot distribute (say) libmad in source code form, then you
cannot distribute libmad at all. This doesn't affect anyone else.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="legal-gpl-and-binary">
<para>
Patented decoding can be implemented in GStreamer either by
having a binary-only plugin do the decoding, or by writing a plugin
(with any applicable license) that links to a binary-only library.
Does this affect the licensing issues involved in regards to GPL/LGPL?
</para>
</question>
<answer>
<para>
No.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="legal-gpl-patent-distribution">
<para>
Is it correct that you cannot distribute the GPL mad library to
decode mp3's, *even* in the case where you have obtained a valid license
for decoding mp3 ?
</para>
</question>
<answer>
<para>
The only GPL-compatible patent licenses are those which are open to
all parties posessing copies of GPL software which practices the
teachings of the patent.
</para>
<para>
If you take a license which doesn't allow others to distribute
original or modified versions of libmad practicing the same patent
claims as the version you distribute, then you may not distribute at
all.
</para>
</answer>
</qandaentry>
</qandaset>
</sect1>

View file

@ -1,27 +0,0 @@
<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>
<para>
If you want to learn by reading about it, start with
<xref linkend="title-general" endterm="title-general"/>
</para>
</listitem>
<listitem>
<para>
If you'd rather learn by trying it out, start with
<xref linkend="title-getting" endterm="title-getting"/>
</para>
</listitem>
<listitem>
<para>
If you want to live on the bleeding edge and develop and use git, see
<xref linkend="title-git" endterm="title-git"/>
</para>
</listitem>
</itemizedlist>
</para>
</sect1>

View file

@ -1,172 +0,0 @@
<sect1 id="chapter-troubleshooting">
<title id="title-troubleshooting">Troubleshooting GStreamer</title>
<qandaset defaultlabel="qanda">
<qandaentry>
<question id="troubleshooting-missing-plug-in">
<para>
Some application is telling me that I am missing a plug-in. What do I do ?
</para>
</question>
<answer>
<para>
Well, start by checking if you really are missing the plug-in.
<programlisting>
gst-inspect-1.0 (plug-in)
</programlisting>
and replace (plug-in) with the plug-in you think is missing.
If this doesn't return any result, then you either don't have it or your
registry cannot find it.
</para>
<para>
If you're not sure either way, then chances are good that you don't have
it. You should get the plug-in and run gst-register to register it.
How to get the plug-in depends on your distribution.
<itemizedlist>
<listitem><para>if you run GStreamer using packages for your distribution, you
should check what packages are available for your distribution and see
if any of the available packages contains the plug-in.
</para></listitem>
<listitem><para>if you run GStreamer from a source install, there's a good chance
the plug-in didn't get built because you are missing an external library.
When you ran configure, you should have gotten output of what plug-ins are
going to be built. You can re-run configure to see if it's there.
If it isn't, there is a good reason why it is not getting built.
The most likely is that you're missing the library you need for it.
Check the README file in gst-plugins to see what library you need.
Make sure to remember to re-run configure after installing the supporting
library !
</para></listitem>
<listitem><para>
if you run GStreamer from git, the same logic applies as for a source install.
Go over the reasons why the plug-in didn't get configured for build.
Check output of config.log for a clue as to why it doesn't get built if
you're sure you have the library needed installed in a sane place.
</para></listitem>
</itemizedlist>
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="troubleshooting-old-plug-ins">
<para>
I get an error that says something like
(process:26626): GLib-GObject-WARNING **: specified instance size for type
`DVDReadSrc' is smaller than the parent type's `GstElement' instance size
What's wrong ?
</para>
</question>
<answer>
<para>
If you run GStreamer from git uninstalled, it means that something changed in
the core that requires a recompilation in the plugins. Recompile the
plugins by doing "make clean &amp;&amp; make".
</para>
<para>
If you run GStreamer installed, it probably means that you run the plugins
against a different (incompatible) version than they were compiled against,
which ususally means that you run multiple installations of GStreamer.
Remove the old ones and - if needed - recompile again to ensure that it is
using the right version.
</para>
<para>
Note that we strongly recommend using Debian or RPM packages, since you will
not get such issues if you use provided packages.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="troubleshooting-segfault">
<para>
The GStreamer application I used stops with a segmentation fault. What can
I do ?
</para>
</question>
<answer>
<para>
There are two things you can do. If you compiled GStreamer with specific
optimization compilation flags, you should try recompiling GStreamer,
the application and the plug-ins without any optimization flags. This allows
you to verify if the problem is due to optimization or due to bad code.
Second, it will also allow you to provide a reasonable backtrace in case
the segmentation fault still occurs.
</para>
<para>
The second thing you can do is look at the backtrace to get an idea of where
things are going wrong, or give us an idea of what is going wrong.
To provide a backtrace, you should
<orderedlist>
<listitem><para>
run the application in gdb by starting it with
<programlisting>
gdb (gst-application)
</programlisting>
(If the application is in a source tree instead of installed on the system,
you might want to put "libtool" before "gdb")
</para></listitem>
<listitem><para>
Pass on the command line arguments to the application by typing
<programlisting>
set args (the arguments to the application)
</programlisting>
at the (gdb) prompt
</para></listitem>
<listitem><para>
Type "run" at the (gdb) prompt and wait for the application to
segfault. The application will run a lot slower, however.
</para></listitem>
<listitem><para>
After the segfault, type "bt" to get a backtrace. This is a stack of
function calls detailing the path from main () to where the code is
currently at.
</para></listitem>
<listitem><para>
If the application you're trying to debug contains threads, it is also
useful to do
<programlisting>
info threads
</programlisting>
and get backtraces of all of the threads involved, by switching to
a different thread using "thread (number)" and then again requesting
a backtrace using "bt".
</para></listitem>
<listitem><para>
If you can't or don't want to work out the problem yourself, a copy and paste
of all this information should be included in your
<link linkend="using-bugs-where">bug report</link>.
</para></listitem>
</orderedlist>
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="troubleshooting-gst-register">
<para>
On my system there is no gst-register command.
</para>
</question>
<answer>
<para>
Since GStreamer version 0.10 this is not needed anymore. The registry will
be rebuilt automatically. If you suspect the registry is broken, just delete the
<filename>registry.*.xml</filename> files under <filename>$HOME/.gstreamer-1.X/</filename>
and run
<programlisting>
gst-inspect-1.0
</programlisting>
to rebuild the registry.
</para>
</answer>
</qandaentry>
</qandaset>
</sect1>

View file

@ -1,203 +0,0 @@
<sect1 id="chapter-using">
<title id="title-using">Using GStreamer</title>
<qandaset defaultlabel="qanda">
<qandaentry>
<question id="using-getting-started">
<para>Ok, I've installed GStreamer. What can I do next ?</para>
</question>
<answer>
<para>
First of all, verify that you have a working registry and that you can
inspect them by typing
<programlisting>
$ gst-inspect-1.0 fakesrc
</programlisting>
This should print out a bunch of information about this particular element.
If this tells you that there is "no such element or plugin", you haven't
installed GStreamer correctly. Please check
<link linkend="chapter-getting">how to get GStreamer</link>
If this fails with any other message, we would appreciate a
<link linkend="using-bugs-where">bug report</link>.
</para>
<para>
It's time to try out a few things. Start with gst-launch and two plug-ins
that you really should have : fakesrc and fakesink. They do nothing except
pass empty buffers. Type this at the command-line :
<programlisting>
$ gst-launch-1.0 -v fakesrc silent=0 num-buffers=3 ! fakesink silent=0
</programlisting>
This will print out output that looks similar to this :
<programlisting>
RUNNING pipeline ...
fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 0) 0x8057510"
fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 0) 0x8057510"
fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 1) 0x8057510"
fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 1) 0x8057510"
fakesrc0: last-message = "get ******* (fakesrc0:src)gt; (0 bytes, 2) 0x8057510"
fakesink0: last-message = "chain ******* (fakesink0:sink)lt; (0 bytes, 2) 0x8057510"
execution ended after 5 iterations (sum 301479000 ns, average 60295800 ns, min 3000 ns, max 105482000 ns)
</programlisting>
(Some parts of output have been removed for clarity) If it looks similar, then
GStreamer itself is running correctly.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="using-sound">
<para>Can my system play sound through GStreamer ?</para>
</question>
<answer>
<para>
You can test this by trying to play a sine tone. For this, you need to
link the audiotestsrc element to an output element that matches your hardware.
A (non-complete) list of output plug-ins for audio is
<itemizedlist>
<listitem><para>pulsesink for Pulseaudio output</para></listitem>
<listitem><para>osssink for OSS output</para></listitem>
<listitem><para>esdsink for ESound output</para></listitem>
<listitem><para>alsasink for ALSA output</para></listitem>
<listitem><para>alsaspdifsink for ALSA S/PDIF output</para></listitem>
<listitem><para>jackaudiosink for JACK output</para></listitem>
</itemizedlist>
First of all, run gst-inspect-1.0 on the output plug-in you want to use to
make sure you have it installed. For example, if you use Pulseaudio, run
<programlisting>
$ gst-inspect-1.0 pulsesink
</programlisting>
and see if that prints out a bunch of properties for the plug-in.
</para>
<para>
Then try to play the sine tone by running
<programlisting>
$ gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! pulsesink
</programlisting>
and see if you hear something. Make sure your volume is turned up,
but also make sure it is not too loud and you are not wearing your headphones.
</para>
<para>
In GNOME, you can configure audio output for most applications by running
<programlisting>
$ gstreamer-properties
</programlisting>
which can also be found in the start menu (Applications -> Preferences ->
Multimedia Systems Selector). In KDE, there is not yet a shared way of
setting audio output for all applications; however, applications such
as Amarok allow you to specify an audio output in their preferences dialog.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="using-gst-inspect">
<para>How can I see 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-1.0
</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-1.0 volume
</programlisting>
will give you information about the volume plugin.
</para>
</answer>
</qandaentry>
<qandaentry>
<question id="using-bugs-where">
<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>
</answer>
</qandaentry>
<qandaentry>
<question id="using-bugs-how">
<para>How should I report bugs ?</para>
</question>
<answer>
<para>
When doing a bug report, you should at least describe
<itemizedlist>
<listitem><para>your distribution</para></listitem>
<listitem><para>
how you installed GStreamer (from git, source, packages, which ?)</para></listitem>
<listitem><para>if you installed GStreamer before</para></listitem>
</itemizedlist>
</para>
<para>
If the application you are having problems with is segfaulting, then
provide us with the necessary gdb output. See
<xref linkend="troubleshooting-segfault" endterm="troubleshooting-segfault"/>
</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 Pulseaudio, you could use
<programlisting>
gst-launch-1.0 filesrc location=thesong.mp3 ! mad ! pulsesink
</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-1.0 filesrc location=my-random-media-file.mpeg ! decodebin !
pulsesink
</programlisting>.
or
<programlisting>
gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin !
videoconvert ! xvimagesink
</programlisting>
Something more complicated:
<programlisting>
gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin name=decoder
decoder. ! videoconvert ! xvimagesink
decoder. ! audioconvert ! pulsesink
</programlisting>
</para>
<para>
We also have a basic media playing plugin that will take care of most things
for you. This plugin is called playbin. Try this:
<programlisting>
gst-launch-1.0 playbin uri=file:///home/joe/my-random-media-file.mpeg
</programlisting>
This should play the file if the format is supported, ie. you have all the
necessary demuxing and decoding and some output plugins installed.
</para>
</answer>
</qandaentry>
</qandaset>
</sect1>

View file

@ -75,7 +75,6 @@ documentation.
--with-package-origin='http://gstreamer.freedesktop.org' \
--enable-debug \
--enable-gtk-doc \
--enable-docbook \
--enable-introspection=yes
#make %{?_smp_mflags}