Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: README

Issue 1961133002: Update FLAC to 1.3.1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/flac.git@master
Patch Set: build config tweaks for Windows Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « COPYING.Xiph ('k') | README.chromium » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* FLAC - Free Lossless Audio Codec 1 /* FLAC - Free Lossless Audio Codec
2 * Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson 2 * Copyright (C) 2001-2009 Josh Coalson
3 * Copyright (C) 2011-2014 Xiph.Org Foundation
3 * 4 *
4 * This file is part the FLAC project. FLAC is comprised of several 5 * This file is part the FLAC project. FLAC is comprised of several
5 * components distributed under difference licenses. The codec libraries 6 * components distributed under different licenses. The codec libraries
6 * are distributed under Xiph.Org's BSD-like license (see the file 7 * are distributed under Xiph.Org's BSD-like license (see the file
7 * COPYING.Xiph in this distribution). All other programs, libraries, and 8 * COPYING.Xiph in this distribution). All other programs, libraries, and
8 * plugins are distributed under the LGPL or GPL (see COPYING.LGPL and 9 * plugins are distributed under the LGPL or GPL (see COPYING.LGPL and
9 * COPYING.GPL). The documentation is distributed under the Gnu FDL (see 10 * COPYING.GPL). The documentation is distributed under the Gnu FDL (see
10 * COPYING.FDL). Each file in the FLAC distribution contains at the top the 11 * COPYING.FDL). Each file in the FLAC distribution contains at the top the
11 * terms under which it may be distributed. 12 * terms under which it may be distributed.
12 * 13 *
13 * Since this particular file is relevant to all components of FLAC, 14 * Since this particular file is relevant to all components of FLAC,
14 * it may be distributed under the Xiph.Org license, which is the least 15 * it may be distributed under the Xiph.Org license, which is the least
15 * restrictive of those mentioned above. See the file COPYING.Xiph in this 16 * restrictive of those mentioned above. See the file COPYING.Xiph in this
16 * distribution. 17 * distribution.
17 */ 18 */
18 19
19 20
20 FLAC (http://flac.sourceforge.net/) is an Open Source lossless audio 21 FLAC is an Open Source lossless audio codec developed by Josh Coalson from 2001
21 codec developed by Josh Coalson. 22 to 2009.
23
24 From January 2012 FLAC is being maintained by Erik de Castro Lopo under the
25 auspices of the Xiph.org Foundation.
22 26
23 FLAC is comprised of 27 FLAC is comprised of
24 * `libFLAC', a library which implements reference encoders and 28 * `libFLAC', a library which implements reference encoders and
25 decoders for native FLAC and Ogg FLAC, and a metadata interface 29 decoders for native FLAC and Ogg FLAC, and a metadata interface
26 * `libFLAC++', a C++ object wrapper library around libFLAC 30 * `libFLAC++', a C++ object wrapper library around libFLAC
27 * `flac', a command-line program for encoding and decoding files 31 * `flac', a command-line program for encoding and decoding files
28 * `metaflac', a command-line program for viewing and editing FLAC 32 * `metaflac', a command-line program for viewing and editing FLAC
29 metadata 33 metadata
30 * player plugins for XMMS and Winamp 34 * player plugin for XMMS
31 * user and API documentation 35 * user and API documentation
32 36
33 The libraries (libFLAC, libFLAC++) are 37 The libraries (libFLAC, libFLAC++) are
34 licensed under Xiph.org's BSD-like license (see COPYING.Xiph). All other 38 licensed under Xiph.org's BSD-like license (see COPYING.Xiph). All other
35 programs and plugins are licensed under the GNU General Public License 39 programs and plugins are licensed under the GNU General Public License
36 (see COPYING.GPL). The documentation is licensed under the GNU Free 40 (see COPYING.GPL). The documentation is licensed under the GNU Free
37 Documentation License (see COPYING.FDL). 41 Documentation License (see COPYING.FDL).
38 42
39 43
40 =============================================================================== 44 ===============================================================================
41 FLAC - 1.2.1 - Contents 45 FLAC - 1.3.1 - Contents
42 =============================================================================== 46 ===============================================================================
43 47
44 - Introduction 48 - Introduction
45 - Prerequisites 49 - Prerequisites
46 - Note to embedded developers 50 - Note to embedded developers
47 - Building in a GNU environment 51 - Building in a GNU environment
48 - Building with Makefile.lite 52 - Building with Makefile.lite
49 - Building with MSVC 53 - Building with MSVC
50 - Building on Mac OS X 54 - Building on Mac OS X
51 55
52 56
53 =============================================================================== 57 ===============================================================================
54 Introduction 58 Introduction
55 =============================================================================== 59 ===============================================================================
56 60
57 This is the source release for the FLAC project. See 61 This is the source release for the FLAC project. See
58 62
59 doc/html/index.html 63 doc/html/index.html
60 64
61 for full documentation. 65 for full documentation.
62 66
63 A brief description of the directory tree: 67 A brief description of the directory tree:
64 68
65 doc/ the HTML documentation 69 doc/ the HTML documentation
70 examples/ example programs demonstrating the use of libFLAC and libF LAC++
66 include/ public include files for libFLAC and libFLAC++ 71 include/ public include files for libFLAC and libFLAC++
67 » man/ the man page for `flac' 72 » man/ the man pages for `flac' and `metaflac'
68 src/ the source code and private headers 73 src/ the source code and private headers
69 test/ the test scripts 74 test/ the test scripts
70 75
76 If you have questions about building FLAC that this document does not answer,
77 please submit them at the following tracker so this document can be improved:
78
79 https://sourceforge.net/p/flac/support-requests/
80
71 81
72 =============================================================================== 82 ===============================================================================
73 Prerequisites 83 Prerequisites
74 =============================================================================== 84 ===============================================================================
75 85
76 To build FLAC with support for Ogg FLAC you must have built and installed 86 To build FLAC with support for Ogg FLAC you must have built and installed
77 libogg according to the specific instructions below. You must have 87 libogg according to the specific instructions below. You must have
78 libogg 1.1.2 or greater, or there will be seeking problems with Ogg FLAC. 88 libogg 1.1.2 or greater, or there will be seeking problems with Ogg FLAC.
79 89
80 If you are building on x86 and want the assembly optimizations, you will 90 If you are building on x86 and want the assembly optimizations, you will
81 need to have NASM >= 0.98.30 installed according to the specific instructions 91 need to have NASM >= 0.98.30 installed according to the specific instructions
82 below. 92 below.
83 93
84 94
85 =============================================================================== 95 ===============================================================================
86 Note to embedded developers 96 Note to embedded developers
87 =============================================================================== 97 ===============================================================================
88 98
89 libFLAC has grown larger over time as more functionality has been 99 libFLAC has grown larger over time as more functionality has been
90 included, but much of it may be unnecessary for a particular embedded 100 included, but much of it may be unnecessary for a particular embedded
91 implementation. Unused parts may be pruned by some simple editing of 101 implementation. Unused parts may be pruned by some simple editing of
92 configure.in and src/libFLAC/Makefile.am; the following dependency 102 configure.ac and src/libFLAC/Makefile.am; the following dependency
93 graph shows which modules may be pruned without breaking things 103 graph shows which modules may be pruned without breaking things
94 further down: 104 further down:
95 105
96 metadata.h 106 metadata.h
97 stream_decoder.h 107 stream_decoder.h
98 format.h 108 format.h
99 109
100 stream_encoder.h 110 stream_encoder.h
101 stream_decoder.h 111 stream_decoder.h
102 format.h 112 format.h
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 There are a few FLAC-specific arguments you can give to 151 There are a few FLAC-specific arguments you can give to
142 `configure': 152 `configure':
143 153
144 --enable-debug : Builds everything with debug symbols and some 154 --enable-debug : Builds everything with debug symbols and some
145 extra (and more verbose) error checking. 155 extra (and more verbose) error checking.
146 156
147 --disable-asm-optimizations : Disables the compilation of the 157 --disable-asm-optimizations : Disables the compilation of the
148 assembly routines. Many routines have assembly versions for 158 assembly routines. Many routines have assembly versions for
149 speed and `configure' is pretty good about knowing what is 159 speed and `configure' is pretty good about knowing what is
150 supported, but you can use this option to build only from the 160 supported, but you can use this option to build only from the
151 C sources. May be necessary for building on OS X (Intel) 161 C sources. May be necessary for building on OS X (Intel).
152 162
153 --enable-sse : If you are building for an x86 CPU that supports 163 --enable-sse : If you are building for an x86 CPU that supports
154 SSE instructions, you can enable some of the faster routines 164 SSE instructions, you can enable some of the faster routines
155 if your operating system also supports SSE instructions. flac 165 if your operating system also supports SSE instructions. flac
156 can tell if the CPU supports the instructions but currently has 166 can tell if the CPU supports the instructions but currently has
157 no way to test if the OS does, so if it does, you must pass 167 no way to test if the OS does, so if it does, you must pass
158 this argument to configure to use the SSE routines. If flac 168 this argument to configure to use the SSE routines. If flac
159 crashes when built with this option you will have to go back and 169 crashes when built with this option you will have to go back and
160 configure without --enable-sse. Note that 170 configure without --enable-sse. Note that
161 --disable-asm-optimizations implies --disable-sse. 171 --disable-asm-optimizations implies --disable-sse.
162 172
163 --enable-local-xmms-plugin : Installs the FLAC XMMS plugin in 173 --enable-local-xmms-plugin : Installs the FLAC XMMS plugin in
164 $HOME/.xmms/Plugins, instead of the global XMMS plugin area 174 $HOME/.xmms/Plugins, instead of the global XMMS plugin area
165 (usually /usr/lib/xmms/Input). 175 (usually /usr/lib/xmms/Input).
166 176
167 --with-ogg= 177 --with-ogg=
168 --with-xmms-prefix= 178 --with-xmms-prefix=
169 --with-libiconv-prefix= 179 --with-libiconv-prefix=
170 Use these if you have these packages but configure can't find them. 180 Use these if you have these packages but configure can't find them.
171 181
172 If you want to build completely from scratch (i.e. starting with just 182 If you want to build completely from scratch (i.e. starting with just
173 configure.in and Makefile.am) you should be able to just run 'autogen.sh' 183 configure.ac and Makefile.am) you should be able to just run 'autogen.sh'
174 but make sure and read the comments in that file first. 184 but make sure and read the comments in that file first.
175 185
176 186
177 =============================================================================== 187 ===============================================================================
178 Building with Makefile.lite 188 Building with Makefile.lite
179 =============================================================================== 189 ===============================================================================
180 190
181 There is a more lightweight build system for do-it-yourself-ers. 191 There is a more lightweight build system for do-it-yourself-ers.
182 It is also useful if configure isn't working, which may be the 192 It is also useful if configure isn't working, which may be the
183 case since lately we've had some problems with different versions 193 case since lately we've had some problems with different versions
184 of automake and libtool. The Makefile.lite system should work 194 of automake and libtool. The Makefile.lite system should work
185 on GNU systems with few or no adjustments. 195 on GNU systems with few or no adjustments.
186 196
187 From the top level just 'make -f Makefile.lite'. You can 197 From the top level just 'make -f Makefile.lite'. You can
188 specify zero or one optional target from 'release', 'debug', 198 specify zero or one optional target from 'release', 'debug',
189 'test', or 'clean'. The default is 'release'. There is no 199 'test', or 'clean'. The default is 'release'. There is no
190 'install' target but everything you need will end up in the 200 'install' target but everything you need will end up in the
191 obj/ directory. 201 obj/ directory.
192 202
193 If you are not on an x86 system or you don't have nasm, you 203 If you are not on an x86 system or you don't have nasm, you
194 may have to change the DEFINES in src/libFLAC/Makefile.lite. If 204 may have to change the DEFINES in src/libFLAC/Makefile.lite. If
195 you don't have nasm, remove -DFLAC__HAS_NASM. If your target is 205 you don't have nasm, remove -DFLAC__HAS_NASM. If your target is
196 not an x86, change -DFLAC__CPU_IA32 to -DFLAC__CPU_UNKNOWN. 206 not an x86, change -DFLAC__CPU_IA32 to -DFLAC__CPU_UNKNOWN.
197 207
198 208
199 =============================================================================== 209 ===============================================================================
200 Building with MSVC 210 Building with MSVC
201 =============================================================================== 211 ===============================================================================
202 212
203 There are .dsp projects and a master FLAC.dsw workspace to build all 213 There are .vcproj projects and a master FLAC.sln solution to build all
204 the libraries and executables with MSVC6. There are also .vcproj 214 the libraries and executables with MSVC 2005 or newer.
205 projects and a master FLAC.sln solution to build all the libraries and
206 executables with VC++ 2005.
207 215
208 Prerequisite: you must have the Ogg libraries installed as described 216 Prerequisite: you must have the Ogg libraries installed as described
209 later. 217 later.
210 218
211 Prerequisite: you must have nasm installed, and nasmw.exe must be in 219 Prerequisite: you must have nasm installed, and nasm.exe must be in
212 your PATH, or the path to nasmw.exe must be added to the list of 220 your PATH, or the path to nasm.exe must be added to the list of
213 directories for executable files in the MSVC global options. 221 directories for executable files in the MSVC global options.
214 222
215 MSVC6:
216 To build everything, run Developer Studio, do File|Open Workspace,
217 and open FLAC.dsw. Select "Build | Set active configuration..."
218 from the menu, then in the dialog, select "All - Win32 Release" (or
219 Debug if you prefer). Click "Ok" then hit F7 to build.
220
221 VC++ 2005:
222 To build everything, run Visual Studio, do File|Open and open FLAC.sln. 223 To build everything, run Visual Studio, do File|Open and open FLAC.sln.
223 From the dropdown in the toolbar, select "Release" instead of "Debug", 224 From the dropdown in the toolbar, select "Release" instead of "Debug",
224 then hit F7 to build. 225 then do Build|Build Solution.
225 226
226 Either way, this will build all libraries both statically (e.g. 227 This will build all libraries both statically (e.g.
227 obj\release\lib\libFLAC_static.lib) and as DLLs (e.g. 228 objs\release\lib\libFLAC_static.lib) and as DLLs (e.g.
228 obj\release\lib\libFLAC.dll), and it will build all binaries, statically 229 objs\release\lib\libFLAC.dll), and it will build all binaries, statically
229 linked (e.g. obj\release\bin\flac.exe). 230 linked (e.g. objs\release\bin\flac.exe).
230 231
231 Everything will end up in the "obj" directory. DLLs and .exe files 232 Everything will end up in the "objs" directory. DLLs and .exe files
232 are all that are needed and can be copied to an installation area and 233 are all that are needed and can be copied to an installation area and
233 added to the PATH. The plugins have to be copied to their appropriate 234 added to the PATH.
234 place in the player area. For Winamp2 this is <winamp2-dir>\Plugins.
235 235
236 By default the code is configured with Ogg support. Before building FLAC 236 By default the code is configured with Ogg support. Before building FLAC
237 you will need to get the Ogg source distribution 237 you will need to get the Ogg source distribution
238 (see http://xiph.org/ogg/vorbis/download/), build ogg_static.lib (load and 238 (see http://xiph.org/downloads/), build libogg_static.lib (load
239 build win32\ogg_static.dsp), copy ogg_static.lib into FLAC's 239 win32\libogg_static.sln, change solution configuration to "Release" and
240 'obj\release\lib' directory, and copy the entire include\ogg tree into 240 code generation to "Multi-threaded (/MT)", then build), copy libogg_static.lib
241 FLAC's 'include' directory (so that there is an 'ogg' directory in FLAC's 241 into FLAC's 'objs\release\lib' directory, and copy the entire include\ogg tree
242 into FLAC's 'include' directory (so that there is an 'ogg' directory in FLAC's
242 'include' directory with the files ogg.h, os_types.h and config_types.h). 243 'include' directory with the files ogg.h, os_types.h and config_types.h).
243 244
244 If you want to build without Ogg support, instead edit all .dsp or 245 If you want to build without Ogg support, instead edit all .vcproj files
245 .vcproj files and remove any occurrences of "/D FLAC__HAS_OGG". 246 and remove any "FLAC__HAS_OGG" definitions.
246 247
247 248
248 =============================================================================== 249 ===============================================================================
249 Building on Mac OS X 250 Building on Mac OS X
250 =============================================================================== 251 ===============================================================================
251 252
252 If you have Fink or a recent version of OS X with the proper autotooles, 253 If you have Fink or a recent version of OS X with the proper autotools,
253 the GNU flow above should work. The Project Builder project has been 254 the GNU flow above should work.
254 deprecated but we are working on replacing it with an Xcode equivalent.
OLDNEW
« no previous file with comments | « COPYING.Xiph ('k') | README.chromium » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698