annotate Plugins/Input/mpg123/README @ 1121:75ac6ae39225 trunk

[svn] - add section concerning the MP3 patents and commercial use
author nenolod
date Tue, 30 May 2006 23:28:14 -0700
parents be5e8d5da4d1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1099
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
1 libmpgdec - version 1.1
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
2 =======================
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
3
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
4 Copyright (c) 2005 - 2006 William Pitcock <nenolod@nenolod.net>
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
5 Portions copyright (c) 2001 Rafal Bosak <gyver@fanthom.irc.pl>
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
6 Portions copyright (c) 1999 Michael Hipp
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
7
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
8 What is libmpgdec?
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
9 ==================
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
10
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
11 libmpgdec is a fully compliant ISO MPEG 1/2 Layer 1/2/3 decoder,
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
12 which shares no code with the `dist10' package. Instead, libmpgdec
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
13 is an extensively refactored version of the mpg123 sources included
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
14 with XMMS, which were released under the GPL.
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
15
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
16 Due to the fact that the mpg123 source in XMMS were incomplete, several
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
17 components have been recreated and enhanced, including the synthesis
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
18 algorithms.
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
19
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
20 Unlike it's predecessor, libmpgdec performs band-limited synthesis in order
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
21 to try to correct many of the shortcomings of the MPEG format. Also unlike
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
22 it's predecessor, useless assembly-based routines have been removed.
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
23
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
24 Additionally, libmpgdec 1.1 includes new psychoaccoustic modeling routines
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
25 to try to enhance listening experience.
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
26
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
27 libmpgdec 1.1 is the first "public" release, i.e. a release seperate from
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
28 Audacious with extra portability components added to improve adaptability
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
29 in other players and encoders/decoders. Versions of Audacious after 1.1
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
30 will use this library package instead of using a statically linked decoder.
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
31
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
32 How do I compile libmpgdec?
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
33 ===========================
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
34
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
35 ./configure
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
36 make
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
37 make install
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
38
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
39 libmpgdec makes use of Autotools, and requires Glib 2.x.
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
40
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
41 Why does an MP3 decoder library require Glib?
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
42 =============================================
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
43
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
44 Simple. Glib lets us conveniently do things we would be able to not as cleanly
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
45 do otherwise.
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
46
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
47 How do I program with libmpgdec?
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
48 ================================
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
49
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
50 libmpgdec typically uses it's own thread for decoding. This is usually not a
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
51 major issue; however if it is, a lowlevel API (mainly undocumented) is provided
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
52 to allow for the implementation of custom event loops.
be5e8d5da4d1 [svn] - update docs
nenolod
parents:
diff changeset
53
1121
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
54 libmpgdec and patents
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
55 =====================
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
56
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
57 While I believe libmpgdec is not patent encumbered by the Huffman patents
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
58 (Thomson), and that it is not encumbered by any of the Fraunhofer or
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
59 Coding Technologies patents, I do not happen to be a patent lawyer, so
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
60 I cannot tell you for sure. I do however, know that the patents (in theory)
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
61 only cover linear synthesis-based decoding, and that libmpgdec uses
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
62 adaptive decoding. You can draw your own conclusions, there.
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
63
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
64 That said, if you are using libmpgdec in a commercial application, it may
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
65 be wise for you to go ahead and get patent licences from Fraunhofer.
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
66
75ac6ae39225 [svn] - add section concerning the MP3 patents and commercial use
nenolod
parents: 1099
diff changeset
67 -- William Pitcock <nenolod@nenolod.net>, May 30 2006