Initializing <application>GStreamer</application> When writing a GStreamer application, you can simply include gst/gst.h to get access to the library functions. Before the GStreamer libraries can be used gst_init () has to be performed from the main app. this call will perform first initialisation and will parse the GStreamer specific command line options. A typical program would start like this: #include <gst/gst.h> ... int main (int argc, char *argv[]) { ... gst_init (&argc, &argv); ... } It is also possible to call the gst_init method with two NULL argumants. Use the GST_VERSION_MAJOR, GST_VERSION_MINOR and GST_VERSION_MICRO macros to get the GStreamer version you are building against. The popt interface more info here int main(int argc, char *argv[]) { gboolean silent = FALSE; gchar *savefile = NULL; struct poptOption options[] = { {"silent", 's', POPT_ARG_NONE|POPT_ARGFLAG_STRIP, &silent, 0, "do not output status information", NULL}, {"output", 'o', POPT_ARG_STRING|POPT_ARGFLAG_STRIP, &savefile, 0, "save xml representation of pipeline to FILE and exit", "FILE"}, POPT_TABLEEND }; gst_init_with_popt_table (&argc, &argv, options); ...