The following text contains the complete list of changes starting with version 4.504b, released on 2003-04-16. It is automatically included verbatim from the plain text file changelog.txt, taken from the latest version of the release packages.
OFR + OFS + OFF version 5.100 and SDK version 1.600 [2016-09-02]: - add --preset 0 to --preset 10 command-line options for the most efficient compression presets, backward compatible with v4.600 - add more efficient versions of the highnew, extranew, bestnew, and ultranew modes, named highnew-light, extranew-light, bestnew-light, and ultranew-light, backward compatible with v4.520 - add turbonew, fastnew, and normalnew efficient compression modes to complement the extra mode, backward compatible with v4.520 - add the --aca and --acm aliases and the negated form --no-aca - add the minDecoderVersion optional field to the main block, which has the minimum decoder version required to decode the file - a value of 1000 and 2000 can be added to any preset level in order to enable --acm and --optimize best, respectively - add --preset max to replace --maximumcompression --experimental - show for each preset its complexity and compression gain, relative to preset 0, and equivalent options in the command-line help - speed increase of around 10% for all *new modes, such as highnew, extranew, and bestnew, by improved SSE optimizations - speed increase of around 10% for all non *new modes, such as fast, normal, and high, by newly added SSE2 optimizations - generate txz files instead of tar.gz for FreeBSD release packages - small documentation additions, updates, and information about the newly added modes and the minDecoderVersion optional field - many internal small code improvements and updates OFR + OFS + OFF version 5.003 and SDK version 1.500 [2015-11-06]: - new official release packages with binaries and SDK are available also for FreeBSD/x86, FreeBSD/x86+SSE2, and FreeBSD/x64. Thanks to Matthew Rezny for suggestion, information, and testing - add --writefreshheader option to write a fresh standard WAV header during decoding, replacing any stored header and footer - add standard interactive installer file install.sh, which copies the binary command-line encoders, the binary SFX decoder, the binary library, the SDK headers, and the pkg-config configuration file optimfrog.pc to their usual file system locations, on Linux, OS X, and FreeBSD. Thanks to Chris Spiegel for contributing the initial version of the install.sh and optimfrog.pc.in files - add versioning support to the shared object binary library, using the standard naming conventions, on Linux, OS X, and FreeBSD. Thanks to Chris Spiegel for suggestion, information, and testing - add OptimFROG to the relative path for all includes in the SDK examples. After installation with install.sh, the SDK examples can also be built using the included pkg-config definitions for the OFR_INCLUDE and OFR_LIBRARY variables from the Makefile - decoder speed improvements for --advanced-compression-analysis and --advanced-compression options, if there was no compression gain - add to the command-line help the --advanced-compression-analysis and --advanced-compression-modeling undocumented options - allow the --experimental, --advanced-compression, and the other two related options only for the Lossless variant, because they were not intended to work or be compatible with DualStream - many internal code improvements and updates, which provide small speed improvements for all compression modes under most platforms OFR + OFS + OFF version 5.002 and SDK version 1.401 [2015-08-18]: - significant compatible compression improvements, around 4%, for the fast, normal, and high modes when using --optimize none, for stereo files with mono or near mono content - fixed an issue with --advanced-compression which triggered an out-of-memory exception during encoding of data blocks containing only 1 sample point. Thanks to Skymmer for reporting - fixed a file handle leak in the SDK when trying to open files which are not OptimFROG files. Thanks to Chris for reporting - fixed a rare issue where a non-conforming MD5 hash was computed for files with an audio data size from 56 to 63 modulo 64. These hashes can still be checked normally using the command-line encoders. No file from Audio CDs is affected. Thanks to Robert for reporting OFR + OFS + OFF version 5.001 [2015-07-16]: - fixed WAVE parser with --incorrectheader option to accept all WAV files with incorrect RIFF and data chunk sizes in the WAV header, and correct these sizes in the stored WAV header after encoding OFR + OFS + OFF version 5.000 and SDK version 1.400 [2015-06-19]: - a new unified, simplified, and more permissive license which allows both non-commercial and commercial use, and also redistribution - new official release packages with binaries and SDK are available also for Win/x64, OSX/x86+SSE2, and OSX/x64 - new official release packages with binaries and SDK built with SSE2 enabled are available for Linux/x86+SSE2 and Win/x86+SSE2 - the SDK is now included with the release package for each platform - many internal code improvements and updates, which provide various speed improvements for all compression modes under each platform - fully reviewed, significantly reduced, and reorganized all platform dependent source code and predefined macros - added portable generic versions for all platform dependent source code, to become fully compliant with C++03 and C99 standards - source code also compiles cleanly with Clang under each platform - updated SDK examples, completely changed SDK directory layout, and separated all the plug-ins source code from the SDK - added --advanced-compression command-line option to the encoders in order to replace the --experimental deprecated option name - added support for files larger than 2 GB also to the Linux and OSX 32-bit command-line encoders using POSIX Large File Support (LFS) - merged the implementation in OptimFROGDecoder.cpp for the thin C++ wrapper around the C-style interface into OptimFROGDecoder.h - all compressed sizes are identical to those from the 4.910b version - updated and merged SDK and format documentation, and the changelog - new scripts to create and verify release packages for each platform OFR + OFS + OFF version 4.910b and SDK version 1.300 [2011-02-10]: - fully backward compatible with previous versions - slightly better compression for highnew, extranew, bestnew modes, and also for --maximumcompression - parsing WAV files with invalid data chunk size in WAV header using --incorrectheader (for foobar2000 and other command line format converters using pipes who cannot compute the WAV file length in advance and generate a 4 GB header instead) - many internal source code improvements - [other] updated foobar2000 input plug-in for foobar2000 1.1.x - [other] updated OptimFROG SDK to version 1.300 (included here) OFR version 4.800a [2008.05.05]: - includes only Win32 binary - internal source code improvements - not publicly released on the website SDK version 1.220b [2008.02.25]: - the OptimFROG library is now also available for Darwin as a DYLIB universal (ppc and x86) library - added a FMOD SoundSystem Win32 plug-in named codec_ofr - not publicly released on the website OFR version 4.600ex [2008.02.25]: - includes only Darwin universal (ppc and x86) binary - successfully ported to Darwin/x86 - not publicly released on the website OFR version 4.600ex [2006.06.26]: - the highnew, extranew, bestnew modes and maximumcompression get slightly better compression (on average 0.1%) - added --experimental option, enabling advanced experimental compression, which is NOT backward compatible with any previous 4.5xx versions * use with any mode for greatly improved compression for some files (on average, 0.60% better compression for Audio CDs) * extranew speed: encoding < 35% slower, decoding < 11% slower * can be also used together with --maximumcompression - [other] the foobar2000 input plug-in now supports cue sheets (thanks to Artur for suggestions and testing) - [other] official GUI interface using FroG is ready, it will be included in the upcoming OptimFROG installer (thanks to Daniel, the FroG author; available at http://frog.objective-view.de/) - [other] parsing WAV files with invalid headers is in the works OFR + OFS + OFF version 4.520b1 [2006.04.18]: - the port to Darwin/ppc was verified and is now released (thanks to krmathis for testing) - added --tailsize option to specify the tail bytes for raw files - fixed MD5 internal computing for big endian architectures - added run-time self integrity architecture check - fixed --check_audition option which used a condition too strict and did not correct all the corrupted zeros OFR + OFS + OFF version 4.520b and SDK version 1.210b [2006.03.02]: - successfully ported to Linux/amd64 - successfully ported to Darwin/ppc (PowerPC G3) - many internal source code improvements - all the newly created compressed files are completely backwards compatible (can be decoded with previous 4.50x versions) - added ID3v2 tag support (all decoders can search for main header, skipping up to 1MB) - added --selfextract option, the Win32/x86 sfx stub (statically linked) is only 55 kB in size - complete self extracting support for Win32/x86, Linux/x86, and Linux/amd64 (all sfx stubs are statically linked) - C source code for sfx stub available in SDK - slightly faster encoding and decoding with exactly the same compression - compression improved very slightly when using --optimize best option - improved compression (0.1-0.3%) when using command --maximumcompression (this option is mainly intended for benchmark) - added --correct_audition option to IEEE Float to correct Adobe Audition / CoolEdit conversion bug: when converting from int to float, Audition converts 0 values to random noise with maximum relative amplitude < 5*10^-16; this option carefully corrects this bug setting them back to 0 and significantly improves compression ratio in these files - the OptimFROG.dll/.so version 1.210 is binary compatible with the previous versions, now also available for Linux/amd64 and Darwin/ppc - fixed a missing check for errors after calling OptimFROG_readTail(...), which could return -1, in Test_C and Test_CPP SDK samples SDK version pr1.200_2 [2005.09.21]: - fixed a typing bug in the new C++ based interface, which caused wrong display of tags. Winamp5, dBpowerAMP, XMMS plug-ins, and CPP examples were recompiled (unfortunately, the Linux binaries were now compiled on Fedora Core 2, but you can recompile them on your system using the included scripts). Thanks to Andrea for reporting OFR + OFS + OFF version pr4.510_2 [2005.09.21]: - small fixes and improvements SDK version pr1.200_1 [2005.07.24]: - fixed a problem with deallocation of tags in some situations, causing a crash when OptimFROG_freeTags is called SDK version pr1.200 [2005.07.17]: - OptimFROG.h now uses PortableTypes.h and SystemID.h in order to have portable types and infrastructure - the library is now available also for Linux as OptimFROG.so - added OptimFROG_freeTags to release the memory allocated for the key and value pairs in the tags structure - added a C++ based interface OptimFROGDecoder.h, having greater flexibility and requiring less work for writing plug-ins - all type names were appended _t to avoid name clashes - backward compatible type names are defined as macros - there are two new examples for using the C++ based interface - small fixes and improvements - based on the OptimFROG internal engine version 4.510 OFR + OFS + OFF version pr4.510 [2005.07.17]: - encoding is now 6% faster with exactly the same compression - all the source code was reorganized and rewritten to use uniform standards and increase portability - OFR, OFS, OFF and the DLL/SO library were merged into a single, common code base - significantly reduced system dependent code areas - all programs are now Valgrind clean - fixed small problems (like not setting the file date for the correction file) - the OptimFROG library is now available for Linux as a SO library - the OptimFROG.dll version 1.200 is binary compatible with the previous versions - added new function OptimFROG_freeTags to release the memory allocated for the tags structure - new C++ wrapper interface for the OptimFROG library requiring less work for writing plug-ins - two C usage examples and two C++ usage examples of the library for Windows/Linux - complete source code for dBpowerAMP, Winamp 5, foobar2000, and XMMS plug-ins - site address has changed to (the other are still usable) http://www.LosslessAudio.org SDK version 1.100 [2004.04.21]: - not binary compatible with the 1.000e experimental version, the applications must be recompiled (without any source code changes) - fixed a problem where the file handle was not released when getting file information using the infoFile function. Thanks to Florian for reporting - fixed a problem where no error code was returned when the function decodeFile failed to write data, when disk was full - added two text fields, sampleType and channelConfig to the Info structure - updated the sample command line programs to have complete error checking, reporting and return codes - small updates to the foobar2000 plug-in. Thanks to Case for reporting and help - small fixes and improvements - based on the OptimFROG internal engine version 4.509 OFF version 4.509 [2004.04.18]: - added complete raw file support - added verify command - added --mantissabits option to reduce effective mantissa bits before the actual compression OFR + OFS version 4.509 [2004.04.13]: - [OFS] around 10% faster encoding in average bitrate mode at bit identical results - enhanced the WAV file parser to automatically detect uneven size chunks without the required alignment byte (non-conforming files) - slight general speed enhancement with around 2% - added the --headersize option to specify the starting header size for raw files, also useful for raw data alignment - enhanced the raw file parser to add the last few bytes to the tail instead of rejecting the file for having a non-divisible data size - enhanced automatic generation of file extension at decoding (using the header data to detect if the file is WAV or raw) - added full support for the data types SINT8, UINT16, UINT24, UINT32 - fixed a very rare encoder bug where an invalid compressed block was created for some silence-like data. Thanks to Olivier for reporting SDK version 1.000e [2004.02.22]: - first public release, experimental version OFF version 4.508e [2003.10.04]: - first IEEE Float public release, experimental version OFR + OFS version 4.507 [2003.09.28]: - fixed wildcards support, where files not in the current directory were not expanded correctly with their path - fixed some small memory allocation problems - small fixes and improvements OFS version 4.507b1 [2003.07.24]: - corrected a very rare problem with 24 bit mono files when using --ans which could make the encoder crash (only ofs.exe updated) OFS version 4.507b [2003.07.20]: - stable format, not anymore alpha stage - new correction file format, works now with the --ans option - corrected the --ans (advanced noise shaping) option, which previously used suboptimal formulas, and works better now - no longer creates pure lossless files, use OFR instead - default (no command line switches) encodes at --quality 3 - corrected some small decoder problems with high amplitude signals - the --check option works with --correction to check MD5 hash - new input plug-ins (compiled also for dBpowerAMP and Winamp3) - decoding compatible with the alpha versions (4.507a and 4.507a2), but not with their correction files - removed raw file support, which was not implemented - small fixes and improvements OFS version 4.507a2 [2003.06.25]: - added advanced noise shaping at encoding (--ans), improving transparency, especially at middle bitrates OFS version 4.507a1 [2003.06.23]: - 210% faster encoding in quality mode at bit identical results - 220%-270% faster encoding in average bitrate mode at bit identical results - not publicly released OFS version 4.507a [2003.06.21]: - first DualStream version OFR version 4.506 [2003.05.31]: - added wildcards support for matching multiple source files - added the new highnew compression mode, 25% faster than extranew mode with very similar compression - the encoder now writes the exact compression mode used in the informational purpose field of the header (instead of just extra for the extranew mode) - added the --deleteafter option to delete the source file after successful encoding or decoding - added the --timestamp option to copy the source file's time stamp to the destination file when encoding or decoding - added the --md5 option to store MD5 hash of original raw PCM input data when encoding, and the --check command to check it later - made the --verify command work also silent - the --speedup option is now deprecated - fixed an important memory leak in the decoder common plug-in interface - fixed a rare decoder bug where files encoded with bestnew mode and speedup 1x would fail to decode. Thanks to Eltoder for reporting - small fixes and improvements OFR version 4.505 [2003.05.14]: - enabled compression to a pipe and decompression from a pipe - fixed a problem with rejection of some non-seekable raw input files - fixed a rare encoder problem with mono files and extranew mode - the ultra and insane compression modes are now deprecated - fixed crashing under Windows 95 due to SSE detection problem. Thanks to Case for reporting and help - small fixes and improvements OFR version 4.504b [2003.04.16]: - created this file