| <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><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://www.5z.com/jirka/gob.html">GOB</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> |
| 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-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="htpp://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, preferrably 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.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 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 |
| 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> |