|
|
This is an informal changelog, a summary of changes in each release. Particulary important for developers is the precise description of changes to the library interfaces.
FLAC 1.1.1
-
General:
- First official FLAC->Ogg bitstream mapping standardized (see new FLAC-to-Ogg mapping specification)
- Ogg FLAC seeking now works
- New PPC optimizations almost double the decoding speed on OS X
- A native OS X release thanks to updated Project Builder and autotools files
-
FLAC format:
- Made invalid the metadata block type 127 so that audio frames can always be distinguished from metadata by seeing 0xff as the first byte.
-
flac:
- Print an error when output file already exists instead of automatically overwriting.
- 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 option --totally-silent to suppress all output.
- 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.
- Better explanation of common error messages.
- Default extension when writing AIFF files is .aif (before, it was .aiff).
- Write more common representation of SANE numbers in AIFF files.
- Bug fix: calculating ReplayGain on 48kHz streams.
- Bug fix: check for supported block alignments in WAVE files.
- Bug fix: #679166: flac doesn't respect RIFF subchunk padding byte.
- Bug fix: #828391: --add-replay-gain segfaults.
- Bug fix: #851155: Can't seek to position in flac file.
- Bug fix: #851756: flac --skip --until reads entire file.
- Bug fix: #877122: problem parsing cuesheet with CATALOG entry.
- Bug fix: #896057: parsing ISRC number from cuesheet.
-
metaflac:
- Renamed the tag editing options as follows (the ...-vc-... options still work but are deprecated):
- --show-vc-vendor becomes --show-vendor-tag
- --show-vc-field becomes --show-tag
- --remove-vc-all becomes --remove-all-tags
- --remove-vc-field becomes --remove-tag
- --remove-vc-firstfield becomes --remove-first-tag
- --set-vc-field becomes --set-tag
- --import-vc-from becomes --import-tags-from
- --export-vc-to becomes --export-tags-to
- Better explanation of common error messages.
- Bug fix: calculating ReplayGain on 48kHz streams.
- Bug fix: incorrect numbers when printing seek points.
-
plugins:
- Speed optimization in ReplayGain synthesis.
- Speed optimization in XMMS playback.
- Support for big-endian architectures in XMMS plugin.
- Bug fix: make hard limiter default to off in XMMS plugin.
- Bug fix: stream length calculation bug in XMMS plugin, debian bug #200435; see also.
- Bug fix: small memory leak in XMMS plugin.
-
build system:
- ordinals.h is now static, not a build-generated file anymore.
-
libraries:
- libFLAC: PPC+Altivec optimizations of some decoder routines.
- libFLAC: Make stream encoder encode the blocksize and sample rate in the frame header if at all possible (not in STREAMINFO), even if subset encoding was not requested.
- libFLAC: Bug fix: fixed seek routine where infinite loop could happen when seeking past end of stream.
- libFLAC, libFLAC++: added methods to skip single frames, useful for quickly finding frame boundaries (see interface changes below).
- libOggFLAC, libOggFLAC++: New seekable-stream and file encoder and decoder APIs to match native FLAC APIs (see interface changes below).
-
Interface changes:
-
libFLAC:
- Added FLAC__metadata_get_tags()
- Added callback-based versions of metadata editing functions:
- FLAC__metadata_chain_read_with_callbacks()
- FLAC__metadata_chain_write_with_callbacks()
- FLAC__metadata_chain_write_with_callbacks_and_tempfile()
- FLAC__metadata_chain_check_if_tempfile_needed()
- Added decoder functions for skipping single frames, also useful for quickly finding frame boundaries:
- FLAC__stream_decoder_skip_single_frame()
- FLAC__seekable_stream_decoder_skip_single_frame()
- FLAC__file_decoder_skip_single_frame()
- Added new required tell callback on seekable stream encoder:
- FLAC__SeekableStreamEncoderTellStatus and FLAC__SeekableStreamEncoderTellStatusString[]
- FLAC__SeekableStreamEncoderTellCallback
- FLAC__seekable_stream_encoder_set_tell_callback()
- Changed FLAC__SeekableStreamEncoderState by adding FLAC__SEEKABLE_STREAM_ENCODER_TELL_ERROR
- Changed Tell callback is now required to initialize seekable stream encoder
- Deleted erroneous and unimplemented FLAC__file_decoder_process_remaining_frames()
-
libFLAC++:
- Added FLAC::Metadata::get_tags()
- Added decoder functions for skipping single frames, also useful for quickly finding frame boundaries:
- FLAC::Decoder::Stream::skip_single_frame()
- FLAC::Decoder::SeekableStream::skip_single_frame()
- FLAC::Decoder::File::skip_single_frame()
- Added encoder functions for setting metadata:
- FLAC::Encoder::Stream::set_metadata(FLAC::Metadata::Prototype **metadata, unsigned num_blocks)
- FLAC::Encoder::SeekableStream::set_metadata(FLAC::Metadata::Prototype **metadata, unsigned num_blocks)
- FLAC::Encoder::File::set_metadata(FLAC::Metadata::Prototype **metadata, unsigned num_blocks)
- Added new required tell callback on seekable stream encoder:
- pure virtual FLAC::Encoder::SeekableStream::tell_callback()
- Changed Tell callback is now required to initialize seekable stream encoder
- Deleted the following methods:
- FLAC::Decoder::Stream::State::resolved_as_cstring()
- FLAC::Encoder::Stream::State::resolved_as_cstring()
-
libOggFLAC:
- Added OggFLAC__SeekableStreamDecoder interface
- Added OggFLAC__FileDecoder interface
- Added OggFLAC__SeekableStreamEncoder interface
- Added OggFLAC__FileEncoder interface
- Added OggFLAC__stream_decoder_get_resolved_state_string()
- Added OggFLAC__stream_encoder_get_resolved_state_string()
- Added OggFLAC__stream_encoder_set_metadata_callback()
- Changed OggFLAC__StreamDecoderState by adding OggFLAC__STREAM_DECODER_END_OF_STREAM
-
libOggFLAC++:
- Added OggFLAC::Decoder::SeekableStream interface
- Added OggFLAC::Decoder::File interface
- Added OggFLAC::Encoder::SeekableStream interface
- Added OggFLAC::Encoder::File interface
- Added OggFLAC::Decoder::Stream::get_resolved_state_string()
- Added OggFLAC::Encoder::Stream::get_resolved_state_string()
- Added pure virtual OggFLAC::Encoder::Stream::metadata_callback()
|
|
|