<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY gstreamer-download-http "&gnome-download-http;/gstreamer/0.10/gstreamer-&gstreamer-version;.tar.xz">
  <!ENTITY gstreamer-download-ftp  "&gnome-download-ftp;/gstreamer/0.10/gstreamer-&gstreamer-version;.tar.xz">
  <!ENTITY gstreamer-md5sum        "15389c73e091b1dda915279c388b9cb2">
  <!ENTITY gstreamer-size          "2.9 MB">
  <!ENTITY gstreamer-buildsize     "90 MB">
  <!ENTITY gstreamer-time          "1.2 SBU">
]>

<sect1 id="gstreamer" xreflabel="GStreamer-&gstreamer-version;">
  <?dbhtml filename="gstreamer.html"?>

  <sect1info>
    <othername>$LastChangedBy: pierre $</othername>
    <date>$Date: 2015-02-26 16:54:24 -0500 (Thu, 26 Feb 2015) $</date>
  </sect1info>

  <title>GStreamer-&gstreamer-version;</title>

  <indexterm zone="gstreamer">
    <primary sortas="a-GStreamer">GStreamer</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to GStreamer</title>

    <para>
      <application>GStreamer</application> is a streaming media framework that
      enables applications to share a common set of plugins for things like
      video decoding and encoding, audio encoding and decoding, audio and video
      filters, audio visualisation, Web streaming and anything else that streams
      in real-time or otherwise. It is modelled after research software worked
      on at the Oregon Graduate Institute. After installing
      <application>GStreamer</application>, you'll likely need to install one or
      more of the <xref linkend="gst-plugins-bad"/>,
      <xref linkend="gst-plugins-good"/>, <xref linkend="gst-plugins-ugly"/> and
      <xref linkend="gst-ffmpeg"/> packages.
    </para>

    &lfs77_checked;

    &gst-compat;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>
          Download (HTTP): <ulink url="&gstreamer-download-http;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download (FTP): <ulink url="&gstreamer-download-ftp;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download MD5 sum: &gstreamer-md5sum;
        </para>
      </listitem>
      <listitem>
        <para>
          Download size: &gstreamer-size;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated disk space required: &gstreamer-buildsize;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated build time: &gstreamer-time;
        </para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">GStreamer Dependencies</bridgehead>

    <bridgehead renderas="sect4">Required</bridgehead>
    <para role="required">
      <xref linkend="glib2"/> and
      <xref linkend="libxml2"/>
    </para>

    <bridgehead renderas="sect4">Optional (Required if building GNOME)</bridgehead>
    <para role="optional">
      <xref linkend="gobject-introspection"/>
    </para>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="gsl"/>,
      <xref linkend="valgrind"/>
      (optionally used during the unit regression tests)
    </para>

    <bridgehead renderas="sect4">
      Optional (Required to rebuild the API Documentation)
    </bridgehead>
    <para role="optional">
      <xref linkend="gtk-doc"/> and
      <xref linkend="python2"/> 
    </para>

    <bridgehead renderas="sect4">Optional (Required to Build Manuals)</bridgehead>
    <para role="optional">
      <xref linkend="docbook-utils"/>,
      <xref linkend="gs"/>
      <xref linkend="libxslt"/> and
      <xref linkend="texlive"/> (or <xref linkend="tl-installer"/>)
    </para>

    <para condition="html" role="usernotes">User Notes:
      <ulink url="&blfs-wiki;/gstreamer"/>
    </para>
  </sect2>

  <sect2 role="installation">
    <title>Installation of GStreamer</title>

    <para>
      Install <application>GStreamer</application> by running the following
      commands:
    </para>

<screen><userinput>sed -i  -e '/YYLEX_PARAM/d'                                       \
        -e '/parse-param.*scanner/i %lex-param { void *scanner }' \
            gst/parse/grammar.y &amp;&amp;

./configure --prefix=/usr \
            --disable-static &amp;&amp;
make</userinput></screen>

    <para>
      To test the results, issue: <command>make check</command>. There are
      many other <filename>Makefile</filename> targets you can specify for
      running the tests, issue <command>make -C tests/check help</command>
      to see the complete list.
    </para>

    <para>
      Now, as the <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>make install &amp;&amp;
install -v -m755 -d /usr/share/doc/gstreamer-0.10/design &amp;&amp;
install -v -m644 docs/design/*.txt \
                    /usr/share/doc/gstreamer-0.10/design &amp;&amp;

if [ -d /usr/share/doc/gstreamer-0.10/faq/html ]; then
    chown -v -R root:root \
        /usr/share/doc/gstreamer-0.10/*/html
fi</userinput></screen>

    <sect3>
      <title>Testing the Installation</title>

      <para>
        To test the functionality of the
        <application>GStreamer</application> installation, you can run a
        simple test as an unprivileged user (you may have to run
        <command>ldconfig</command> as the
        <systemitem class="username">root</systemitem> user before
        attempting the test).
      </para>

<screen><userinput>gst-launch -v fakesrc num_buffers=5 ! fakesink</userinput></screen>

      <para>
        If the command outputs a series of messages from fakesrc and
        fakesink, everything is okay.
      </para>

    </sect3>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para>
      <command>sed ... gst/parse/grammar.y</command>: This command corrects
      a problem caused by the most recent version of Bison.
    </para>

    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
      href="../../xincludes/static-libraries.xml"/>

    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
      href="../../xincludes/gtk-doc-rebuild.xml"/>

    <para>
      <option>--enable-docbook</option>: This parameter is used to build
      HTML, PDF and PostScript versions of the
      <application>GStreamer</application> User's Manual, FAQ and Writer's
      Guide. Note that you must have all the listed dependencies installed.
    </para>

    <para>
      <command>chown -v -R root:root ...</command>: The documentation is
      installed with the ownership of the user who untarred and built the
      package. This command changes the ownership of the installed
      documentation files to root:root, and is only executed if the
      documentation files were built and installed.
    </para>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directories</segtitle>

      <seglistitem>
        <seg>
          gst-feedback, gst-feedback-0.10, gst-inspect, gst-inspect-0.10,
          gst-launch, gst-launch-0.10, gst-typefind, gst-typefind-0.10,
          gst-xmlinspect, gst-xmlinspect-0.10, gst-xmllaunch and
          gst-xmllaunch-0.10
        </seg>
        <seg>
          libgstbase-0.10.so, libgstcheck-0.10.so, libgstcontroller-0.10.so,
          libgstdataprotocol-0.10.so, libgstnet-0.10.so and
          libgstreamer-0.10.so
        </seg>
        <seg>
          /usr/include/gstreamer-0.10,
          /usr/lib/gstreamer-0.10,
          /usr/libexec/gstreamer-0.10,
          /usr/share/gtk-doc/html/gstreamer-0.10,
          /usr/share/gtk-doc/html/gstreamer-libs-0.10 and
          /usr/share/gtk-doc/html/gstreamer-plugins-0.10
        </seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="gst-feedback">
        <term><command>gst-feedback-0.10</command></term>
        <listitem>
          <para>
            generates debug info for <application>GStreamer</application>
            bug reports.
          </para>
          <indexterm zone="gstreamer gst-feedback">
            <primary sortas="b-gst-feedback">gst-feedback-0.10</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gst-inspect">
        <term><command>gst-inspect-0.10</command></term>
        <listitem>
          <para>
            prints information about a
            <application>GStreamer</application> plugin or element.
          </para>
          <indexterm zone="gstreamer gst-inspect">
            <primary sortas="b-gst-inspect">gst-inspect-0.10</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gst-launch">
        <term><command>gst-launch-0.10</command></term>
        <listitem>
          <para>
            is a tool that builds and runs basic
            <application>GStreamer</application> pipelines.
          </para>
          <indexterm zone="gstreamer gst-launch">
            <primary sortas="b-gst-launch">gst-launch-0.10</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gst-typefind">
        <term><command>gst-typefind-0.10</command></term>
        <listitem>
          <para>
            uses the <application>GStreamer</application> type finding system
            to determine the relevant <application>GStreamer</application>
            plugin to parse or decode a file, and determine the corresponding
            MIME type.
          </para>
          <indexterm zone="gstreamer gst-typefind">
            <primary sortas="b-gst-typefind">gst-typefind-0.10</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gst-xmlinspect">
        <term><command>gst-xmlinspect-0.10</command></term>
        <listitem>
          <para>
            prints information about a <application>GStreamer</application>
            plugin or element in XML document format.
          </para>
          <indexterm zone="gstreamer gst-xmlinspect">
            <primary sortas="b-gst-xmlinspect">gst-xmlinspect-0.10</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gst-xmllaunch">
        <term><command>gst-xmllaunch-0.10</command></term>
        <listitem>
          <para>
            is used to build and run a basic <application>GStreamer</application>
            pipeline, loading it from an XML description.
          </para>
          <indexterm zone="gstreamer gst-xmllaunch">
            <primary sortas="b-gst-xmllaunch">gst-xmllaunch-0.10</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
