mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-08 21:28:45 +00:00
213 lines
7.9 KiB
XML
213 lines
7.9 KiB
XML
<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>
|