2002-01-15 00:41:22 +00:00
|
|
|
<!-- ##### SECTION Title ##### -->
|
|
|
|
Gstreamer
|
|
|
|
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
|
|
|
Media library supporting arbitrary formats and filter graphs.
|
|
|
|
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
|
|
<para>
|
|
|
|
GStreamer is a framework for constructing graphs of various filters
|
|
|
|
(termed elements here) that will handle streaming media. Any discreet
|
|
|
|
(packetizable) media type is supported, with provisions for automatically
|
2002-07-12 23:21:20 +00:00
|
|
|
determining source type. Formatting/framing information is provided with
|
|
|
|
a powerful negotiation framework. Plugins are heavily used to provide for
|
2002-01-15 00:41:22 +00:00
|
|
|
all elements, allowing one to construct plugins outside of the GST
|
|
|
|
library, even released binary-only if license require (please don't).
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
GStreamer borrows heavily from both the <ulink
|
|
|
|
url="http://www.cse.ogi.edu/sysl/">OGI media pipeline</ulink> and
|
|
|
|
Microsoft's DirectShow, hopefully taking the best of both and leaving the
|
2002-07-12 23:21:20 +00:00
|
|
|
cruft behind. Its interface is still very fluid and thus can be changed
|
|
|
|
to increase the sanity/noise ratio.
|
2002-01-15 00:41:22 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The <application>GStreamer</application> library should be initialized with gst_init() before
|
|
|
|
it can be used. You should pass a pointer to the main argc and argv variables so that GStreamer can
|
|
|
|
process its own command line options, as shown in the following example.
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
int
|
|
|
|
main (int argc, char *argv[])
|
|
|
|
{
|
2002-06-12 22:27:18 +00:00
|
|
|
/* initialize the GStreamer library */
|
2002-01-15 00:41:22 +00:00
|
|
|
gst_init (&argc, &argv);
|
|
|
|
...
|
|
|
|
}
|
|
|
|
</programlisting>
|
|
|
|
</para>
|
2002-07-12 23:21:20 +00:00
|
|
|
<para>
|
|
|
|
It's allowed to pass two NULL pointers to gst_init() in case you don't want to pass the command
|
|
|
|
line args to GStreamer.
|
|
|
|
</para>
|
2002-06-12 22:27:18 +00:00
|
|
|
|
|
|
|
<para>
|
|
|
|
You can also use a popt table to initialize your own parameters as shown in the next code
|
|
|
|
fragment:
|
|
|
|
<programlisting>
|
|
|
|
static gboolean stats = FALSE;
|
|
|
|
...
|
|
|
|
|
|
|
|
int
|
|
|
|
main (int argc, char *argv[])
|
|
|
|
{
|
|
|
|
struct poptOption options[] = {
|
|
|
|
{ "stats", 's', POPT_ARG_NONE|POPT_ARGFLAG_STRIP, &stats, 0,
|
|
|
|
"Show pad stats", NULL},
|
|
|
|
POPT_TABLEEND
|
|
|
|
};
|
|
|
|
|
|
|
|
/* initialize the GStreamer library */
|
|
|
|
gst_init_with_popt_table (&argc, &argv, options);
|
|
|
|
|
|
|
|
...
|
|
|
|
}
|
|
|
|
</programlisting>
|
|
|
|
</para>
|
2002-01-15 00:41:22 +00:00
|
|
|
<para>
|
|
|
|
Use gst_version() to query the library version at runtime or use the GST_VERSION_* macros
|
|
|
|
to find the version at compile time.
|
|
|
|
</para>
|
|
|
|
<para>
|
2002-12-19 20:38:51 +00:00
|
|
|
gst_main() and gst_main_quit() enter and exit the main loop. GStreamer doesn't currently require
|
|
|
|
you to us a mainloop but can intergrate with it without problems.
|
2002-01-15 00:41:22 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
|
|
<para>
|
|
|
|
Check out both <ulink url="http://www.cse.ogi.edu/sysl/">OGI's
|
|
|
|
pipeline</ulink> and Microsoft's DirectShow for some background.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_init ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@argc:
|
|
|
|
@argv:
|
|
|
|
|
|
|
|
|
2002-03-31 14:00:33 +00:00
|
|
|
<!-- ##### FUNCTION gst_init_with_popt_table ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@argc:
|
|
|
|
@argv:
|
|
|
|
@popt_options:
|
2003-06-29 14:57:19 +00:00
|
|
|
<!-- # Unused Parameters # -->
|
2002-12-08 14:39:38 +00:00
|
|
|
@Returns:
|
2002-03-31 14:00:33 +00:00
|
|
|
|
|
|
|
|
2002-12-14 13:02:16 +00:00
|
|
|
<!-- ##### FUNCTION gst_init_check ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@argc:
|
|
|
|
@argv:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_init_get_popt_table ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
2002-01-15 00:41:22 +00:00
|
|
|
<!-- ##### FUNCTION gst_version ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@major:
|
|
|
|
@minor:
|
|
|
|
@micro:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_main ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_main_quit ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
|
|
|
2002-07-12 23:21:20 +00:00
|
|
|
<!-- ##### FUNCTION gst_has_threads ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gst_use_threads ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@use_threads:
|
|
|
|
|
|
|
|
|
2002-03-31 14:00:33 +00:00
|
|
|
<!-- ##### VARIABLE g_log_domain_gstreamer ##### -->
|
|
|
|
<para>
|
2002-12-14 13:02:16 +00:00
|
|
|
The variable that holds the GStreamer log domain
|
2002-03-31 14:00:33 +00:00
|
|
|
</para>
|
|
|
|
|
|
|
|
|
2002-01-15 00:41:22 +00:00
|
|
|
<!-- ##### MACRO GST_VERSION_MAJOR ##### -->
|
|
|
|
<para>
|
|
|
|
The major version of GStreamer at compile time
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### MACRO GST_VERSION_MINOR ##### -->
|
|
|
|
<para>
|
|
|
|
The minor version of GStreamer at compile time
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### MACRO GST_VERSION_MICRO ##### -->
|
|
|
|
<para>
|
|
|
|
The micro version of GStreamer at compile time
|
|
|
|
</para>
|
|
|
|
|
|
|
|
|
|
|
|
|