# Debugging utilities

These utility functions help with generating dot graphs which can be rendered with graphviz to multiple formats.

## Functions

### gst_debug_bin_to_dot_data

    gchar *
    gst_debug_bin_to_dot_data (GstBin * bin,
                               GstDebugGraphDetails details)

To aid debugging applications one can use this method to obtain the whole network of gstreamer elements that form the pipeline into a dot file.

See gst_debug_bin_to_dot_file for more details.

Parameters:

`bin` –

the top-level pipeline that should be analyzed

`details` –

type of GstDebugGraphDetails to use

Returns ( [transfer: full]) –

a string containing the pipeline in graphviz dot format.

### Gst.prototype.debug_bin_to_dot_data

    function Gst.prototype.debug_bin_to_dot_data(bin: Gst.Bin, details: Gst.DebugGraphDetails): {
        // javascript wrapper for 'gst_debug_bin_to_dot_data'
    }

To aid debugging applications one can use this method to obtain the whole network of gstreamer elements that form the pipeline into a dot file.

See Gst.prototype.debug_bin_to_dot_file for more details.

Parameters:

`bin` (Gst.Bin) –

the top-level pipeline that should be analyzed

`details` (Gst.DebugGraphDetails) –

type of Gst.DebugGraphDetails to use

Returns (String) –

a string containing the pipeline in graphviz dot format.

### Gst.debug_bin_to_dot_data

    def Gst.debug_bin_to_dot_data (bin, details):
        #python wrapper for 'gst_debug_bin_to_dot_data'

To aid debugging applications one can use this method to obtain the whole network of gstreamer elements that form the pipeline into a dot file.

See Gst.debug_bin_to_dot_file for more details.

Parameters:

`bin` (Gst.Bin) –

the top-level pipeline that should be analyzed

`details` (Gst.DebugGraphDetails) –

type of Gst.DebugGraphDetails to use

Returns (str) –

a string containing the pipeline in graphviz dot format.

### gst_debug_bin_to_dot_file

    gst_debug_bin_to_dot_file (GstBin * bin,
                               GstDebugGraphDetails details,
                               const gchar * file_name)

To aid debugging applications one can use this method to write out the whole network of gstreamer elements that form the pipeline into a dot file. This file can be processed with graphviz to get an image, like this:

    dot -Tpng -oimage.png graph_lowlevel.dot

There is also the interactive gst-dots-viewer tool, and xdot which allows you to view the dot file directly without converting it first.

If file_name is NULL, the output filename will be based on the application name as returned by g_get_application_name, or "unnamed" if the application name cannot be determined.

The file will be written to the directory specified by the `GST_DEBUG_DUMP_DOT_DIR` environment variable, and the `.dot` extension will be added. If `GST_DEBUG_DUMP_DOT_DIR` was not defined at the time gst_init was called, the file will not be generated. Note that the directory must already exist, it will not be created by this function.

gst_debug_bin_to_dot_data can be used if it is desired to generate the file even when `GST_DEBUG_DUMP_DOT_DIR` is not set.

Parameters:

`bin` –

the top-level pipeline that should be analyzed

`details` –

type of GstDebugGraphDetails to use

`file_name` ( [type filename][nullable]) –

output base filename (e.g. "myplayer")

### Gst.prototype.debug_bin_to_dot_file

    function Gst.prototype.debug_bin_to_dot_file(bin: Gst.Bin, details: Gst.DebugGraphDetails, file_name: filename): {
        // javascript wrapper for 'gst_debug_bin_to_dot_file'
    }

To aid debugging applications one can use this method to write out the whole network of gstreamer elements that form the pipeline into a dot file. This file can be processed with graphviz to get an image, like this:

    dot -Tpng -oimage.png graph_lowlevel.dot

There is also the interactive gst-dots-viewer tool, and xdot which allows you to view the dot file directly without converting it first.

If file_name is NULL, the output filename will be based on the application name as returned by GLib.prototype.get_application_name, or "unnamed" if the application name cannot be determined.

The file will be written to the directory specified by the `GST_DEBUG_DUMP_DOT_DIR` environment variable, and the `.dot` extension will be added. If `GST_DEBUG_DUMP_DOT_DIR` was not defined at the time Gst.prototype.init was called, the file will not be generated. Note that the directory must already exist, it will not be created by this function.

Gst.prototype.debug_bin_to_dot_data can be used if it is desired to generate the file even when `GST_DEBUG_DUMP_DOT_DIR` is not set.

Parameters:

`bin` (Gst.Bin) –

the top-level pipeline that should be analyzed

`details` (Gst.DebugGraphDetails) –

type of Gst.DebugGraphDetails to use

`file_name` (filename) –

output base filename (e.g. "myplayer")

### Gst.debug_bin_to_dot_file

    def Gst.debug_bin_to_dot_file (bin, details, file_name):
        #python wrapper for 'gst_debug_bin_to_dot_file'

To aid debugging applications one can use this method to write out the whole network of gstreamer elements that form the pipeline into a dot file. This file can be processed with graphviz to get an image, like this:

    dot -Tpng -oimage.png graph_lowlevel.dot

There is also the interactive gst-dots-viewer tool, and xdot which allows you to view the dot file directly without converting it first.

If file_name is NULL, the output filename will be based on the application name as returned by GLib.get_application_name, or "unnamed" if the application name cannot be determined.

The file will be written to the directory specified by the `GST_DEBUG_DUMP_DOT_DIR` environment variable, and the `.dot` extension will be added. If `GST_DEBUG_DUMP_DOT_DIR` was not defined at the time Gst.init was called, the file will not be generated. Note that the directory must already exist, it will not be created by this function.

Gst.debug_bin_to_dot_data can be used if it is desired to generate the file even when `GST_DEBUG_DUMP_DOT_DIR` is not set.

Parameters:

`bin` (Gst.Bin) –

the top-level pipeline that should be analyzed

`details` (Gst.DebugGraphDetails) –

type of Gst.DebugGraphDetails to use

`file_name` (str) –

output base filename (e.g. "myplayer")

### gst_debug_bin_to_dot_file_with_ts

    gst_debug_bin_to_dot_file_with_ts (GstBin * bin,
                                       GstDebugGraphDetails details,
                                       const gchar * file_name)

This works like gst_debug_bin_to_dot_file, but adds the current timestamp to the filename, so that it can be used to take multiple snapshots.

Parameters:

`bin` –

the top-level pipeline that should be analyzed

`details` –

type of GstDebugGraphDetails to use

`file_name` ( [type filename][nullable]) –

output base filename (e.g. "myplayer")

### Gst.prototype.debug_bin_to_dot_file_with_ts

    function Gst.prototype.debug_bin_to_dot_file_with_ts(bin: Gst.Bin, details: Gst.DebugGraphDetails, file_name: filename): {
        // javascript wrapper for 'gst_debug_bin_to_dot_file_with_ts'
    }

This works like Gst.prototype.debug_bin_to_dot_file, but adds the current timestamp to the filename, so that it can be used to take multiple snapshots.

Parameters:

`bin` (Gst.Bin) –

the top-level pipeline that should be analyzed

`details` (Gst.DebugGraphDetails) –

type of Gst.DebugGraphDetails to use

`file_name` (filename) –

output base filename (e.g. "myplayer")

### Gst.debug_bin_to_dot_file_with_ts

    def Gst.debug_bin_to_dot_file_with_ts (bin, details, file_name):
        #python wrapper for 'gst_debug_bin_to_dot_file_with_ts'

This works like Gst.debug_bin_to_dot_file, but adds the current timestamp to the filename, so that it can be used to take multiple snapshots.

Parameters:

`bin` (Gst.Bin) –

the top-level pipeline that should be analyzed

`details` (Gst.DebugGraphDetails) –

type of Gst.DebugGraphDetails to use

`file_name` (str) –

output base filename (e.g. "myplayer")

## Function Macros

### GST_DEBUG_BIN_TO_DOT_FILE

    #define GST_DEBUG_BIN_TO_DOT_FILE(bin, details, file_name) gst_debug_bin_to_dot_file (bin, details, file_name)

To aid debugging applications one can use this method to write out the whole network of gstreamer elements that form the pipeline into a dot file.

The macro is only active if the GStreamer debugging subsystem is enabled (i.e., no use of `meson setup -Dgst_debug=false`)

See gst_debug_bin_to_dot_file for more details.

Parameters:

`bin` –

the top-level pipeline that should be analyzed

`details` –

details to show in the graph, e.g. GST_DEBUG_GRAPH_SHOW_ALL or one or more other GstDebugGraphDetails flags.

`file_name` –

output base filename (e.g. "myplayer")

### GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS

    #define GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(bin, details, file_name) gst_debug_bin_to_dot_file_with_ts (bin, details, file_name)

This works like GST_DEBUG_BIN_TO_DOT_FILE, but adds the current timestamp to the filename, so that it can be used to take multiple snapshots.

Parameters:

`bin` –

the top-level pipeline that should be analyzed

`details` –

details to show in the graph, e.g. GST_DEBUG_GRAPH_SHOW_ALL or one or more other GstDebugGraphDetails flags.

`file_name` –

output base filename (e.g. "myplayer")

## Enumerations

### GstDebugGraphDetails

Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS.

##### Members

`GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE` (1) –

show caps-name on edges

`GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS` (2) –

show caps-details on edges

`GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS` (4) –

show modified parameters on elements. When this flag is set without GST_DEBUG_GRAPH_SHOW_FULL_PARAMS, a tooltip with full parameter values is added to each element.

`GST_DEBUG_GRAPH_SHOW_STATES` (8) –

show element states

`GST_DEBUG_GRAPH_SHOW_FULL_PARAMS` (16) –

show full element parameter values even if they are very long. When this flag is set, no tooltip is added since the full values are already visible in the label.

`GST_DEBUG_GRAPH_SHOW_ALL` (15) –

show all the typical details that one might want

`GST_DEBUG_GRAPH_SHOW_VERBOSE` (4294967295) –

show all details regardless of how large or verbose they make the resulting output

### Gst.DebugGraphDetails

Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE (not introspectable) and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (not introspectable).

##### Members

`Gst.DebugGraphDetails.MEDIA_TYPE` (1) –

show caps-name on edges

`Gst.DebugGraphDetails.CAPS_DETAILS` (2) –

show caps-details on edges

`Gst.DebugGraphDetails.NON_DEFAULT_PARAMS` (4) –

show modified parameters on elements. When this flag is set without GST_DEBUG_GRAPH_SHOW_FULL_PARAMS, a tooltip with full parameter values is added to each element.

`Gst.DebugGraphDetails.STATES` (8) –

show element states

`Gst.DebugGraphDetails.FULL_PARAMS` (16) –

show full element parameter values even if they are very long. When this flag is set, no tooltip is added since the full values are already visible in the label.

`Gst.DebugGraphDetails.ALL` (15) –

show all the typical details that one might want

`Gst.DebugGraphDetails.VERBOSE` (4294967295) –

show all details regardless of how large or verbose they make the resulting output

### Gst.DebugGraphDetails

Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE (not introspectable) and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (not introspectable).

##### Members

`Gst.DebugGraphDetails.MEDIA_TYPE` (1) –

show caps-name on edges

`Gst.DebugGraphDetails.CAPS_DETAILS` (2) –

show caps-details on edges

`Gst.DebugGraphDetails.NON_DEFAULT_PARAMS` (4) –

show modified parameters on elements. When this flag is set without GST_DEBUG_GRAPH_SHOW_FULL_PARAMS, a tooltip with full parameter values is added to each element.

`Gst.DebugGraphDetails.STATES` (8) –

show element states

`Gst.DebugGraphDetails.FULL_PARAMS` (16) –

show full element parameter values even if they are very long. When this flag is set, no tooltip is added since the full values are already visible in the label.

`Gst.DebugGraphDetails.ALL` (15) –

show all the typical details that one might want

`Gst.DebugGraphDetails.VERBOSE` (4294967295) –

show all details regardless of how large or verbose they make the resulting output

The results of the search are