| <!-- ##### 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 |
| determining source type. Formatting/framing information is provided with |
| a powerful negotiation framework. Plugins are heavily used to provide for |
| 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 |
| cruft behind. Its interface is still very fluid and thus can be changed |
| to increase the sanity/noise ratio. |
| </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. |
| |
| <example> |
| <title>Initializing the gstreamer library</title> |
| <programlisting> |
| int |
| main (int argc, char *argv[]) |
| { |
| /* initialize the GStreamer library */ |
| gst_init (&argc, &argv); |
| ... |
| } |
| </programlisting> |
| </example> |
| </para> |
| <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> |
| |
| <para> |
| You can also use a popt table to initialize your own parameters as shown in the next code |
| fragment: |
| <example> |
| <title>Initializing own parameters when initializing gstreamer</title> |
| <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> |
| </example> |
| </para> |
| <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> |
| 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. |
| </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: |
| |
| |
| <!-- ##### FUNCTION gst_init_check ##### --> |
| <para> |
| |
| </para> |
| |
| @argc: |
| @argv: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION gst_init_with_popt_table ##### --> |
| <para> |
| |
| </para> |
| |
| @argc: |
| @argv: |
| @popt_options: |
| <!-- # Unused Parameters # --> |
| @Param3: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION gst_init_check_with_popt_table ##### --> |
| <para> |
| |
| </para> |
| |
| @argc: |
| @argv: |
| @popt_options: |
| @Returns: |
| <!-- # Unused Parameters # --> |
| @Param3: |
| |
| |
| <!-- ##### FUNCTION gst_init_get_popt_table ##### --> |
| <para> |
| |
| </para> |
| |
| @Returns: |
| |
| |