<?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 lame-download-http "&sourceforge-repo;/lame/lame-&lame-version;.tar.gz">
  <!ENTITY lame-download-ftp  " ">
  <!ENTITY lame-md5sum        "84835b313d4a8b68f5349816d33e07ce">
  <!ENTITY lame-size          "1.4 MB">
  <!ENTITY lame-buildsize     "11 MB">
  <!ENTITY lame-time          "0.3 SBU">
]>

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

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2015-02-23 00:16:54 -0500 (Mon, 23 Feb 2015) $</date>
  </sect1info>

  <title>LAME-&lame-version;</title>

  <indexterm zone="lame">
    <primary sortas="a-LAME">LAME</primary>
  </indexterm>

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

    <para>
      The <application>LAME</application> package contains an MP3
      encoder and optionally, an MP3 frame analyzer. This is useful
      for creating and analyzing compressed audio files.
    </para>

    &lfs77_checked;

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

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

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <ulink url="http://dmalloc.com/">Dmalloc</ulink>,
      <ulink url="http://linux.softpedia.com/get/Programming/Debuggers/Electric-Fence-3305.shtml/">Electric Fence</ulink>,
      <xref linkend="libsndfile"/> and
      <xref linkend="nasm"/>
    </para>

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

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

    <para>
      First, fix a compiler error introduced by
      <application>&gcc-490;</application> on 32-bit machines:
    </para>

<screen><userinput>case $(uname -m) in
   i?86) sed -i -e '/xmmintrin\.h/d' configure ;;
esac</userinput></screen>

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

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

    <para>
      To test the results, issue: <command>make test</command>.
    </para>

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

<screen role="root"><userinput>make pkghtmldir=/usr/share/doc/lame-&lame-version; install</userinput></screen>

  </sect2>

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

    <para>
      <command>sed -i -e '/xmmintrin\.h/d' configure</command> : with
      gcc-4.9.0 and above, the compiler issues an error on 32-bit machines,
      while compiling <filename>xmm_quantize_sub.c</filename>. The error
      message is: <literal>error: inlining failed in call to always_inline
      '_mm_loadu_ps'</literal>. This sed makes it appear as if
      <filename>xmmintrin.h</filename> is not present. Do not use this on other
      versions of gcc.
    </para>

    <para>
      <parameter>--enable-mp3rtp</parameter>: This switch enables building
      the encode-to-RTP program.
    </para>

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

    <para>
      <option>--enable-nasm</option>: Enable the use of
      <xref linkend="nasm"/> to compile optimized assembly routines.
    </para>

  </sect2>

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

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

      <seglistitem>
        <seg>
          lame and mp3rtp
        </seg>
        <seg>
          libmp3lame.so
        </seg>
        <seg>
          /usr/include/lame and
          /usr/share/doc/lame-&lame-version;
        </seg>
      </seglistitem>
    </segmentedlist>

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

      <varlistentry id="lame-prog">
        <term><command>lame</command></term>
        <listitem>
          <para>
            creates MP3 audio files from raw
            PCM or <filename>.wav</filename> data.
          </para>
          <indexterm zone="lame lame-prog">
            <primary sortas="b-lame">lame</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="mp3rtp">
        <term><command>mp3rtp</command></term>
        <listitem>
          <para>
            is used to encode MP3 with RTP streaming of the output.
          </para>
          <indexterm zone="lame mp3rtp">
            <primary sortas="b-mp3rtp">mp3rtp</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libmp3lame">
        <term><filename class="libraryfile">libmp3lame.so</filename></term>
        <listitem>
          <para>
            libraries provide the functions necessary to convert
            raw PCM and WAV files to MP3 files.
          </para>
          <indexterm zone="lame libmp3lame">
            <primary sortas="c-libmp3lame">libmp3lame.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
