Mercurial > audlegacy
view Plugins/Input/mpg123/README @ 1446:7610ab1233a7 trunk
[svn] - be more paranoid about NULL pointers
author | nenolod |
---|---|
date | Fri, 28 Jul 2006 02:19:18 -0700 |
parents | 75ac6ae39225 |
children |
line wrap: on
line source
libmpgdec - version 1.1 ======================= Copyright (c) 2005 - 2006 William Pitcock <nenolod@nenolod.net> Portions copyright (c) 2001 Rafal Bosak <gyver@fanthom.irc.pl> Portions copyright (c) 1999 Michael Hipp What is libmpgdec? ================== libmpgdec is a fully compliant ISO MPEG 1/2 Layer 1/2/3 decoder, which shares no code with the `dist10' package. Instead, libmpgdec is an extensively refactored version of the mpg123 sources included with XMMS, which were released under the GPL. Due to the fact that the mpg123 source in XMMS were incomplete, several components have been recreated and enhanced, including the synthesis algorithms. Unlike it's predecessor, libmpgdec performs band-limited synthesis in order to try to correct many of the shortcomings of the MPEG format. Also unlike it's predecessor, useless assembly-based routines have been removed. Additionally, libmpgdec 1.1 includes new psychoaccoustic modeling routines to try to enhance listening experience. libmpgdec 1.1 is the first "public" release, i.e. a release seperate from Audacious with extra portability components added to improve adaptability in other players and encoders/decoders. Versions of Audacious after 1.1 will use this library package instead of using a statically linked decoder. How do I compile libmpgdec? =========================== ./configure make make install libmpgdec makes use of Autotools, and requires Glib 2.x. Why does an MP3 decoder library require Glib? ============================================= Simple. Glib lets us conveniently do things we would be able to not as cleanly do otherwise. How do I program with libmpgdec? ================================ libmpgdec typically uses it's own thread for decoding. This is usually not a major issue; however if it is, a lowlevel API (mainly undocumented) is provided to allow for the implementation of custom event loops. libmpgdec and patents ===================== While I believe libmpgdec is not patent encumbered by the Huffman patents (Thomson), and that it is not encumbered by any of the Fraunhofer or Coding Technologies patents, I do not happen to be a patent lawyer, so I cannot tell you for sure. I do however, know that the patents (in theory) only cover linear synthesis-based decoding, and that libmpgdec uses adaptive decoding. You can draw your own conclusions, there. That said, if you are using libmpgdec in a commercial application, it may be wise for you to go ahead and get patent licences from Fraunhofer. -- William Pitcock <nenolod@nenolod.net>, May 30 2006