libFLAC: Fix assembler code to be position independent.
libFLAC: Optimization of a number of inner loop functions.
Added support for encoding the residual coding method introduced in libFLAC 1.2.0 (RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) which will encode 24-bit files more efficiently.
@@ -367,10 +368,10 @@
Encoding and decoding speedups for all modes. Encoding at -8 is twice as fast.
Importing of non-CDDA-compliant cuesheets now issues a warning.
Removed the following deprecated tag editing options; you should use the new option names shown instead:
@@ -506,7 +507,7 @@
Removed --export-vc-to; use --export-tags-to
-
Disallow multiple input FLAC files when --import-tags-from=- is used (SF #1082577).
+
Disallow multiple input FLAC files when --import-tags-from=- is used (SF #1082577).
@@ -520,11 +521,11 @@
build system:
-
Added support for building on OS/2 with EMX (SF #1229495)
-
Added support for building with Borland C++ (SF #1599018)
-
Added a --disable-xmms-plugin option to configure to prevent building the XMMS plugin (SF #930494).
-
Added a --disable-doxygen-docs option to configure for disabling Doxygen-based API doc generation (SF #1365935).
-
Added a --disable-thorough-tests option to configure to do the basic library, stream, and tool tests in a reasonable time (SF #1077948).
+
Added support for building on OS/2 with EMX (SF #1229495)
+
Added support for building with Borland C++ (SF #1599018)
+
Added a --disable-xmms-plugin option to configure to prevent building the XMMS plugin (SF #930494).
+
Added a --disable-doxygen-docs option to configure for disabling Doxygen-based API doc generation (SF #1365935).
+
Added a --disable-thorough-tests option to configure to do the basic library, stream, and tool tests in a reasonable time (SF #1077948).
Added large file support with AC_SYS_LARGEFILE; use --disable-largefile with configure to disable.
@@ -535,10 +536,10 @@
Merged libOggFLAC++ into libFLAC++; both formats are now supporte through the same API.
libFLAC and libFLAC++: Simplified encoder setup with new FLAC__stream_encoder_set_compression_level() function.
libFLAC: Improved compression with no impact on FLAC format or decoding time by adding a windowing stage before LPC analysis.
-
libFLAC: Fixed a bug where missing STREAMINFO fields (min/max framesize, total samples, MD5 sum) and seek point offsets were not getting rewritten back to Ogg FLAC file (SF #1338969).
+
libFLAC: Fixed a bug where missing STREAMINFO fields (min/max framesize, total samples, MD5 sum) and seek point offsets were not getting rewritten back to Ogg FLAC file (SF #1338969).
libFLAC: Fixed a bug in cuesheet parsing where it would return an error if the last line of the cuesheet did not end with a newline.
libFLAC: Fixed UTF-8 decoder to disallow non-shortest-form and surrogate sequences (see here).
-
libFLAC: Fixed a bug in the return value for FLAC__stream_decoder_set_metadata_respond_application() and FLAC__stream_decoder_set_metadata_ignore_application() when there was a memory allocation error (SF #1235005).
+
libFLAC: Fixed a bug in the return value for FLAC__stream_decoder_set_metadata_respond_application() and FLAC__stream_decoder_set_metadata_ignore_application() when there was a memory allocation error (SF #1235005).
@@ -642,7 +643,7 @@
plugins:
-
Added support for HTTP streaming in XMMS plugin. NOTE: there is a bug in the XMMS mpg123 plugin that hijacks FLAC streams; to fix it you will need to add the '.flac' extension to the list of exceptions in Input/mpg123/mpg123.c:is_our_file() in the XMMS sources and recompile.
+
Added support for HTTP streaming in XMMS plugin. NOTE: there is a bug in the XMMS mpg123 plugin that hijacks FLAC streams; to fix it you will need to add the '.flac' extension to the list of exceptions in Input/mpg123/mpg123.c:is_our_file() in the XMMS sources and recompile.
@@ -747,7 +748,7 @@
New option -f (--force) to force overwriting if the output file already exists.
New option --cue to select a specific section to decode using cuesheet track/index points.
New (but undocumented) option --apply-replaygain-which-is-not-lossless which applies ReplayGain to the decoded output. See this thread for usage and caveats.
+
New (but undocumented) option --apply-replaygain-which-is-not-lossless which applies ReplayGain to the decoded output. See this thread for usage and caveats.
When encoding to Ogg FLAC, use a random serial number (instead of 0 as was done before) when a serial number is not specified.
When encoding multiple Ogg FLAC streams, --serial-number or random serial number sets the first number, which is then incremented for subsequent streams (before, the same serial number was used for all streams).
Decoder no longer exits with an error when writing to stdout and the pipe is broken.
@@ -757,12 +758,12 @@
Bug fix: calculating ReplayGain on 48kHz streams.
Bug fix: check for supported block alignments in WAVE files.
Bug fix: "offset" field in AIFF SSND chunk properly handled.
Complete MSVC build system with .dsp projects for everything, which can build both static libs and DLLs, and in debug or release mode, all in the same source tree.
+
+ flac:
+
+
Can now decode FLAC to AIFF; new --force-aiff-format option.
+
New --cuesheet option for reading and storing a cuesheet when encoding a whole CD. Automatically creates seek points for track and index points unless --no-cued-seekpoints is used.
+
New --replay-gain option for calculating ReplayGain values and storing them as tags.
+
New --until option complements --skip to stop decoding at a specified point in the stream.
+
--skip and --until now also accept mm:ss.ss format.
+
New -S #s flavor to specify seekpoints every '#' number of seconds.
+
flac now defaults to -S 10s instead of -S 100x for the seek table.
+
flac now adds a 4k PADDING block by default (turn off with --no-padding).
+
Fixed a bug with --skip and AIFF-to-FLAC encoding.
+
Fixed a bug where decoding a FLAC file whose total_samples==0 in the STREAMINFO would corrupt the WAVE header.
+
+ metaflac:
+
+
New --import-cuesheet-from option for reading and storing a cuesheet to a FLAC-encoded CD. Automatically creates seek points for track and index points unless --no-cued-seekpoints is used.
+
New --export-cuesheet-to option for writing a cuesheet from a FLAC file for use with CD authoring software.
+
New --add-replay-gain option for calculating ReplayGain values and storing them as tags.
+
New --add-seekpoint option to add seekpoints to an existing FLAC file. Includes new --add-seekpoint=#s flavor to add seekpoints every '#' number of seconds.
+
+ XMMS plugin:
+
+
Configurable sample resolution conversion with dither.
+
ReplayGain support with customizable noise shaping, pre-amp, and optional hard limiter.
+
New Vorbis comment editor.
+
File info now works.
+
Bitrate now shows the smoothed instantaneous bitrate.
+
Uses the ARTIST tag if there is no PERFORMER tag.
+
+ Winamp2 plugin:
+
+
Configurable sample resolution conversion with dither.
+
ReplayGain support with customizable noise shaping, pre-amp, and optional hard limiter.
+
File info now works.
+
Uses the ARTIST tag if there is no PERFORMER tag.
+
+ Libraries (developers take note!):
+
+
All code and tests are instrumented for Valgrind. All tests run Valgrind-clean, meaning no memory leaks or buffer over/under-runs.
+
Separate 64-bit datapath through the filter in libFLAC for better compression of >16 bps files.
+
FLAC__metadata_object_new(FLAC__METADATA_TYPE_VORBIS_COMMENT) now sets the vendor string.
+
The documentation on the usage of FLAC::Iterator::get_block() in libFLAC++ has an important correction. If you use this class make sure to read this.
Configurable title formatting and charset conversion in XMMS plugin.
+
Support for 8- and 24-bit FLAC files. There is a compile-time option for raw 24-bit output or 24bps-to-16bps linear dithering (the default).
+
+ flac:
+
+
Improved option parser (now uses getopt).
+
AIFF input support (thanks to Brady Patterson).
+
Small decoder speedup.
+
--sector-align now supported for raw input files.
+
New -T, --tag options for adding Vorbis comments while encoding.
+
New --serial-number option for use with --ogg.
+
Automatically writes vendor string in Vorbis comments.
+
Drastically reduced memory requirements.
+
Fixed bug where extra fmt/data chunks that were supposed to be skipped were not getting skipped.
+
Fixed bug in granulepos setting for Ogg FLAC streams.
+
Fixed memory leak when encoding multiple files with -V.
+
+ metaflac:
+
+
UTF-8 support in Vorbis comments.
+
New --import-vc-from and --export-vc-to commands for importing/exporting Vorbis comments from/to a file. For example, the following can be used to copy tags back and forth:
+
+ metaflac --export-vc-to=- --no-utf8-convert file.flac | vorbiscomment --raw -w file.ogg
+ vorbiscomment --raw -l file.ogg | metaflac --import-vc-from=- --no-utf8-convert file.flac
+
+
+
Fixed bug #606796 where metaflac was failing on read-only files.
+
+ Libraries:
+
+
All APIs now meticulously documented via Doxygen. See here.
+
New libOggFLAC and libOggFLAC++ libraries. These wrap around libFLAC to provide encoding and decoding of Ogg FLAC streams, providing interfaces similar to the ones of the native FLAC libraries. These are also documented via Doxygen.
+
New FLAC__SeekableStreamEncoder and FLAC__FileEncoder in libFLAC simplify common encoding tasks.
+
New verify mode in all encoders.
+
FLAC__stream_encoder_finish() now resets the defaults just like the stream decoders.
+
Drastically reduced memory requirements of encoders and decoders.
+
Encoder now automatically writes vendor string in VORBIS_COMMENT block.
+
Encoding speedup of fixed predictors and MD5 speedup for 16bps mono/stereo signals on x86 (thanks to Miroslav Lichvar).
+
Fixed bug in metadata interface where a bps in STREAMINFO > 16 was incorrectly parsed.
+
Fixed bug where aborting stream decoder could cause infinite loop.
+ This release is only to fix a bug that was causing some of the plugins to crash sporadically. It can also affect libFLAC users that reuse one file decoder instance for multiple files
+
Support for Ogg-FLAC, i.e. flac can now read and write FLAC streams using Ogg as the transport layer.
+
New Winamp 3 plugin based on the Wasabi Beta 1 SDK.
+
New utilities for adding FLAC support to the Monkey's Audio GUI (see how).
+
Mac OS X support. The download area now contains an OS X binary release.
+
Mingw32 support.
+
Better handling of MS-specific 'fmt' chunks in WAVE files.
+
+ New features for developers:
+
+
Added a SeekableStreamDecoder layer between StreamDecoder and FileDecoder. This makes it easier to use libFLAC in situations where files have been abstracted away. See the latest documentation for more. The interface for the StreamDecoder and FileDecoder remain the same and are still binary-compatible with libFLAC 1.0.
+
Drastically reduced the stack requirements of the encoder.
+
+ Bug fixes:
+
+
Fixed a serious bug with flac and raw input where the encoder was trying to rewind when it shouldn't, which would add 12 junk samples to the encoded file. This was not present in WAVE encoding.
+
Fixed a minor bug in libFLAC with setting the file name to stdin on a file decoder.
+
Fixed a minor bug in libFLAC where multiple calls to setting the file name on a file decoder caused leaked memory.
+
Fixed a minor bug in metaflac, now correctly skips an id3v2 tag if present.
+
Fixed a minor bug in metaflac, now correctly skips long metadata blocks.
+ It's finally here. There are a few new features but mostly it is minor bug fixes since 0.10:
+
+
New '--sector-align' option to flac which aligns a group of encoded files on CD audio sector boundaries.
+
New '--output-prefix' option to flac to allow the user to prepend a prefix to all output filenames (useful, for example, for encoding/decoding to a different directory).
+
Better WAVE autodetection (doesn't rely on ungetc() anymore).
+
Cleaner one-line encoding/decoding stats.
+
Changes to the libFLAC interface and type names to make binary compatibility easier to maintain in the future.
+
New '--sse-os' option to 'configure' to enable faster SSE-based routines.
+
Another (hopefully last) fix to the Winamp 2 plugin.
+
Slightly improved Rice parameter estimation.
+
Bug fixes for some very rare corner cases when encoding.
+ This is probably the final beta. There have been many improvements in the last two months:
+
+
Both the encoder and decoder have been significantly sped up. Aside from C improvements, the code base now has an assembly infrastructure that allows assembly routines for different architectures to be easily integrated. Many key routines have now have faster IA-32 implementations (thanks to Miroslav).
+
A new metadata block SEEKTABLE has been defined to hold an arbitrary number of seek points, which speeds up seeking within a stream.
+
flac now has a command-line usage similar to 'gzip'; make sure to see the latest documentation for the new usage. It also attempts to preserve the input file's timestamp and permissions.
+
The -# options in flac have been tweaked to yield the best compression-to-encode-time ratios. The new default is -5.
+
flac can now usually autodetect WAVE files when encoding so that -fw is usually not needed when encoding from stdin.
+
The WAVE reader in flac now just ignores (with a warning) unsupported sub-chunks instead of aborting with an error.
+
Added an option '--delete-input-file' to flac which automatically deletes the input after a successful encode/decode.
+
Added an option '-o' to flac to force the output file name (the old usage of "flac - outputfilename" is no longer supported).
+
Changed the XMMS plugin to send smaller chunks of samples (now 512) so that visualization is not slow.
+
Fixed a bug in the stream decoder where the decoded samples counter got corrupted after a seek.
FLAC's sync code has been lengthened to 14 bits from 9 bits. This should enable a faster and more robust synchronization mechanism.
+
Two reserved bits were added to the frame header.
+
A CRC-16 was added to the FLAC frame footer, and the decoder now does frame integrity checking based on the CRC.
+
The format now includes a new subframe field to indicate when a subblock has one or more 0 LSBs for all samples. This increases compression on some kinds of data.
+
Added two options to the analysis mode, one for including the residual signal in the analysis file, and one for generating gnuplot files of each subframe's residual distribution with some statistics. See the latest documentation.
+
XMMS plugin now supports 8-bit files.
+
Fixed a bug in the Winamp2 plugin where the audio sounded garbled.
+
Fixed a bug in the Winamp2 plugin where Winamp would hang sporadically at the end of a track (c.f. bug #231197).
Created a new utility called metaflac. It is a metadata editor for .flac files. Right now it just lists the contents of the metadata blocks but eventually it will allow update/insertion/deletion.
+
Added two new metadata blocks: PADDING which has an obvious function, and APPLICATION, which is meant to be open to third party applications. See the latest format docs for more info, or the new id registration page.
+
Added a -P option to flac to reserve a PADDING block when encoding.
+
Added support for 24-bit files to flac (the FLAC format always supported it).
+
Started the Winamp3 plugin.
+
Greatly expanded the test suite, adding more streams (24-bit streams, noise streams, non-audio streams, more patterns) and more option combinations to the encoder. The test suite runs about 30 streams and over 5000 encodings now.
+
Fixed a bug in libFLAC that happened when using an exhaustive LPC coefficient quantization search with 8 bps input.
+
Fixed a bug in libFLAC where the error estimation in the fixed predictor could overflow.
+
Fixed a bug in libFLAC where LPC was attempted even when the autocorrelation coefficients implied it wouldn't help.
+
Reworked the LPC coefficient quantizer, which also fixed another bug that might occur in rare cases.
+
Really fixed the '-V overflow' bug (c.f. bug #231976).
+
Fixed a bug in flac related to the decode buffer sizing.
+
+ FLAC is very close to being ready for an official release. The only known problems left are with the Winamp plugins, which should be fixed soon, and pipes with MSVC.
+
+ The encoder is now much faster. The -m option has been sped up by 4x and -r improved, meaning that in the default compression mode (-6), encoding should be at least 3 times faster. Other changes:
+
+
Some bugs related to flac and pipes were fixed
+
A "loose mid-side" (-M) option to the encoder has been added, which adaptively switches between independent and mid-side coding, instead of the exhaustive search that -m does.
+
An analyze mode (-a) has been added to flac. This is useful mainly for developers; currently it will dump info about each frame and subframe to a file. It's a text file in a format that can be easily processed by scripts; a separate analysis program is in the works.
+
The source now has an autoconf/libtool-based build system. This should allow the source to build "out-of-the-box" on many more platforms.
+ This is the first beta version of FLAC. Being beta, there will be no changes to the format that will break older streams, unless a serious bug involving the format is found. What this means is that, barring such a bug, streams created with 0.5 will be decodable by future versions. This version also includes some new features:
+
+
An MD5 signature of the unencoded audio is computed during encoding, and stored in the Encoding metadata block in the stream header. When decoding, flac will now compute the MD5 signature of the decoded data and compare it against the signature in the stream header.
+
A test mode (-t) has been added to flac. It works like decode mode but doesn't write an output file.
This version fixes a bug in the constant subframe detection. More importantly, a verify option (-V) has been added to flac that verifies the encoding process. With this option turned on, flac will create a parallel decoder while encoding to make sure that the encoded output decodes to exactly match the original input. In this way, any unknown bug in the encoder will be caught and flac will abort with an error message.
FLAC Mailing List - General discussion about FLAC, tools, releases, etc. (You must subscribe to post.)
For developers who want to add FLAC support to their programs:
diff --git a/doc/html/documentation_bugs.html b/doc/html/documentation_bugs.html
index a835fe18..12a5bd78 100644
--- a/doc/html/documentation_bugs.html
+++ b/doc/html/documentation_bugs.html
@@ -42,12 +42,19 @@
- The following are major known bugs in the current (1.1.4) release:
+ The following are major known bugs in the current (1.3.0) release:
- When encoding to Ogg FLAC, if there are too many seek points (>240), the seek table will not have the offsets written back properly after encoding.
+ If you use the --replay-gain option with flac, but no --padding/-P option, only a very small padding block will be created. The workaround is to always use a -P option when using --replay-gain to make sure the correct amount of padding is added.
+
+
+ When encoding to Ogg FLAC, the progress indicator is broken
+
+
+ When encoding to Ogg FLAC, the number of seek points is limited to 240.
+ The first two have been fixed, these fixes will be incorporated in the next release.
- First check that there is not already an existing request. If you do submit a new request, make sure and provide an email contact and use the Monitor feature.
-
- Note that we get many false bug reports from people with faulty hardware or who overclock their machines that FLAC is not working. Please do due diligence if you are getting FLAC encoding or decoding errors that it is not the fault of the hardware. FLAC encoding tends to highlight problems with bad RAM, corrupted files, and excessive overclocking.
+ First check that there is not already an existing request. If you do submit a new request, make sure and provide an email contact and use the Monitor feature.
Skip over the first # of samples of the input. This works for both encoding and decoding, but not testing. The alternative form mm:ss.ss can be used to specify minutes, seconds, and fractions of a second.
+ Note that the use of either a dot or a comma depends on the locale used for the system.
+
Examples:
--skip=123 : skip the first 123 samples of the input
- --skip=1:23.45 : skip the first 1 minute and 23.45 seconds of the input
+ --skip=1:23.45 : skip the first 1 minute and 23.45 seconds of the input, with a locale using the point as decimal separator
+ --skip=1:23,45 : skip the first 1 minute and 23.45 seconds of the input, with a locale using the comma as decimal separator
Stop at the given sample number for each input file. This works for both encoding and decoding, but not testing. The given sample number is not included in the decoded output. The alternative form mm:ss.ss can be used to specify minutes, seconds, and fractions of a second. If a + sign is at the beginning, the --until point is relative to the --skip point. If a - sign is at the beginning, the --until point is relative to end of the audio.
+ Note that the use of either a dot or a comma depends on the locale used for the system.
+
Examples:
--until=123 : decode only the first 123 samples of the input (samples 0-122, stopping at 123) --until=1:23.45 : decode only the first 1 minute and 23.45 seconds of the input
+ --until=1:23,45 : decode only the first 1 minute and 23.45 seconds of the input, if your locale setting uses a comma as decimal separator --skip=1:00 --until=+1:23.45 : decode 1:00.00 to 2:23.45 --until=-1:23.45 : decode everything except the last 1 minute and 23.45 seconds --until=-0:00 : decode until the end of the input (the same as not specifying --until)
@@ -550,7 +556,7 @@
--replay-gain
- Calculate ReplayGain values and store them as FLAC tags, similar to VorbisGain. Title gains/peaks will be computed for each input file, and an album gain/peak will be computed for all files. All input files must have the same resolution, sample rate, and number of channels. Only mono and stereo files are allowed, and the sample rate must be one of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, or 48 kHz. Also note that this option may leave a few extra bytes in a PADDING block as the exact size of the tags is not known until all files are processed.
+ Calculate ReplayGain values and store them as FLAC tags, similar to VorbisGain. Title gains/peaks will be computed for each input file, and an album gain/peak will be computed for all files. All input files must have the same resolution, sample rate, and number of channels. Only mono and stereo files are allowed, and the sample rate must be one of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, or 48 kHz. Also note that this option may leave a few extra bytes in a PADDING block as the exact size of the tags is not known until all files are processed.
Note that this option cannot be used when encoding to standard output (stdout).
@@ -849,6 +855,7 @@
Window audio data with given the apodization function. The functions are: bartlett, bartlett_hann, blackman, blackman_harris_4term_92db, connes, flattop, gauss(STDDEV), hamming, hann, kaiser_bessel, nuttall, rectangle, triangle, tukey(P), welch.
For gauss(STDDEV), STDDEV is the standard deviation (0<STDDEV<=0.5).
For tukey(P), P specifies the fraction of the window that is tapered (0<=P<=1; P=0 corresponds to "rectangle" and P=1 corresponds to "hann").
+ Please note that for both P as well as STDDEV, the use of a point or comma as decimal separator is locale-dependent.
More than one -A option (up to 32) may be used. Any function that is specified erroneously is silently dropped. The encoder chooses suitable defaults in the absence of any -A options; any -A option specified replaces the default(s).
When more than one function is specified, then for every subframe the encoder will try each of them separately and choose the window that results in the smallest compressed subframe. Multiple functions can greatly increase the encoding time.
@@ -1018,6 +1025,7 @@
--no-mid-side --no-ogg --no-padding
+ --no-preserve-modtime --no-qlp-coeff-prec-search --no-residual-gnuplot --no-residual-text
diff --git a/doc/html/documentation_tools_plugins.html b/doc/html/documentation_tools_plugins.html
deleted file mode 100644
index b7959bb1..00000000
--- a/doc/html/documentation_tools_plugins.html
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- FLAC - documentation
-
-
-
-
-
- Normally the FLAC plugin for XMMS is installed with a package, but some of the binary builds have a compiled plugin. All that is necessary is to copy libxmms-flac.so to the directory where XMMS looks for input plugins (usually /usr/lib/xmms/Input or $HOME/.xmms/Input). There is nothing else to configure. Make sure to restart XMMS before trying to play any .flac files.
-
- Since Winamp 5.31, Nullsoft has supplied a FLAC plugin with their Full install; nothing else is needed to get FLAC to play in Wnamp.
-
- Before Winamp 5.31 it was necessary to use our FLAC plugin. If you have an older version of Winamp, our plugin is still available in the FLAC Installer for Windows. The Winamp plugin should work for both Winamp2 and Winamp5. All that is necessary is to copy in_flac.dll to the Plugins/ directory of your Winamp installation. There is nothing else to configure. Make sure to restart Winamp before trying to play any .flac files.
-
- Depending on how FLAC Frontend is installed, it could be one of two things: 1) you are trying to encode to file to a directory where you do not have write permission; 2) the FLAC Frontend program must be set to run as Administrator by opening Windows Explorer, navigating to C:\Program Files\FLAC (or wherever FLAC was installed), then right-clicking on FLAC Frontend.exe and checking "Run this program as an administrator".
+ You are probably using an old version of FLAC Frontend. Try downloading a new version from this sourceforge page
@@ -310,13 +307,9 @@
Since metadata is stored at the beginning of a FLAC file, changing the length of it can sometimes cause the whole file to be rewritten. You can avoid this by adding padding with flac when you encode, or with metaflac after encoding. By default, flac adds 8k of padding; you can change this amount if you need more or less.
- The Windows command shells (cmd.exe, command.com) implement wildcard handling differently than most other shells, leaving it up to the program to do everything including difficult and ambiguous cases. For an explanation of why wildcards on cmd.exe/command.com are dangerous, see here. Better command shells for Windows exist, e.g. from Cygwin. A workaround with the Windows shells is to do something like:
+ The Windows command shells (cmd.exe, command.com) implement wildcard handling differently than most other shells, leaving it up to the program to do everything including difficult and ambiguous cases. For an explanation of why wildcards on cmd.exe/command.com are dangerous, see here. Better command shells for Windows exist, e.g. from Cygwin. A workaround with the Windows shells is to do something like:
for %F in (*.wav) do flac "%F"
@@ -326,9 +319,9 @@
The only known cause of verify errors is faulty hardware. The dead giveaway is that if you repeat the exact same command, the error occurs in a different place or not at all. This can also happen when decoding or testing a FLAC file. If this is happening it is your hardware and not a FLAC bug.
- The problem is usually caused by overclocking/overheating the CPU or bad RAM. Try one of the many free programs available for testing hardware (e.g. Memtest86+). We have had reports of a few cases where a system is passing with flying colors and still getting unrepeatable FLAC errors, and the one thing many (all?) of these systems have in common is an ASUS motherboard (A7V133 or P3V4X) which we suspect is buggy in some way. (See also)
+ The problem is usually caused by overclocking/overheating the CPU or bad RAM. Try one of the many free programs available for testing hardware (e.g. Memtest).
- There are a few places. The main discussions happen on the official FLAC mailing lists (you must subscribe to post). Also, there is a lot of discussion relating to FLAC on Hydrogen Audio.
+ There are a few places. The main discussions happen on the official FLAC mailing lists (you must subscribe to post). Also, there is a lot of discussion relating to FLAC on Hydrogen Audio.
diff --git a/doc/html/format.html b/doc/html/format.html
index 3e1ed9ab..42e1d6f5 100644
--- a/doc/html/format.html
+++ b/doc/html/format.html
@@ -136,10 +136,10 @@
FLAC owes much to the many people who have advanced the audio compression field so freely. For instance:
- A. J. Robinson for his work on Shorten; his paper is a good starting point on some of the basic methods used by FLAC. FLAC trivially extends and improves the fixed predictors, LPC coefficient quantization, and Rice coding used in Shorten.
+ A. J. Robinson for his work on Shorten; his paper is a good starting point on some of the basic methods used by FLAC. FLAC trivially extends and improves the fixed predictors, LPC coefficient quantization, and Rice coding used in Shorten.
- S. W. Golomb and Robert F. Rice; their universal codes are used by FLAC's entropy coder.
+ S. W. Golomb and Robert F. Rice; their universal codes are used by FLAC's entropy coder.
N. Levinson and J. Durbin; the reference encoder uses an algorithm developed and refined by them for determining the LPC coefficients from the autocorrelation coefficients.
@@ -231,10 +231,10 @@
Constant. This predictor is used whenever the subblock is pure DC ("digital silence"), i.e. a constant value throughout. The signal is run-length encoded and added to the stream.
- Fixed linear predictor. FLAC uses a class of computationally-efficient fixed linear predictors (for a good description, see audiopak and shorten). FLAC adds a fourth-order predictor to the zero-to-third-order predictors used by Shorten. Since the predictors are fixed, the predictor order is the only parameter that needs to be stored in the compressed stream. The error signal is then passed to the residual coder.
+ Fixed linear predictor. FLAC uses a class of computationally-efficient fixed linear predictors (for a good description, see audiopak and shorten). FLAC adds a fourth-order predictor to the zero-to-third-order predictors used by Shorten. Since the predictors are fixed, the predictor order is the only parameter that needs to be stored in the compressed stream. The error signal is then passed to the residual coder.
- FIR Linear prediction. For more accurate modeling (at a cost of slower encoding), FLAC supports up to 32nd order FIR linear prediction (again, for information on linear prediction, see audiopak and shorten). The reference encoder uses the Levinson-Durbin method for calculating the LPC coefficients from the autocorrelation coefficients, and the coefficients are quantized before computing the residual. Whereas encoders such as Shorten used a fixed quantization for the entire input, FLAC allows the quantized coefficient precision to vary from subframe to subframe. The FLAC reference encoder estimates the optimal precision to use based on the block size and dynamic range of the original signal.
+ FIR Linear prediction. For more accurate modeling (at a cost of slower encoding), FLAC supports up to 32nd order FIR linear prediction (again, for information on linear prediction, see audiopak and shorten). The reference encoder uses the Levinson-Durbin method for calculating the LPC coefficients from the autocorrelation coefficients, and the coefficients are quantized before computing the residual. Whereas encoders such as Shorten used a fixed quantization for the entire input, FLAC allows the quantized coefficient precision to vary from subframe to subframe. The FLAC reference encoder estimates the optimal precision to use based on the block size and dynamic range of the original signal.
SEEKTABLE: This is an optional block for storing seek points. It is possible to seek to any given sample in a FLAC stream without a seek table, but the delay can be unpredictable since the bitrate may vary widely within a stream. By adding seek points to a stream, this delay can be significantly reduced. Each seek point takes 18 bytes, so 1% resolution within a stream adds less than 2k. There can be only one SEEKTABLE in a stream, but the table can have any number of seek points. There is also a special 'placeholder' seekpoint which will be ignored by decoders but which can be used to reserve space for future seek point insertion.
VORBIS_COMMENT: This block is for storing a list of human-readable name/value pairs. Values are encoded using UTF-8. It is an implementation of the Vorbis comment specification (without the framing bit). This is the only officially supported tagging mechanism in FLAC. There may be only one VORBIS_COMMENT block in a stream. In some external documentation, Vorbis comments are called FLAC tags to lessen confusion.
CUESHEET: This block is for storing various information that can be used in a cue sheet. It supports track and index points, compatible with Red Book CD digital audio discs, as well as other CD-DA metadata such as media catalog number and track ISRCs. The CUESHEET block is especially useful for backing up CD-DA discs, but it can be used as a general purpose cueing mechanism for playback.
-
PICTURE: This block is for storing pictures associated with the file, most commonly cover art from CDs. There may be more than one PICTURE block in a file. The picture format is similar to the APIC frame in ID3v2. The PICTURE block has a type, MIME type, and UTF-8 description like ID3v2, and supports external linking via URL (though this is discouraged). The differences are that there is no uniqueness constraint on the description field, and the MIME type is mandatory. The FLAC PICTURE block also includes the resolution, color depth, and palette size so that the client can search for a suitable picture without having to scan them all.
+
PICTURE: This block is for storing pictures associated with the file, most commonly cover art from CDs. There may be more than one PICTURE block in a file. The picture format is similar to the APIC frame in ID3v2. The PICTURE block has a type, MIME type, and UTF-8 description like ID3v2, and supports external linking via URL (though this is discouraged). The differences are that there is no uniqueness constraint on the description field, and the MIME type is mandatory. The FLAC PICTURE block also includes the resolution, color depth, and palette size so that the client can search for a suitable picture without having to scan them all.
@@ -834,7 +834,7 @@
<12*8>
- Track ISRC. This is a 12-digit alphanumeric code; see here and here. A value of 12 ASCII NUL characters may be used to denote absence of an ISRC.
+ Track ISRC. This is a 12-digit alphanumeric code; see here and here. A value of 12 ASCII NUL characters may be used to denote absence of an ISRC.
11111 : Escape code, meaning the partition is in unencoded binary form using n bits per sample; n follows as a 5-bit number.
diff --git a/doc/html/id.html b/doc/html/id.html
index 00725106..a5856a35 100644
--- a/doc/html/id.html
+++ b/doc/html/id.html
@@ -251,7 +251,7 @@
786D6364 - "xmcd"
BSD License. In simple terms, these libraries may be used by any application, Open or proprietary, linked or incorporated in whole, so long as acknowledgement is made to Xiph.org Foundation when using the source code in whole or in derived works. The Xiph License is free enough that the libraries have been used in commercial products to implement FLAC, including in the firmware of hardware devices where other Open Source licenses can be problematic. In the source code these libraries are called libFLAC and libFLAC++.
+ The reference implementation libraries are licensed under the New BSD License. In simple terms, these libraries may be used by any application, Open or proprietary, linked or incorporated in whole, so long as acknowledgement is made to Xiph.org Foundation when using the source code in whole or in derived works. The Xiph License is free enough that the libraries have been used in commercial products to implement FLAC, including in the firmware of hardware devices where other Open Source licenses can be problematic. In the source code these libraries are called libFLAC and libFLAC++.
The rest of the software that the FLAC project provides is licensed under the GNU General Public License (GPL). This software includes various utilities for converting files to and from FLAC format, plugins for audio players, et cetera. In general, the GPL allows redistribution as long as derived works are also made available in source code form according to compatible terms.
Neither the FLAC nor Ogg FLAC formats nor any of the implemented encoding/decoding methods are covered by any known patent.
- FLAC is one of a family of codecs of the Xiph.org Foundation, all created according to the same free ideals. For some other codecs' descriptions of the Xiph License see the Vorbis license page.
+ FLAC is one of a family of codecs of the Xiph.org Foundation, all created according to the same free ideals. For some other codecs' descriptions of the Xiph License see the Speex and Vorbis license pages.
- If you would like to redistribute parts or all of FLAC under different terms, contact the developers on the flac-dev mailinglist.
+ If you would like to redistribute parts or all of FLAC under different terms, contact the FLAC-dev mailinglist.
diff --git a/doc/html/ogg_mapping.html b/doc/html/ogg_mapping.html
index 06390b07..5e4d8b54 100644
--- a/doc/html/ogg_mapping.html
+++ b/doc/html/ogg_mapping.html
@@ -42,7 +42,7 @@
- This page specifies the way in which compressed FLAC data is encapsulated in an Ogg transport layer. It assumes basic knowledge of the FLAC format and Ogg structure and framing.
+ This page specifies the way in which compressed FLAC data is encapsulated in an Ogg transport layer. It assumes basic knowledge of the FLAC format and Ogg structure and framing.
The original FLAC format includes a very thin transport system. This system of compressed FLAC audio data mixed with a thin transport has come to be known as 'native FLAC'. The transport consists of audio frame headers and footers which contain synchronization patterns, timecodes, and checksums (but notably not frame lengths), and a metadata system. It is very lightweight and does not support more elaborate transport mechanisms such as multiple logical streams, but it has served its purpose well.
@@ -93,7 +93,7 @@
FLAC packets may span page boundaries.
- The granule position of pages containing FLAC audio follows the same semantics as that for Ogg-encapsulated Vorbis as described here.
+ The granule position of pages containing FLAC audio follows the same semantics as that for Ogg-encapsulated Vorbis as described here.
Redundant fields in the STREAMINFO packet may be set to zero (indicating "unknown" in native FLAC), which also facilitates single-pass encoding. These fields are: the minimum and maximum frame sizes, the total samples count, and the MD5 signature. "Unknown" values for these fields will not prevent a compliant native FLAC or Ogg FLAC decoder from decoding the stream.