[ CCode ( cname = "gst_parse_launch_full" , returns_floating_reference = true ) ]
public Element parse_launch (string pipeline_description, ParseContext? context = null, ParseFlags flags = NONE) throws Error

Create a new pipeline based on command line syntax.

Please note that you might get a return value that is not null even though the error is set. In this case there was a recoverable parsing error and you can try to play the pipeline.

To create a sub-pipeline (bin) for embedding into an existing pipeline use parse_bin_from_description.

Example: Hello World:

// See
// for a detailed description

public static int main (string[] args) {
// Initialize GStreamer:
Gst.init (ref args);

// Build the pipeline:
Gst.Element pipeline;
try {
pipeline = Gst.parse_launch ("playbin uri=");
} catch (Error e) {
stderr.printf ("Error: %s\n", e.message);
return 0;

// Start playing:
pipeline.set_state (Gst.State.PLAYING);

// Wait until error or EOS:
Gst.Bus bus = pipeline.get_bus ();
bus.timed_pop_filtered (Gst.CLOCK_TIME_NONE, Gst.MessageType.ERROR | Gst.MessageType.EOS);

// Free resources:
pipeline.set_state (Gst.State.NULL);

return 0;

valac --pkg gstreamer-1.0 hello-world.vala



the command line describing the pipeline


a parse context allocated with ParseContext, or null


parsing options, or NONE


a new element on success, null on failure. If more than one toplevel element is specified by the pipeline_description , all elements are put into a Pipeline, which then is returned (unless the GST_PARSE_FLAG_PLACE_IN_BIN flag is set, in which case they are put in a Bin instead).

Namespace: Gst
Package: gstreamer-1.0