<?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></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.  These are stored in a directory called
<filename>plugins</filename> inside the
<filename>.gstreamer-&GST_API_VERSION;</filename> directory in the user's
home directory.
    </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>
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></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>

</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>
  </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> 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>

</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>

</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.
</para>
        </listitem>
      </varlistentry>
    </variablelist>

 Use <option>all</option> to enable all tracing flags.
  </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>
