GStreamer Core Reference Manual | |||
---|---|---|---|
<<< Previous Page | Home | Up | Next Page >>> |
#include <gst/gst.h> void gst_init (int *argc, char **argv[]); void gst_init_with_popt_table (int *argc, char **argv[], const struct poptOption *popt_options); void gst_version (guint *major, guint *minor, guint *micro); void gst_main (void); void gst_main_quit (void); gboolean gst_has_threads (void); void gst_use_threads (gboolean use_threads); extern const char *g_log_domain_gstreamer; #define GST_VERSION_MAJOR #define GST_VERSION_MINOR #define GST_VERSION_MICRO |
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).
GStreamer borrows heavily from both the OGI media pipeline 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.
The GStreamer 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.
int main (int argc, char *argv[]) { /* initialize the GStreamer library */ gst_init (&argc, &argv); ... } |
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.
You can also use a popt table to initialize your own parameters as shown in the next code fragment:
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); ... } |
Use gst_version() to query the library version at runtime or use the GST_VERSION_* macros to find the version at compile time.
gst_main() and gst_main_quit() enter and exit the main loop.
void gst_init (int *argc, char **argv[]); |
Initializes the GStreamer library, setting up internal path lists, registering built-in elements, and loading standard plugins.
void gst_init_with_popt_table (int *argc, char **argv[], const struct poptOption *popt_options); |
Initializes the GStreamer library, parsing the options, setting up internal path lists, registering built-in elements, and loading standard plugins.
void gst_version (guint *major, guint *minor, guint *micro); |
Gets the version number of the GStreamer library
void gst_use_threads (gboolean use_threads); |
Instructs the core to turn on/off threading. When threading is turned off, all thread operations such as mutexes and conditionals are turned into NOPs. use this if you want absolute minimal overhead and you don't use any threads in the pipeline.