<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % version-entities SYSTEM "version.entities">
%version-entities;
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<refentry id="gst-running" revision="08 Oct 2005">
<refmeta>
<refentrytitle>Running GStreamer Applications</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GStreamer Core</refmiscinfo>
</refmeta>

<refnamediv>
<refname>Running GStreamer Applications</refname>
<refpurpose>
How to run and debug your GStreamer application
</refpurpose>
</refnamediv>

<refsect1>
<title>Running and debugging GStreamer Applications</title>

<refsect2>
<title>Environment variables</title>

<para> 
GStreamer inspects a few of environment variables in addition to standard
variables like <envar>LANG</envar>, <envar>PATH</envar> or <envar>HOME</envar>. 
</para>

<formalpara id="GST_PLUGIN_SYSTEM_PATH">
  <title><envar>GST_PLUGIN_SYSTEM_PATH</envar>,
         <envar>GST_PLUGIN_SYSTEM_PATH_1_0</envar></title>

  <para>

This environment variable can be set to a colon-separated list of paths.
If this variable is not set, GStreamer will fill in this list for you
with
<itemizedlist>
  <listitem>
    <para>
plug-ins in the user's home directory, or rather the user's "data home"
directory according to the xdg base dir specification. Usually this will be
a directory called
<filename>plugins</filename> inside the
<filename>.local/share/.gstreamer-&GST_API_VERSION;</filename> directory in
the user's home directory by default, though this search path may change if
the XDG_DATA_HOME environment variable is set.
    </para>
  </listitem>
  <listitem>
    <para>
plug-ins installed system-wide.  On this system, they are stored in
<filename>&GST_PLUGINS_DIR;</filename>.
    </para>

</listitem>
</itemizedlist>
   </para>

    <para>
GStreamer will scan these paths for GStreamer plug-ins.  These plug-ins will
be loaded after the plug-ins in the GST_PLUGIN_PATH variable below.

The paths are scanned in the given order.  This allows a user to override
system-installed plug-ins with his own versions.
   </para>
  <para>
The GST_PLUGIN_SYSTEM_PATH_1_0 variant is useful if both the old GStreamer 0.10
version and the new GStreamer 1.0 version need to be pointed to new plugin
paths. The latter will use the _1_0 variant over the non-versioned one if
it is set.
  </para>

    <para>
Setting this variable to an empty string will cause GStreamer not to scan any
system paths at all for plug-ins.  This can be useful if you're running
uninstalled (for development purposes) or while running testsuites.
   </para>

</formalpara>

<formalpara id="GST_PLUGIN_PATH">
  <title><envar>GST_PLUGIN_PATH</envar>, <envar>GST_PLUGIN_PATH_1_0</envar></title>

  <para>
This environment variable can be set to a colon-separated list of paths.
GStreamer will scan these paths for GStreamer plug-ins.  These plug-ins will
be loaded in addition to, and before, the plug-ins in the system paths.
  </para>
  <para>
The GST_PLUGIN_PATH_1_0 variant is useful if both the old GStreamer 0.10
version and the new GStreamer 1.0 version need to be pointed to new plugin
paths. The latter will use the _1_0 variant over the non-versioned one if
it is set.
  </para>
</formalpara>

<formalpara id="GST_DEBUG">
  <title><envar>GST_DEBUG</envar></title>

  <para>
If GStreamer has been configured with <option>--enable-gst-debug=yes</option>,
this variable can be set to a list of debug options, which cause GStreamer
to print out different types of debugging information to stderr.
  </para>
  <para>
The variable takes a comma-separated list of "category_name:level" pairs
to set specific levels for the individual categories.
The level value ranges from 0 (nothing) to 9 (MEMDUMP).
    <variablelist>

      <varlistentry>
        <term>1 - <option>ERROR</option></term>
        <listitem>
<para>
Logs all fatal errors.  These are errors that do not allow the core or elements
to perform the requested action.  The application can still recover if
programmed to handle the conditions that triggered the error.
</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>2 - <option>WARNING</option></term>
        <listitem>
<para>
Logs all warnings.  Typically these are non-fatal, but user-visible problems
are expected to happen.
</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>3 - <option>FIXME</option></term>
        <listitem>
<para>
Logs all fixme messages. Fixme messages are messages that indicate that something
in the executed code path is not fully implemented or handled yet.  The purpose
of this message is to make it easier to spot incomplete/unfinished pieces of
code when reading the debug log.
</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>4 - <option>INFO</option></term>
        <listitem>
<para>
Logs all informational messages.  These are typically used for events in
the system that only happen once, or are important and rare enough to be
logged at this level.
</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>5 - <option>DEBUG</option></term>
        <listitem>
<para>
Logs all debug messages.  These are general debug messages for events
that happen only a limited number of times during an object's lifetime;
these include setup, teardown, change of parameters, ...
</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>6 - <option>LOG</option></term>
        <listitem>
<para>
Logs all log messages.  These are messages for events
that happen repeatedly during an object's lifetime;
these include streaming and steady-state conditions.
</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>7 - <option>TRACE</option></term>
        <listitem>
<para>
Logs all trace messages.  These messages for events
that happen repeatedly during an object's lifetime such as the
ref/unref cycles.
</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>9 - <option>MEMDUMP</option></term>
        <listitem>
<para>
Log all memory dump messages. Memory dump messages are used to log
(small) chunks of data as memory dumps in the log. They will be displayed
as hexdump with ASCII characters.
</para>
        </listitem>
      </varlistentry>
    </variablelist>

 The category_name can contain "<option>*"</option> as a wildcard.
  </para>

  <para>
For example, setting <envar>GST_DEBUG</envar> to
<option>GST_AUTOPLUG:6,GST_ELEMENT_*:4</option>, will cause the
<option>GST_AUTOPLUG</option> category to be logged at full
<option>LOG</option> level, while all categories starting with
<option>GST_ELEMENT_</option> will be logged at <option>INFO</option> level.
  </para>

  <para>
To get all possible debug output, set
<envar>GST_DEBUG</envar>
to <option>*:9</option>. For debugging purposes a <option>*:6</option> debug
log is usually the most useful, as it contains all important information, but
hides a lot of noise such as refs/unrefs. For bug reporting purposes, a
<option>*:6</option> log is also what will be requested usually. It's often
also worth running with <option>*:3</option> to see if there are any
non-fatal errors or warnings that might be related to the problem at hand.
  </para>

  <para>
Since GStreamer 1.2 it is also possible to specify debug levels by name,
e.g. GST_DEBUG=*:WARNING,*audio*:LOG
  </para>

</formalpara>

<formalpara id="GST_DEBUG_NO_COLOR">
  <title><envar>GST_DEBUG_NO_COLOR</envar></title>

  <para>
Set this environment variable to any value ("1" typically) to switch off
colouring in GST_DEBUG output. This has the same effect as specifying the
<option>--gst-debug-no-color</option> or
<option>--gst-debug-color-mode</option>=off command line option to
well-behaved GStreamer applications (ie. those that pass command-line
options correctly to GStreamer).
This is particularly useful to reduce the size of debug output and also allows
for the output to be compressed much better than with colours turned on.
  </para>
  <para>
Has the same effect as setting GST_DEBUG_COLOR_MODE environment variable to
"off".
  </para>

</formalpara>

<formalpara id="GST_DEBUG_COLOR_MODE">
  <title><envar>GST_DEBUG_COLOR_MODE</envar></title>

  <para>
Set this environment variable to change log colouring in GST_DEBUG output.
Possible values:
    <variablelist>

      <varlistentry>
        <term><option>on</option></term>
        <listitem>
          <para>
Enables debug log output coloring. Uses default coloring method for current
platform. This is the default.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>off</option></term>
        <listitem>
          <para>
Disables debug log output coloring. This has the same effect as specifying the
<option>--gst-debug-color-mode</option>=off command line option to
well-behaved GStreamer applications (ie. those that pass command-line
options correctly to GStreamer).
This is particularly useful to reduce the size of debug output and also allows
for the output to be compressed much better than with colours turned on.
          </para>
          <para>
Has the same effect as setting GST_DEBUG_NO_COLOR environment variable to
any value.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>auto</option></term>
        <listitem>
          <para>
Same as <option>on</option>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>disable</option></term>
        <listitem>
          <para>
Same as <option>off</option>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>unix</option></term>
        <listitem>
          <para>
Enables debug log output coloring and forces the use of UNIX termial codes
for coloring, even if this method is not normally used on current platform.
This has the same effect as specifying the
<option>--gst-debug-color-mode</option>=unix command line option to
well-behaved GStreamer applications (ie. those that pass command-line options
correctly to GStreamer).
This is particularly useful to dump debug output into a file on non-UNIX
platforms to be sent to developers who have viewers that support UNIX terminal
codes.
          </para>
        </listitem>
      </varlistentry>

    </variablelist>
  </para>

</formalpara>

<formalpara id="GST_DEBUG_OPTIONS">
  <title><envar>GST_DEBUG_OPTIONS</envar></title>

  <para>
This environment variable can be used to tweak the behaviour of the debugging
system. Currently the only options supported are "pretty-tags" and "full-tags".
In "pretty-tags" mode (the default), taglists in the debug log will be
serialized so that only the first few and last few bytes of a buffer-type tag
will be serialized into the log, to avoid dumping hundreds of lines of useless
output into the log in case of large image tags and the like.
  </para>

</formalpara>

<formalpara id="GST_DEBUG_DUMP_DOT_DIR">
  <title><envar>GST_DEBUG_DUMP_DOT_DIR</envar></title>

  <para>
Set this environment variable to a path to turn on all
#GST_DEBUG_BIN_TO_DOT_FILE or #GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS calls
and have the dot files in that location.
  </para>
  <para>
This will only work if the application in question makes these calls in
strategic places (like when the pipeline state changes or an error occurs).
gst-launch-&GST_API_VERSION; is one such application.
  </para>
  <para>
These .dot files can then be turned into images using the 'dot' utility
from the graphviz set of tools, like this:
  <command>dot foo.dot -Tsvg -o foo.svg</command> or
  <command>dot foo.dot -Tpng -o foo.png</command> or
  <command>dot foo.dot -Tjpg -o foo.jpg</command>.
  </para>

</formalpara>

<formalpara id="GST_REGISTRY">
  <title><envar>GST_REGISTRY</envar>, <envar>GST_REGISTRY_1_0</envar></title>

  <para>
Set this environment variable to make GStreamer use a different file for the
plugin cache / registry than the default one. This is useful when operating
in a separate environment which should not affect the default cache in the
user's home directory.
  </para>

</formalpara>

<formalpara id="GST_REGISTRY_FORK">
  <title><envar>GST_REGISTRY_FORK</envar></title>

  <para>
Set this environment variable to "no" to prevent GStreamer from forking on
startup in order to update the plugin registry. This is useful for debugging
purposes, but should not be used under normal circumstances, since it means
that plugins may be loaded into memory even if they are not needed by the
application.
  </para>

</formalpara>

<formalpara id="GST_REGISTRY_UPDATE">
  <title><envar>GST_REGISTRY_UPDATE</envar></title>

  <para>
Set this environment variable to "no" to prevent GStreamer from updating the
plugin registry. This is useful for embedded device which is not updating the
plugins frequently, it will save time when doing gst_init().
  </para>

</formalpara>

<formalpara id="GST_TRACE">
  <title><envar>GST_TRACE</envar></title>

  <para>
    Enable memory allocation tracing. Most GStreamer objects have support for
    tracing the number of unfreed objects and their memory pointers.
  </para>
  <para>
The variable takes a comma-separated list of tracing options to enable.
    <variablelist>

      <varlistentry>
        <term>live</term>
        <listitem>
<para>
  Counts all live objects and dumps an overview of the number of unfreed
  objects at program exit.
</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>mem-live</term>
        <listitem>
<para>
  Keep track of the unfreed memory pointers and dump an overview of all unfreed
  memory at program exit. Together with a level 9 debug log this can be used to
  follow the lifecycle of leaked objects in order to track down where they are
  leaked. This can be useful for debugging memory leaks in situations where
  tools such as valgrind are not available, or not an option.
</para>
        </listitem>
      </varlistentry>
    </variablelist>

 Use <option>all</option> to enable all tracing flags.
  </para>
</formalpara>

<formalpara id="GST_DEBUG_FILE">
  <title><envar>GST_DEBUG_FILE</envar></title>

  <para>
  Set this variable to a file path to redirect all GStreamer debug
  messages to this file. If left unset, debug messages with be output
  unto the standard error.
  </para>

</formalpara>

<formalpara id="ORC_CODE">
  <title><envar>ORC_CODE</envar></title>

  <para>
Useful Orc environment variable. Set ORC_CODE=debug to enable debuggers
such as gdb to create useful backtraces from Orc-generated code.  Set
ORC_CODE=backup or ORC_CODE=emulate if you suspect Orc's SIMD code
generator is producing incorrect code (Quite a few important
GStreamer plugins like videotestsrc, audioconvert or audioresample use Orc).
One can also combine flags like ORC_CODE=backup,debug.
  </para>

</formalpara>

<formalpara id="G_DEBUG">
  <title><envar>G_DEBUG</envar></title>

  <para>
Useful GLib environment variable. Set G_DEBUG=fatal_warnings to make
GStreamer programs abort when a critical warning such as an assertion failure
occurs. This is useful if you want to find out which part of the code caused
that warning to be triggered and under what circumstances. Simply set G_DEBUG
as mentioned above and run the program in gdb (or let it core dump). Then get
a stack trace in the usual way.
  </para>

</formalpara>

<formalpara id="G_SLICE">
  <title><envar>G_SLICE</envar></title>

  <para>
Useful GLib environment variable. Set G_SLICE=always-malloc when running
GStreamer programs in valgrind, or debugging memory leaks with other tools.
See the GLib API reference for more details.
  </para>

</formalpara>

</refsect2>

</refsect1>

</refentry>
