mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
faq: Use blockquotes for questions
Having titles for (long) question was looking very bad
This commit is contained in:
parent
7e5ffd20aa
commit
ee72329392
8 changed files with 100 additions and 89 deletions
|
@ -1,6 +1,6 @@
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
|
||||||
## Why are there so many dependencies ?
|
> Why are there so many dependencies ?
|
||||||
|
|
||||||
Making a full-featured media framework is a huge undertaking in
|
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
|
itself. By using the work done by others, we both reduce the amount of
|
||||||
|
@ -17,7 +17,7 @@ of the other dependencies are optional.
|
||||||
So, in closing, let's rephrase the question to “Why are you giving me so
|
So, in closing, let's rephrase the question to “Why are you giving me so
|
||||||
many choices and such a rich environment ?”
|
many choices and such a rich environment ?”
|
||||||
|
|
||||||
## Is GStreamer X11 independent? Can it be used headless?
|
> Is GStreamer X11 independent? Can it be used headless?
|
||||||
|
|
||||||
Yes, we have no hard dependency on X11 or any other windowing system in
|
Yes, we have no hard dependency on X11 or any other windowing system in
|
||||||
any of our modules. There are many GStreamer applications that run fine
|
any of our modules. There are many GStreamer applications that run fine
|
||||||
|
@ -26,7 +26,7 @@ for example streaming servers, transcoding applications, or audio
|
||||||
applications that don't output any video. Other applications output
|
applications that don't output any video. Other applications output
|
||||||
video to a framebuffer, custom-made hardware sinks, or via wayland.
|
video to a framebuffer, custom-made hardware sinks, or via wayland.
|
||||||
|
|
||||||
## What is GStreamer's position on efforts such as LADSPA or LV2?
|
> What is GStreamer's position on efforts such as LADSPA or LV2?
|
||||||
|
|
||||||
GStreamer actively supports such efforts, and in the case of [LADSPA][ladspa]
|
GStreamer actively supports such efforts, and in the case of [LADSPA][ladspa]
|
||||||
or [LV2][lv2] we already have wrapper plugins. These wrapper plug-ins detect
|
or [LV2][lv2] we already have wrapper plugins. These wrapper plug-ins detect
|
||||||
|
@ -36,7 +36,7 @@ available as GStreamer elements.
|
||||||
[ladspa]: https://en.wikipedia.org/wiki/LADSPA
|
[ladspa]: https://en.wikipedia.org/wiki/LADSPA
|
||||||
[lv2]: http://lv2plug.in/
|
[lv2]: http://lv2plug.in/
|
||||||
|
|
||||||
## Does GStreamer support MIDI ?
|
> Does GStreamer support MIDI ?
|
||||||
|
|
||||||
There is some rudimentary MIDI support in GStreamer, but it's not complete yet.
|
There is some rudimentary MIDI support in GStreamer, but it's not complete yet.
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ MIDI playback is provided by plugins such as `midiparse`, `fluiddec`,
|
||||||
|
|
||||||
[alsamidisrc]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-alsamidisrc.html
|
[alsamidisrc]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-alsamidisrc.html
|
||||||
|
|
||||||
## Does GStreamer depend on GNOME or GTK+ ?
|
> Does GStreamer depend on GNOME or GTK+ ?
|
||||||
|
|
||||||
No, it's just that many of the applications developed for GStreamer happen to
|
No, it's just that many of the applications developed for GStreamer happen to
|
||||||
be GNOME or GTK+ applications, including some of our sample applications. There
|
be GNOME or GTK+ applications, including some of our sample applications. There
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Developing applications with GStreamer
|
# Developing applications with GStreamer
|
||||||
|
|
||||||
## How do I compile programs that use GStreamer ?
|
> How do I compile programs that use GStreamer ?
|
||||||
|
|
||||||
<!-- FIXME: update for windows, macOS, and meson build, get rid of libtool things -->
|
<!-- FIXME: update for windows, macOS, and meson build, get rid of libtool things -->
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ For bigger projects, you should integrate pkg-config use in your
|
||||||
Makefile, or integrate with autoconf using the pkg.m4 macro (providing
|
Makefile, or integrate with autoconf using the pkg.m4 macro (providing
|
||||||
`PKG_CONFIG_CHECK`).
|
`PKG_CONFIG_CHECK`).
|
||||||
|
|
||||||
## How do I develop against an uninstalled GStreamer copy ?
|
> How do I develop against an uninstalled GStreamer copy ?
|
||||||
|
|
||||||
It is possible to develop and compile against an uninstalled copy
|
It is possible to develop and compile against an uninstalled copy
|
||||||
of gstreamer and gst-plugins-\* (for example, against git checkouts).
|
of gstreamer and gst-plugins-\* (for example, against git checkouts).
|
||||||
|
@ -69,7 +69,7 @@ environment is used.
|
||||||
[gst-uninstalled]: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/gst-uninstalled
|
[gst-uninstalled]: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/gst-uninstalled
|
||||||
[create-uninstalled]: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/create-uninstalled-setup.sh
|
[create-uninstalled]: http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/create-uninstalled-setup.sh
|
||||||
|
|
||||||
## How can I use GConf to get the system-wide defaults ?
|
> How can I use GConf to get the system-wide defaults ?
|
||||||
|
|
||||||
For GNOME applications it's a good idea to use GConf to find the
|
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
|
default ways of outputting audio and video. You can do this by using the
|
||||||
|
@ -78,7 +78,7 @@ output. They will take care of everything GConf-related for you and
|
||||||
automatically use the outputs that the user configured. If you are using
|
automatically use the outputs that the user configured. If you are using
|
||||||
gconfaudiosink, your application should set the 'profile' property.
|
gconfaudiosink, your application should set the 'profile' property.
|
||||||
|
|
||||||
## How do I debug these funny shell scripts that libtool makes ?
|
> How do I debug these funny shell scripts that libtool makes ?
|
||||||
|
|
||||||
When you link a program against uninstalled GStreamer using
|
When you link a program against uninstalled GStreamer using
|
||||||
libtool, funny shell scripts are made to modify your shared object
|
libtool, funny shell scripts are made to modify your shared object
|
||||||
|
@ -87,7 +87,7 @@ gst-launch, try
|
||||||
|
|
||||||
libtool --mode=execute gdb /path/to/gst-launch
|
libtool --mode=execute gdb /path/to/gst-launch
|
||||||
|
|
||||||
. If this does not work, you're probably using a broken version of
|
If this does not work, you're probably using a broken version of
|
||||||
libtool.
|
libtool.
|
||||||
|
|
||||||
If you build GStreamer using the Meson build system, libtool will not
|
If you build GStreamer using the Meson build system, libtool will not
|
||||||
|
@ -95,7 +95,7 @@ be used and this is not a problem. You can run `gdb`, `valgrind` or any
|
||||||
debugging tools directly on the binaries Meson creates in the build
|
debugging tools directly on the binaries Meson creates in the build
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
## Why is mail traffic so low on gstreamer-devel ?
|
> Why is mail traffic so low on gstreamer-devel ?
|
||||||
|
|
||||||
Our main arena for coordination and discussion are IRC and bugzilla, not
|
Our main arena for coordination and discussion are IRC and bugzilla, not
|
||||||
mailing lists. Join us in [`#gstreamer`][irc-gstreamer] on irc.freenode.net.
|
mailing lists. Join us in [`#gstreamer`][irc-gstreamer] on irc.freenode.net.
|
||||||
|
@ -106,7 +106,7 @@ mailing list is never a bad idea, however.
|
||||||
[irc-gstreamer]: irc://irc.freenode.net/#gstreamer
|
[irc-gstreamer]: irc://irc.freenode.net/#gstreamer
|
||||||
[webchat-gstreamer]: https://webchat.freenode.net
|
[webchat-gstreamer]: https://webchat.freenode.net
|
||||||
|
|
||||||
## What kind of versioning scheme does GStreamer use ?
|
> What kind of versioning scheme does GStreamer use ?
|
||||||
|
|
||||||
For public releases, GStreamer uses a standard MAJOR.MINOR.MICRO
|
For public releases, GStreamer uses a standard MAJOR.MINOR.MICRO
|
||||||
version scheme. If the release consists of mostly bug fixes or
|
version scheme. If the release consists of mostly bug fixes or
|
||||||
|
@ -129,7 +129,7 @@ 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
|
from the GStreamer team, don't have high hopes on it doing whatever you
|
||||||
want it to do.
|
want it to do.
|
||||||
|
|
||||||
## What is the coding style for GStreamer code?
|
> What is the coding style for GStreamer code?
|
||||||
|
|
||||||
The core and almost all plugin modules are basically coded in
|
The core and almost all plugin modules are basically coded in
|
||||||
K\&R with 2-space indenting. Just follow what's already there and you'll
|
K\&R with 2-space indenting. Just follow what's already there and you'll
|
||||||
|
@ -179,7 +179,7 @@ See [How to submit patches][submit-patches] for more details.
|
||||||
|
|
||||||
[submit-patches]: contribute/index.md#how-to-submit-patches
|
[submit-patches]: contribute/index.md#how-to-submit-patches
|
||||||
|
|
||||||
## I have translated one of the module .po files into a new language. How do I get it included?
|
> I have translated one of the module .po files into a new language. How do I get it included?
|
||||||
|
|
||||||
GStreamer translations are uniformly managed through the
|
GStreamer translations are uniformly managed through the
|
||||||
[Translation Project](http://translationproject.org). There are some
|
[Translation Project](http://translationproject.org). There are some
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# General
|
# General
|
||||||
|
|
||||||
## Is GStreamer a media player ?
|
> Is GStreamer a media player ?
|
||||||
|
|
||||||
No, GStreamer is a development framework for creating applications like
|
No, GStreamer is a development framework for creating applications like
|
||||||
media players, video editors, streaming media broadcasters and so on.
|
media players, video editors, streaming media broadcasters and so on.
|
||||||
|
@ -8,7 +8,7 @@ That said, very good media players can easily be built on top of GStreamer
|
||||||
especially when using the high-level APIs we provide such as `GstPlayer` or
|
especially when using the high-level APIs we provide such as `GstPlayer` or
|
||||||
the `playbin` and `playbin3` elements.
|
the `playbin` and `playbin3` elements.
|
||||||
|
|
||||||
## Why is GStreamer written in C ? Why not C++/Objective-C/... ?
|
> Why is GStreamer written in C ? Why not C++/Objective-C/... ?
|
||||||
|
|
||||||
We like C. Aside from "personal preference", there are a number
|
We like C. Aside from "personal preference", there are a number
|
||||||
of technical reasons why C is nice in this project:
|
of technical reasons why C is nice in this project:
|
||||||
|
@ -37,7 +37,7 @@ 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.
|
to help out on GStreamer, we always need more language binding people.
|
||||||
And if not, don't bother us; we're working :-)
|
And if not, don't bother us; we're working :-)
|
||||||
|
|
||||||
## What kind of applications have been written in GStreamer?
|
> What kind of applications have been written in GStreamer?
|
||||||
|
|
||||||
GStreamer has been designed from the start to be a general-purpose multimedia
|
GStreamer has been designed from the start to be a general-purpose multimedia
|
||||||
framework that can be used to write all kinds of multimedia applications.
|
framework that can be used to write all kinds of multimedia applications.
|
||||||
|
@ -53,7 +53,7 @@ For a list of projects, look at the [application
|
||||||
list](http://gstreamer.freedesktop.org/apps/) on the GStreamer project
|
list](http://gstreamer.freedesktop.org/apps/) on the GStreamer project
|
||||||
website.
|
website.
|
||||||
|
|
||||||
## Does GStreamer support the format of my media files?
|
> Does GStreamer support the format of my media files?
|
||||||
|
|
||||||
GStreamer is plugin based and was designed to be extensible from the start,
|
GStreamer is plugin based and was designed to be extensible from the start,
|
||||||
so it can pretty much support any media format provided suitable plugins
|
so it can pretty much support any media format provided suitable plugins
|
||||||
|
@ -76,7 +76,7 @@ provide:
|
||||||
|
|
||||||
- ways to obtain mediafiles in that format to test.
|
- ways to obtain mediafiles in that format to test.
|
||||||
|
|
||||||
## What are the exact licensing terms for GStreamer and its plugins?
|
> What are the exact licensing terms for GStreamer and its plugins?
|
||||||
|
|
||||||
All of GStreamer, including our own plugin code, is licensed
|
All of GStreamer, including our own plugin code, is licensed
|
||||||
under the [GNU LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html)
|
under the [GNU LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html)
|
||||||
|
@ -96,13 +96,13 @@ You can see the effective license of a plugin as license field in
|
||||||
`gst-inspect-1.0`. In the future we might have the application enforce a
|
`gst-inspect-1.0`. In the future we might have the application enforce a
|
||||||
stricter policy (much like tainting in the kernel).
|
stricter policy (much like tainting in the kernel).
|
||||||
|
|
||||||
## Is GStreamer a sound server ?
|
> Is GStreamer a sound server ?
|
||||||
|
|
||||||
No, GStreamer is not a soundserver. GStreamer does however have
|
No, GStreamer is not a soundserver. GStreamer does however have
|
||||||
plugins supporting most of the major soundservers available today,
|
plugins supporting most of the major soundservers available today,
|
||||||
including pulseaudio, Jack and others.
|
including pulseaudio, Jack and others.
|
||||||
|
|
||||||
## Is GStreamer available for platforms other than Linux?
|
> Is GStreamer available for platforms other than Linux?
|
||||||
|
|
||||||
Yes, GStreamer is a cross-platform multimedia framework that
|
Yes, GStreamer is a cross-platform multimedia framework that
|
||||||
works on all major operating systems, including but not limited to
|
works on all major operating systems, including but not limited to
|
||||||
|
@ -110,7 +110,7 @@ Linux, Android, iOS, macOS, Windows, and *BSD, and there are official
|
||||||
SDK binary packages for Android, iOS, macOS and Windows made available
|
SDK binary packages for Android, iOS, macOS and Windows made available
|
||||||
with every GStreamer release.
|
with every GStreamer release.
|
||||||
|
|
||||||
## What is GStreamer's relationship with the GNOME community ?
|
> What is GStreamer's relationship with the GNOME community ?
|
||||||
|
|
||||||
GStreamer is an independent project, but we do traditionally have
|
GStreamer is an independent project, but we do traditionally have
|
||||||
a close relationship with the GNOME community. Many of our hackers
|
a close relationship with the GNOME community. Many of our hackers
|
||||||
|
@ -119,7 +119,7 @@ is officially bundled with the GNOME desktop, as lots of GNOME applications
|
||||||
are using it. This does not exclude use of GStreamer by other communities
|
are using it. This does not exclude use of GStreamer by other communities
|
||||||
at all, of course.
|
at all, of course.
|
||||||
|
|
||||||
## What is GStreamer's relationship with the KDE community ?
|
> What is GStreamer's relationship with the KDE community ?
|
||||||
|
|
||||||
The GStreamer community wants to have as good a relationship as
|
The GStreamer community wants to have as good a relationship as
|
||||||
possible with KDE, and we hope that someday KDE decides to adopt
|
possible with KDE, and we hope that someday KDE decides to adopt
|
||||||
|
@ -129,7 +129,7 @@ GStreamer is used by various KDE and Qt multimedia APIs. Also,
|
||||||
some of the KDE hackers have created Qt bindings of GStreamer, made a
|
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).
|
simple video player and using it in some audio players (JuK and AmaroK).
|
||||||
|
|
||||||
## I'm considering adding GStreamer output to my application...
|
> I'm considering adding GStreamer output to my application...
|
||||||
|
|
||||||
That doesn't really make sense. GStreamer is not a sound server,
|
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
|
so you don't output directly to GStreamer, and it's not an intermediate
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Getting GStreamer
|
# Getting GStreamer
|
||||||
|
|
||||||
## How do I get GStreamer ?
|
> How do I get GStreamer ?
|
||||||
|
|
||||||
Generally speaking, you have three options, ranging from easy to hard :
|
Generally speaking, you have three options, ranging from easy to hard :
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ Generally speaking, you have three options, ranging from easy to hard :
|
||||||
|
|
||||||
- [git](#getting-gstreamer-packages)
|
- [git](#getting-gstreamer-packages)
|
||||||
|
|
||||||
## There seem to be different GStreamer versions, like 0.10 and 1.0? What's up with that?
|
> There seem to be different GStreamer versions, like 0.10 and 1.0? What's up with that?
|
||||||
|
|
||||||
GStreamer-0.10 and GStreamer-1.0 are the main version 'series'
|
GStreamer-0.10 and GStreamer-1.0 are the main version 'series'
|
||||||
currently in use. For all practical purposes you should think of them as
|
currently in use. For all practical purposes you should think of them as
|
||||||
|
@ -42,11 +42,11 @@ Applications will use either GStreamer-1.0 or GStreamer-0.10, since the
|
||||||
Odd-numbered versions such as 0.9.x, 0.11.x, 1.3.x, 1.5.x, 1.7.x etc. are
|
Odd-numbered versions such as 0.9.x, 0.11.x, 1.3.x, 1.5.x, 1.7.x etc. are
|
||||||
unstable developer releases that should generally not be used.
|
unstable developer releases that should generally not be used.
|
||||||
|
|
||||||
## So which GStreamer version should I get?
|
> So which GStreamer version should I get?
|
||||||
|
|
||||||
You should download GStreamer 1.x. GStreamer-0.10 is no longer maintained.
|
You should download GStreamer 1.x. GStreamer-0.10 is no longer maintained.
|
||||||
|
|
||||||
## How can I install GStreamer from source ?
|
> How can I install GStreamer from source ?
|
||||||
|
|
||||||
We provide tarballs of our releases on our own site, at
|
We provide tarballs of our releases on our own site, at
|
||||||
<http://gstreamer.freedesktop.org/src/>
|
<http://gstreamer.freedesktop.org/src/>
|
||||||
|
@ -74,7 +74,7 @@ into one prefix with distro packages in another prefix can cause problems if
|
||||||
it's not done right, and it is very difficult for anyone to provide help with
|
it's not done right, and it is very difficult for anyone to provide help with
|
||||||
such a setup.
|
such a setup.
|
||||||
|
|
||||||
## Are there premade binaries available ?
|
> Are there premade binaries available ?
|
||||||
|
|
||||||
Yes, we currently provide [precompiled packages for Windows, OS/X,
|
Yes, we currently provide [precompiled packages for Windows, OS/X,
|
||||||
Android and iOS](http://gstreamer.freedesktop.org/pkg/).
|
Android and iOS](http://gstreamer.freedesktop.org/pkg/).
|
||||||
|
@ -83,7 +83,7 @@ We currently do not provide packages for Linux distributions, but rather
|
||||||
rely on the distributions for that. GStreamer packages should be
|
rely on the distributions for that. GStreamer packages should be
|
||||||
available for all major (and minor) distributions.
|
available for all major (and minor) distributions.
|
||||||
|
|
||||||
## Why don't you provide premade binaries for distribution XY ?
|
> Why don't you provide premade binaries for distribution XY ?
|
||||||
|
|
||||||
GStreamer is run on a volunteer basis. The package that are
|
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
|
provided are made by non-paid people who do this on their own time. The
|
||||||
|
@ -93,7 +93,7 @@ interested in maintaining GStreamer binaries for other distributions or
|
||||||
Unices we would be happy to hear from you. Contact us through the
|
Unices we would be happy to hear from you. Contact us through the
|
||||||
GStreamer-devel mailing list.
|
GStreamer-devel mailing list.
|
||||||
|
|
||||||
## I am having trouble compiling GStreamer on my LFS installation, why ?
|
> I am having trouble compiling GStreamer on my LFS installation, why ?
|
||||||
|
|
||||||
If you are running LFS our basic opinion is that you should be
|
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.
|
knowledgeable enough to solve any build issues you get on your own.
|
||||||
|
@ -104,7 +104,7 @@ 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
|
channel on irc.openprojects.net we might of course be able to give you
|
||||||
some general hints and pointers.
|
some general hints and pointers.
|
||||||
|
|
||||||
## How do I get GStreamer through git ?
|
> How do I get GStreamer through git ?
|
||||||
|
|
||||||
See this page : <http://gstreamer.freedesktop.org/dev/> for git
|
See this page : <http://gstreamer.freedesktop.org/dev/> for git
|
||||||
access (anonymous and developer).
|
access (anonymous and developer).
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
# Building GStreamer from git
|
# Building GStreamer from git
|
||||||
|
|
||||||
## Is there a way to test or develop against GStreamer from git without interfering with my system GStreamer installed from packages?
|
> Is there a way to test or develop against GStreamer from git without interfering with my system GStreamer installed from packages?
|
||||||
|
|
||||||
Yes! You have two options: you can either run GStreamer in an
|
Yes! You have two options: you can either run GStreamer in an
|
||||||
uninstalled setup (see [How do I develop against an uninstalled
|
uninstalled setup (see [How do I develop against an uninstalled
|
||||||
GStreamer copy ?](#developing-uninstalled-gstreamer)), or you can use
|
GStreamer copy ?](#developing-uninstalled-gstreamer)), or you can use
|
||||||
GNOME's jhbuild.
|
GNOME's jhbuild.
|
||||||
|
|
||||||
## How do I check out GStreamer from git ?
|
> How do I check out GStreamer from git ?
|
||||||
|
|
||||||
GStreamer is hosted on Freedesktop.org. GStreamer consists of
|
GStreamer is hosted on Freedesktop.org. GStreamer consists of
|
||||||
various parts. In the beginning, you will be interested in the
|
various parts. In the beginning, you will be interested in the
|
||||||
|
@ -28,15 +28,15 @@ use
|
||||||
This will create three directories in your current directory:
|
This will create three directories in your current directory:
|
||||||
"gstreamer", "gst-plugins-base", and "gst-plugins-good". If you want to
|
"gstreamer", "gst-plugins-base", and "gst-plugins-good". If you want to
|
||||||
get another module, use the above git clone command line and replace
|
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
|
`$module` with the name of the module. Once you have checked out these
|
||||||
modules, you will need to change into each directory and run
|
modules, you will need to change into each directory and run
|
||||||
./autogen.sh, which will among other things checkout the common module
|
`./autogen.sh`, which will among other things checkout the common module
|
||||||
underneath each module checkout.
|
underneath each module checkout.
|
||||||
|
|
||||||
The [modules page](http://gstreamer.freedesktop.org/modules/) has a list
|
The [modules page](http://gstreamer.freedesktop.org/modules/) has a list
|
||||||
of active ones together with a short description.
|
of active ones together with a short description.
|
||||||
|
|
||||||
## How do I get developer access to GStreamer git ?
|
> How do I get developer access to GStreamer git ?
|
||||||
|
|
||||||
If you want to gain developer access to GStreamer git, you should
|
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
|
ask for it on the development lists, or ask one of the maintainers
|
||||||
|
@ -62,7 +62,7 @@ Freedesktop.org, you will then have to provide them with:
|
||||||
Once you have all these items, see
|
Once you have all these items, see
|
||||||
<http://freedesktop.org/wiki/AccountRequests> for what to do with them.
|
<http://freedesktop.org/wiki/AccountRequests> for what to do with them.
|
||||||
|
|
||||||
## I ran autogen.sh, but it fails with aclocal errors. What's wrong ?
|
> I ran autogen.sh, but it fails with aclocal errors. What's wrong ?
|
||||||
|
|
||||||
+ running aclocal -I m4 -I common/m4 ...
|
+ running aclocal -I m4 -I common/m4 ...
|
||||||
aclocal: configure.ac: 8: macro `AM_DISABLE_STATIC' not found in library
|
aclocal: configure.ac: 8: macro `AM_DISABLE_STATIC' not found in library
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
---
|
||||||
|
render-subpages: false
|
||||||
|
...
|
||||||
|
|
||||||
# Frequently Asked Questions
|
# Frequently Asked Questions
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
|
@ -12,16 +12,13 @@ with patents in our opinion. This consultancy was paid for by
|
||||||
answers. These answers were certified by the FSF lawyer team and
|
answers. These answers were certified by the FSF lawyer team and
|
||||||
verified by FSF lawyer and law professor Eben Moglen.
|
verified by FSF lawyer and law professor Eben Moglen.
|
||||||
|
|
||||||
## Can someone distribute the combination of ...
|
> Can someone distribute the combination of:
|
||||||
|
> - GStreamer, the LGPL library
|
||||||
- GStreamer, the LGPL library
|
> - MyPlayer, a GPL playback application
|
||||||
|
> - The binary-only Sorenson decoder
|
||||||
- MyPlayer, a GPL playback application
|
>
|
||||||
|
> together in one distribution/operating system ? If not, what needs to be
|
||||||
- The binary-only Sorenson decoder
|
> changed to make this possible ?
|
||||||
|
|
||||||
together in one distribution/operating system ? If not, what needs to be
|
|
||||||
changed to make this possible ?
|
|
||||||
|
|
||||||
This would be a problem, because the GStreamer and MyPlayer
|
This would be a problem, because the GStreamer and MyPlayer
|
||||||
licenses would forbid it. In order to link GStreamer to MyPlayer, you
|
licenses would forbid it. In order to link GStreamer to MyPlayer, you
|
||||||
|
@ -37,16 +34,18 @@ middle.
|
||||||
Note: MyPlayer is a completely fictituous application at the time of
|
Note: MyPlayer is a completely fictituous application at the time of
|
||||||
writing.
|
writing.
|
||||||
|
|
||||||
## Suppose Apple wants to write a binary-only proprietary plugin for GStreamer ..
|
> Suppose Apple wants to write a binary-only proprietary plugin for GStreamer
|
||||||
|
>
|
||||||
.. to decode Sorenson video, which will be shipped stand-alone,
|
> .. to decode Sorenson video, which will be shipped stand-alone,
|
||||||
not part of a package like in the question above. Can Apple distribute
|
> not part of a package like in the question above. Can Apple distribute
|
||||||
this binary-only plugin ?
|
> this binary-only plugin ?
|
||||||
|
|
||||||
Yes, modulo certain reverse engineering requirements in section 6
|
Yes, modulo certain reverse engineering requirements in section 6
|
||||||
of the LGPL.
|
of the LGPL.
|
||||||
|
|
||||||
## 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 ?
|
> 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 ?
|
||||||
|
|
||||||
You may not distribute the plug-in with the GPL application.
|
You may not distribute the plug-in with the GPL application.
|
||||||
Distributing the plug-in alone, with the knowledge that it will be used
|
Distributing the plug-in alone, with the knowledge that it will be used
|
||||||
|
@ -54,19 +53,25 @@ 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
|
you that it would be safe to do so, but we also will not advise you that
|
||||||
it would be absolutely forbidden.
|
it would be absolutely forbidden.
|
||||||
|
|
||||||
## 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 ?
|
> 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 ?
|
||||||
|
|
||||||
Yes, he can. No, there are no criminal penalties for patent
|
Yes, he can. No, there are no criminal penalties for patent
|
||||||
infringement in the US.
|
infringement in the US.
|
||||||
|
|
||||||
## Can someone from the US distribute software covered by US patents under the GPL to people in Norway ? To people in the US ?
|
> Can someone from the US distribute software covered by US patents
|
||||||
|
> under the GPL to people in Norway ? To people in the US ?
|
||||||
|
|
||||||
This might infringe some patents, but the GPL would not forbid it
|
This might infringe some patents, but the GPL would not forbid it
|
||||||
absent some actual restriction, such as a court judgement or agreement.
|
absent some actual restriction, such as a court judgement or agreement.
|
||||||
The US government is empowered to refuse importation of patent
|
The US government is empowered to refuse importation of patent
|
||||||
infringing devices, including software.
|
infringing devices, including software.
|
||||||
|
|
||||||
## 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 ?
|
> 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 ?
|
||||||
|
|
||||||
The mere existence of a patent which might read on the program
|
The mere existence of a patent which might read on the program
|
||||||
does not change anything. However, if a court judgement or other
|
does not change anything. However, if a court judgement or other
|
||||||
|
@ -78,18 +83,25 @@ as to satisfy simultaneously your obligations under this License and any
|
||||||
other pertinent obligations, then as a consequence you may not
|
other pertinent obligations, then as a consequence you may not
|
||||||
distribute the Library at all.”
|
distribute the Library at all.”
|
||||||
|
|
||||||
## 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 ?
|
> 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 ?
|
||||||
|
|
||||||
The GPL operates on a per-action, not per-program basis. That is,
|
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
|
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 that you cannot distribute (say) libmad in source code form, then
|
||||||
you cannot distribute libmad at all. This doesn't affect anyone else.
|
you cannot distribute libmad at all. This doesn't affect anyone else.
|
||||||
|
|
||||||
## 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?
|
> 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?
|
||||||
|
|
||||||
No.
|
No.
|
||||||
|
|
||||||
## 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 ?
|
> 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 ?
|
||||||
|
|
||||||
The only GPL-compatible patent licenses are those which are open
|
The only GPL-compatible patent licenses are those which are open
|
||||||
to all parties posessing copies of GPL software which practices the
|
to all parties posessing copies of GPL software which practices the
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
# Troubleshooting GStreamer
|
# Troubleshooting GStreamer
|
||||||
|
|
||||||
## Some application is telling me that I am missing a plug-in. What do I do ?
|
> Some application is telling me that I am missing a plug-in. What do I do ?
|
||||||
|
|
||||||
Well, start by checking if you really are missing the plug-in.
|
Well, start by checking if you really are missing the plug-in.
|
||||||
|
|
||||||
```
|
```
|
||||||
gst-inspect-1.0 (plug-in)
|
gst-inspect-1.0 (plug-in)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
and replace (plug-in) with the plug-in you think is missing. If this
|
and replace (plug-in) with the plug-in you think is missing. If this
|
||||||
|
@ -42,7 +41,7 @@ if your application does not support installation of missing plugins.
|
||||||
why it doesn't get built if you're sure you have the library needed
|
why it doesn't get built if you're sure you have the library needed
|
||||||
installed in a sane place.
|
installed in a sane place.
|
||||||
|
|
||||||
## The GStreamer application I used stops with a segmentation fault. What can I do ?
|
> The GStreamer application I used stops with a segmentation fault. What can I do ?
|
||||||
|
|
||||||
The first point of contact for any problems with a GStreamer application
|
The first point of contact for any problems with a GStreamer application
|
||||||
should be the developers of that application. They will be able to investigate
|
should be the developers of that application. They will be able to investigate
|
||||||
|
@ -61,23 +60,21 @@ where things are going wrong, or give us an idea of what is going wrong.
|
||||||
To provide a backtrace, you should
|
To provide a backtrace, you should
|
||||||
|
|
||||||
1. run the application in gdb by starting it with
|
1. run the application in gdb by starting it with
|
||||||
|
|
||||||
```
|
```
|
||||||
gdb (gst-application)
|
gdb (gst-application)
|
||||||
|
```
|
||||||
```
|
|
||||||
|
(If the application is in a source tree instead of installed on the
|
||||||
(If the application is in a source tree instead of installed on the
|
system, you might want to put "libtool" before "gdb")
|
||||||
system, you might want to put "libtool" before "gdb")
|
|
||||||
|
|
||||||
2. Pass on the command line arguments to the application by typing
|
2. Pass on the command line arguments to the application by typing
|
||||||
|
|
||||||
```
|
```
|
||||||
set args (the arguments to the application)
|
set args (the arguments to the application)
|
||||||
|
```
|
||||||
```
|
|
||||||
|
at the (gdb) prompt
|
||||||
at the (gdb) prompt
|
|
||||||
|
|
||||||
3. Type "run" at the (gdb) prompt and wait for the application to
|
3. Type "run" at the (gdb) prompt and wait for the application to
|
||||||
segfault. The application will run a lot slower, however.
|
segfault. The application will run a lot slower, however.
|
||||||
|
@ -88,17 +85,15 @@ To provide a backtrace, you should
|
||||||
|
|
||||||
5. If the application you're trying to debug contains threads, it is
|
5. If the application you're trying to debug contains threads, it is
|
||||||
also useful to do
|
also useful to do
|
||||||
|
|
||||||
```
|
```
|
||||||
info threads
|
info threads
|
||||||
|
```
|
||||||
```
|
|
||||||
|
and get backtraces of all of the threads involved, by switching to a
|
||||||
and get backtraces of all of the threads involved, by switching to a
|
different thread using "thread (number)" and then again requesting a
|
||||||
different thread using "thread (number)" and then again requesting a
|
backtrace using "bt".
|
||||||
backtrace using "bt".
|
|
||||||
|
|
||||||
6. If you can't or don't want to work out the problem yourself, a copy
|
6. 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 [bug
|
and paste of all this information should be included in your [bug
|
||||||
report](#using-bugs-where).
|
report](#using-bugs-where).
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue