Programsgstreamer-configgstreamer-config is a script to get information about the installed
version of GStreamer.
This program "knows" what compiler switches are needed to compile programs that use
GStreamer.
gstreamer-config accepts the following options:
Print the currently installed version of
GStreamer on the standard output.
Print the linker flags that are necessary to link a
GStreamer program.
Print the compiler flags that are necessary to compile a
GStreamer program.
If specified, use PREFIX instead of the installation
prefix that GStreamer was built with when computing the
output for the and options.
This option is also used for the exec prefix if
was not specified. This option must be specified before any
or options.
If specified, use PREFIX instead of the installation exec
prefix that GStreamer was built with when computing the
output for the and options. This option must be
specified before any or
options.
A simple Makefile will contain something like:
CC = gcc
helloworld2: helloworld2.c
$(CC) -Wall `gstreamer-config --cflags --libs` helloworld2.c -o helloworld2
clean:
rm -f *.o helloworld2
gstreamer-registergstreamer-register is used to rebuild the database of plugins.
It is used after a new plugin has been added to the system. The plugin database
can be found in /etc/gstreamer/reg.xml.
gstreamer-launch
This is a tool that will construct pipelines based on a command-line
syntax.
A simple commandline looks like:
gstreamer-launch filesrc location=hello.mp3 ! mp3parse ! mpg123 ! audiosink
A more complex pipeline looks like:
gstreamer-launch filesrc redpill.vob audio_00! (ac3parse ! ac3dec ! audiosink) \
video_00! (mpeg2dec ! videosink)
Note that the parser isn't capable of more complex pipelines yet, including
the VOB player above. The minor tweaks will be made post 0.2.1.
You can also use the the parser in you own code. GStreamer
provides a function gst_parse_launch () that you can use to construt a pipeline.
The following programs lets you create an mp3 pipeline using the gst_parse_launch ()
function:
#include <gst/gst.h>
int
main (int argc, char *argv[])
{
GstElement *pipeline;
GstElement *filesrc;
gst_init (&argc, &argv);
if (argc != 2) {
g_print ("usage: %s <filename>\n", argv[0]);
return -1;
}
pipeline = gst_pipeline_new ("my_pipeline");
gst_parse_launch ("filesrc[my_filesrc] ! mp3parse ! mpg123 ! osssink", GST_BIN (pipeline));
filesrc = gst_bin_get_by_name (GST_BIN (pipeline), "my_filesrc");
g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
gst_element_set_state (pipeline, GST_STATE_PLAYING);
while (gst_bin_iterate (GST_BIN (pipeline)));
gst_element_set_state (pipeline, GST_STATE_NULL);
return 0;
}
Note how we can retrieve the filesrc element from the constructed bin using the
element name.
gstreamer-inspect
This is a tool to query a plugin or an element about its properties.
To query the information about the element mpg123, you would specify:
gstreamer-inspect mpg123
Below is the output of a query for the audiosink element:
Factory Details:
Long name: Audio Sink (OSS)
Class: Sink/Audio
Description: Output to a sound card via OSS
Version: 0.1.0
Author(s): Erik Walthinsen <omega@cse.ogi.edu>
Copyright: (C) 1999
Pad Templates:
SINK template: 'sink'
Exists: Always
Capabilities:
'audiosink_sink':
MIME type: 'audio/raw':
format: Integer: 16
depth: List:
Integer: 8
Integer: 16
rate: Integer range: 8000 - 48000
channels: Integer range: 1 - 2
Element Flags:
GST_ELEMENT_THREADSUGGESTED
no flags set
Element Implementation:
No loopfunc(), must be chain-based or not configured yet
Has change_state() function
Pads:
SINK: 'sink'
Implementation:
Has chainfunc(): 0x4001cde8
Has default eosfunc() gst_pad_eos_func()
Pad Template: 'sink'
Capabilities:
'audiosink_sink':
MIME type: 'audio/raw':
format: Integer: 16
depth: List:
Integer: 8
Integer: 16
rate: Integer range: 8000 - 48000
channels: Integer range: 1 - 2
Element Arguments:
GstAudioSink::mute: Boolean
GstAudioSink::format: Enum (default 16)
(8): 8 Bits
(16): 16 Bits
GstAudioSink::channels: Enum (default 2)
(1): Mono
(2): Stereo
GstAudioSink::frequency: Integer
To query the information about a plugin, you would do:
gstreamer-inspect gstelements
gstmediaplay
A sample media player.