X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=README;h=7eaec95ef46da18ac2dba0ebec0a693c8d5541ba;hb=refs%2Fheads%2Ftizen_3.0_ivi;hp=63e6c057221d52cd590cbd27ed6c5e2c09da32f8;hpb=cf3f3388985ed43d6391dc78389b5be8c846cfec;p=platform%2Fupstream%2Fflac.git diff --git a/README b/README index 63e6c05..7eaec95 100644 --- a/README +++ b/README @@ -1,14 +1,15 @@ /* FLAC - Free Lossless Audio Codec - * Copyright (C) 2001,2002,2003 Josh Coalson + * Copyright (C) 2001-2009 Josh Coalson + * Copyright (C) 2011-2013 Xiph.Org Foundation * * This file is part the FLAC project. FLAC is comprised of several - * components distributed under difference licenses. The codec libraries + * components distributed under different licenses. The codec libraries * are distributed under Xiph.Org's BSD-like license (see the file * COPYING.Xiph in this distribution). All other programs, libraries, and - * plugins are distributed under the GPL (see COPYING.GPL). The documentation - * is distributed under the Gnu FDL (see COPYING.FDL). Each file in the - * FLAC distribution contains at the top the terms under which it may be - * distributed. + * plugins are distributed under the LGPL or GPL (see COPYING.LGPL and + * COPYING.GPL). The documentation is distributed under the Gnu FDL (see + * COPYING.FDL). Each file in the FLAC distribution contains at the top the + * terms under which it may be distributed. * * Since this particular file is relevant to all components of FLAC, * it may be distributed under the Xiph.Org license, which is the least @@ -17,22 +18,23 @@ */ -FLAC (http://flac.sourceforge.net/) is an Open Source lossless audio -codec developed by Josh Coalson. +FLAC is an Open Source lossless audio codec developed by Josh Coalson from 2001 +to 2009. + +From January 2012 FLAC is being maintained by Erik de Castro Lopo under the +auspices of the Xiph.org Foundation. FLAC is comprised of * `libFLAC', a library which implements reference encoders and - decoders, and a metadata interface + decoders for native FLAC and Ogg FLAC, and a metadata interface * `libFLAC++', a C++ object wrapper library around libFLAC - * `libOggFLAC' and `libOggFLAC++', which provide encoders and - decoders for FLAC streams in an Ogg container * `flac', a command-line program for encoding and decoding files * `metaflac', a command-line program for viewing and editing FLAC metadata * player plugins for XMMS and Winamp * user and API documentation -The libraries (libFLAC, libFLAC++, libOggFLAC, and libOggFLAC++) are +The libraries (libFLAC, libFLAC++) are licensed under Xiph.org's BSD-like license (see COPYING.Xiph). All other programs and plugins are licensed under the GNU General Public License (see COPYING.GPL). The documentation is licensed under the GNU Free @@ -40,15 +42,16 @@ Documentation License (see COPYING.FDL). =============================================================================== -FLAC - 1.1.0 - Contents +FLAC - 1.3.0 - Contents =============================================================================== - Introduction +- Prerequisites +- Note to embedded developers - Building in a GNU environment - Building with Makefile.lite - Building with MSVC - Building on Mac OS X -- Note to embedded developers =============================================================================== @@ -57,14 +60,13 @@ Introduction This is the source release for the FLAC project. See - doc/index.html + doc/html/index.html for full documentation. A brief description of the directory tree: doc/ the HTML documentation - flac.pbproj/ the Mac OS X Project Builder project include/ public include files for libFLAC and libFLAC++ man/ the man page for `flac' src/ the source code and private headers @@ -72,6 +74,53 @@ A brief description of the directory tree: =============================================================================== +Prerequisites +=============================================================================== + +To build FLAC with support for Ogg FLAC you must have built and installed +libogg according to the specific instructions below. You must have +libogg 1.1.2 or greater, or there will be seeking problems with Ogg FLAC. + +If you are building on x86 and want the assembly optimizations, you will +need to have NASM >= 0.98.30 installed according to the specific instructions +below. + + +=============================================================================== +Note to embedded developers +=============================================================================== + +libFLAC has grown larger over time as more functionality has been +included, but much of it may be unnecessary for a particular embedded +implementation. Unused parts may be pruned by some simple editing of +configure.ac and src/libFLAC/Makefile.am; the following dependency +graph shows which modules may be pruned without breaking things +further down: + +metadata.h + stream_decoder.h + format.h + +stream_encoder.h + stream_decoder.h + format.h + +stream_decoder.h + format.h + +In other words, for pure decoding applications, both the stream encoder +and metadata editing interfaces can be safely removed. + +There is a section dedicated to embedded use in the libFLAC API +HTML documentation (see doc/html/api/index.html). + +Also, there are several places in the libFLAC code with comments marked +with "OPT:" where a #define can be changed to enable code that might be +faster on a specific platform. Experimenting with these can yield faster +binaries. + + +=============================================================================== Building in a GNU environment =============================================================================== @@ -103,7 +152,7 @@ extra (and more verbose) error checking. assembly routines. Many routines have assembly versions for speed and `configure' is pretty good about knowing what is supported, but you can use this option to build only from the -C sources. +C sources. May be necessary for building on OS X (Intel) --enable-sse : If you are building for an x86 CPU that supports SSE instructions, you can enable some of the faster routines @@ -120,13 +169,12 @@ $HOME/.xmms/Plugins, instead of the global XMMS plugin area (usually /usr/lib/xmms/Input). --with-ogg= ---with-id3lib= --with-xmms-prefix= --with-libiconv-prefix= Use these if you have these packages but configure can't find them. If you want to build completely from scratch (i.e. starting with just -configure.in and Makefile.am) you should be able to just run 'autogen.sh' +configure.ac and Makefile.am) you should be able to just run 'autogen.sh' but make sure and read the comments in that file first. @@ -156,82 +204,46 @@ not an x86, change -DFLAC__CPU_IA32 to -DFLAC__CPU_UNKNOWN. Building with MSVC =============================================================================== -There are now .dsp projects and a master FLAC.dsw workspace to build -all the libraries and executables. +There are .vcproj projects and a master FLAC.sln solution to build all +the libraries and executables with MSVC 2005 or newer. Prerequisite: you must have the Ogg libraries installed as described later. -Prerequisite: you must have nasm installed, and have the environment -variable FLAC_NASM set to the full path to nasmw.exe, e.g +Prerequisite: you must have nasm installed, and nasm.exe must be in +your PATH, or the path to nasm.exe must be added to the list of +directories for executable files in the MSVC global options. -C:\nasm\nasmw.exe +VC++ 2005: +To build everything, run Visual Studio, do File|Open and open FLAC.sln. +From the dropdown in the toolbar, select "Release" instead of "Debug", +then hit F7 to build. -To build everything, run Developer Studio, do File|Open Workspace, -and open FLAC.dsw. Select "Build | Set active configuration..." -from the menu, then in the dialog, select "All - Win32 Release" (or -Debug if you prefer). Click "Ok" then hit F7 to build. This will build -all libraries both statically (e.g. obj\release\lib\libFLAC_static.lib) -and as DLLs (e.g. obj\release\bin\libFLAC.dll), and it will build all -binaries, statically linked (e.g. obj\release\bin\flac.exe). +This will build all libraries both statically (e.g. +objs\release\lib\libFLAC_static.lib) and as DLLs (e.g. +objs\release\lib\libFLAC.dll), and it will build all binaries, statically +linked (e.g. objs\release\bin\flac.exe). -Everything will end up in the "obj" directory. DLLs and .exe files +Everything will end up in the "objs" directory. DLLs and .exe files are all that are needed and can be copied to an installation area and -added to the PATH. The plugins have to be copied to their appropriate -place in the player area. For Winamp2 this is \Plugins -and for Winamp3 this is \Wacs. +added to the PATH. -By default the code is configured with Ogg support. Before building FLAC +By default the code is configured with Ogg support. Before building FLAC you will need to get the Ogg source distribution -(see http://xiph.org/ogg/vorbis/download/), build ogg_static.lib (load and -build win32\ogg_static.dsp), copy ogg_static.lib into FLAC's -'obj\release\lib' directory, and copy the entire include\ogg tree into -FLAC's 'include' directory (so that there is an 'ogg' directory in FLAC's +(see http://xiph.org/downloads/), build libogg_static.lib (load +win32\libogg_static.sln, change solution configuration to "Release" and +code generation to "Multi-threaded (/MT)", then build), copy libogg_static.lib +into FLAC's 'objs\release\lib' directory, and copy the entire include\ogg tree +into FLAC's 'include' directory (so that there is an 'ogg' directory in FLAC's 'include' directory with the files ogg.h, os_types.h and config_types.h). - -=============================================================================== -Building on Mac OS X -=============================================================================== - -If you have Fink, the GNU flow above should work. Otherwise, -there is a Project Builder project in the top-level source -directory to build libFLAC and the command-line utilities on -Mac OS X. In a terminal, cd to the top-level directory (the -one that contains this README file) and type: - - pbxbuild -alltargets - -This will create everything and leave it in the build/ directory. -Don't worry about the rest of the stuff that is in build/ or -the stuff that was already there before building. - -There currently is no install procedure; you will have to -manually copy the tools to wherever you need them. +If you want to build without Ogg support, instead edit all .vcproj files +and remove any "FLAC__HAS_OGG" definitions. =============================================================================== -Note to embedded developers +Building on Mac OS X =============================================================================== -libFLAC has grown larger over time as more functionality has been -included, but much of it may be unnecessary for a particular embedded -implementation. Unused parts may be pruned by some simple editing of -configure.in and src/libFLAC/Makefile.am; the following dependency -graph shows which modules may be pruned without breaking things -further down: - -file_encoder.h - stream_encoder.h - format.h - -file_decoder.h - seekable_stream_decoder.h - stream_decoder.h - format.h - -metadata.h - format.h - -There is a section dedicated to embedded use in the libFLAC API -HTML documentation (see doc/html/api/index.html). +If you have Fink or a recent version of OS X with the proper autotools, +the GNU flow above should work.