## GstParse

GstParse — Parses commandline syntax into a pipeline.

## Synopsis

    #include <gst/gst.h>

    enum        GstParseError;
    #define     GST_PARSE_ERROR
    GQuark      gst_parse_error_quark           (void);
    GstBin*     gst_parse_launch                (const gchar *pipeline_description,
                                                 GError **error);
    GstBin*     gst_parse_launchv               (const gchar **argv,
                                                 GError **error);

## Description

This method allows you to create a pipeline from a command line syntax description. The following example creates a simple mp3 player.

      GstElement *pipeline;

      /* create a pipeline to hold our elements */
      pipeline = gst_pipeline_new ("launch");

      /* build a pipeline in the pipeline */
      gst_parse_launch ("filesrc location=some.mp3 ! mad ! osssink", GST_BIN (pipeline));

      /* play the thing */
      gst_element_set_state (pipeline, GST_STATE_PLAYING);

      while (gst_bin_iterate (GST_BIN (pipeline)));

      gst_element_set_state (pipeline, GST_STATE_NULL);

Elements are separated with a `!`, properties are set with `property`=`value`, specific pads of an element are selected by replacing the `!` with `padname``!`.

Elements can be added to a bin by embracing them with `()`. Threads can be made with `{}`.

## Details

### enum GstParseError

    typedef enum
    {
      GST_PARSE_ERROR_SYNTAX,
      GST_PARSE_ERROR_NO_SUCH_ELEMENT,
      GST_PARSE_ERROR_NO_SUCH_PROPERTY,
      GST_PARSE_ERROR_LINK
    } GstParseError;

The parsing errors.

`GST_PARSE_ERROR_SYNTAX` | A syntax error was detected
`GST_PARSE_ERROR_NO_SUCH_ELEMENT` | The pipeline description contains a non existing element
`GST_PARSE_ERROR_NO_SUCH_PROPERTY` | The pipeline description contains a non existing element property
`GST_PARSE_ERROR_LINK` | A pad link could not be made

### GST_PARSE_ERROR

    #define GST_PARSE_ERROR gst_parse_error_quark ()

The error quark

### gst_parse_error_quark ()

    GQuark      gst_parse_error_quark           (void);

Get the error quark passed in the GError messages.

Returns : | The parse error quark

### gst_parse_launch ()

    GstBin*     gst_parse_launch                (const gchar *pipeline_description,
                                                 GError **error);

Create a new pipeline based on command line syntax.

`pipeline_description` : | the command line describing the pipeline
`error` : | the error message in case of a failure
Returns : | a new bin on success, NULL on failure. By default the bin is a GstPipeline, but it depends on the pipeline_description.

### gst_parse_launchv ()

    GstBin*     gst_parse_launchv               (const gchar **argv,
                                                 GError **error);

Create a new pipeline based on command line syntax.

`argv` : | null-terminated array of arguments
`error` : | pointer to GError
Returns : | a new pipeline on success, NULL on failure and error will contain the error message.