History
Starting with LAME 3.0:
red = features and bug fixes which
affect quality
blue = features and bug fixes which
affect speed
black = usability, portability, other
LAME 3.99.5 February 28 2012
- Rogério Brito
- autotools: Fix compilation on alpha using proper ifdef guards. Thanks to Andres Mejia.
- Small correction of the documentation.
- Robert Hegemann
- Workaround for cygwin build problem. Tracker item [ 3480692 ] mingw-w64 compilation error
- Fix for a problem when LAME is compiled with fast floating point math. It could result in bitrate bloat with silent input data.
- Bug fix for tracker item [ 3486753 ] Artifacts at the beginning of decoded file
LAME 3.99.4 January 25 2012
- Robert Hegemann
- Fix for tracker item [ 3475581 ] lame crashes at .w64 input file
- Addressing things brought to attention by tracker item [ 3463197 ] 3.99.x problem WFED and PCST frames
- WFED and PCST frames can now be added, to tag podcasts iTunes recognizes
- USER frames are now supported
- COMM frames can now have a description, when passed via --tv "COMM=description=full text"
- possible divide-by-zero exception should be fixed
- adding malformed user-defined-frames could result in abnormal program termination, fixed
LAME 3.99.3 November 26 2011
- Robert Hegemann
- Fix for tracker item [ 3441349 ] --tg does not handle genre number when adding unicode tag
LAME 3.99.2 November 18 2011
- Robert Hegemann
- Due to some bugs in 3rd party HW/SW decoders, those were not
be able to make use of LAME's extended info tag anymore,
resulting in problems with things like gapless playback.
LAME 3.99.1 November 05 2011
- Robert Hegemann
- Fixes for several issues with ID3v2 unicode tags, using Big-Endian text encodings.
Because of several other software (like Windows Media Player),
LAME writes Little-Endian unicode tags only.
Thanks to Taihei Monma, for reporting these issues.
Tracker items: [ 3431203, 3431222, 3431241 ]
LAME 3.99 October 15 2011
LAME 3.99 beta 1 not yet released
- Robert Hegemann
- Fix for Bugtracker item [ 3395813 ] id3tag_set_fieldvalue for URL link frames Broken
- Fix for Bugtracker item [ 3368977 ] Wave Parser doesn't pad chunks
- Fix for Bugtracker item [ 3034259 ] confusing fatal error: can't update LAME-tag frame!
LAME 3.99 beta 0 not officially released
- Josep Maria Antolín Segura
- Rogério Brito
- Improve Debian packaging.
- Include suggestions made by Fabian Greffrath
- Update version of the Debian package to reflect that it is taken from CVS.
- Get rid of a transitional package
- Much more to come...
- Minor fix to validate the history file correctly
- Robert Hegemann
- Porting of LAME mp3rtp program to Windows platform
- Fix: for free format mp3 above 320 kbps, the maximum allowed bits was limited too far.
- Changed behaviour: LAME replaces common suffixes by MP3/WAV when no output filename was given. For example, a simple lame x.wav will create output file x.mp3
- UNICODE support on Windows OS, file names and ID3v2 tags;
related: Bugtracker item [ 3052230 ] Lame.exe can't find files with non-ASCII names
- Added support for WAVE FORMAT IEEE FLOAT input files
- New switch --swap-channel added, see tracker item [ 1118412 ] RFE: option to swap L and R channels
- New switches -m l and -m r to select either left or right channel for mono encoding.
- Feature request item [ 3134258 ] Allow larger images with LAME (>128KB)
- Fix for Bugtracker item [ 2962223 ] Encoder delay and padding values ignored when re-encoding
- Fix for Bugtracker item [ 2986823 ] Error when building Lame with NASM support -still exists
- Fix for Bugtracker item [ 3125235 ] make -f Makefile.mingw32 fails
- Fix for Bugtracker item [ 3021935 ] ID3 tag TXXX cannot be used more than once
- Fix for Bugtracker item [ 3025801 ] gain_analysis.h needs int constants
- Fix for Bugtracker item [ 3277412 ] Segmentation fault at layer2.c:105 with --decode
- Changes in new VBR code:
- tuning on PSY model
- tuning on VBR scale and resulting bitrates
- Minor bug fix for sfb21 encoding
- All encoding modes use the PSY model from new VBR code, addresses Bugtracker item [ 3187397 ] Strange compression behavior
- Fix for a possible out of bounds array access in HIP decoder, addresses Bugtracker item [ 3091776 ] crash at III_dequantize_sample
LAME 3.98.4 March 22 2010
- Joseph Flynn
- Improvements for LAME DirectShow filter:
- Added support for the DirectShow IAMStreamConfig Interface to the LAME encoder filter output pin.
- Modified the DirectShow filter registration section so that the LAME Encoder filter is correctly registered in the Audio Compressors filter category. This will allow third-party encoding applications using the DirectShow System Device Enumerator Interface to correctly detect the LAME encoder when querying the Audio Compressors filter group.
- Modified the filter registration information so that the MP3 audio subtype is correctly reported as being supported on the encoder output pin. This will allow third-party encoding applications using the DirectShow IFilterMapper2 Interface to recognize that the LAME encoder supports MP3 output.
- Altered the Filter Merit Value that was being used when the filter was registered so that it is now using the standard DirectShow compressor filter merit value of MERIT_DO_NOT_USE (0x200000). Previously, the filter was being registered using a value of MERIT_SW_COMPRESSOR (0x100000), which was at a lower priority (i.e. worse priority) than MERIT_DO_NOT_USE. This prevented the LAME Encoder filter from being selected for use by some third-party encoding applications.
- Added code to calculate the frame length of the audio frames used for the nBlockSize element of the WAVEFORMATEX output structure. Previously this value was simply hard-coded to 1.
- Robert Hegemann
- Fix for Bugtracker item [ 2973877 ] A problem regarding the new drain code
LAME 3.98.3 February 27 2010
- Rogério Brito:
- Update the debian packaging for the new release.
- Robert Hegemann
- The ignore-tag-errors switch had no effect when embedding album art, fixed.
- Library API change: lame_decode functions are now obsolete but still present, please use hip_decode instead.
The reason for this change is: lame_decode functions use a single global variable within the library
to store decoder setup, hip_decode functions don't.
The encoder now uses hip_decode internally and it is now possible to use clipdetect
feature while reencoding mp3 to mp3.
- Workaround for FFMPEG bug, which uses to call lame_encode_flush more than once in a loop.
- Windows: program icon and version info added (when building with VC9)
- Fix for Bugtracker item [ 2688413 ] lib name problem in Microsoft Visual Studio 6
- Fix for Bugtracker items [ 2051870, 2423650, 2928684 ] several small documentation issues
- Fix for Bugtracker item [ 2723518 ] resampling in 3.98 and 3.99alpha
- Fix for Bugtracker item [ 2891879 ] Because of Windows API change, there was a problem with the prority switch.
- Fix for Bugtracker item [ 2893101 ] Access Violation in BladeMP3EncDLL if UNICODE was defined.
- Fix for Bugtracker item [ 2887359 ] Wrong length in ID3v2 tag when num_samples isn't set
- Fix for Bugtracker item [ 2872590 ] LameTAG: "Music length" missmatch in LAME 3.98
- Fix for Bugtracker item [ 2824296 ] wrong enc_padding value in LAME 3.99a and 3.98.3 (from CVS)
- Revisiting the FhG decoder problem (FhG V1.5 build 50, ships with MS Windows):
enabling the new-drain-code seems to solve that issue better, than restricting the buffer size (see below: 3.98 beta 1, May 16 2007).
- Patch submitted by Bernhard Doebler, tracker item [ 2807676 ] Error when building Lame with NASM support
- Patch submitted by Mancuso Raffaele, tracker item [ 2406420 ] compile lame_enc.dll under cygwin
LAME 3.98.2 September 22 2008
- Robert Hegemann
- Fix for Bugtracker item [ 2123206 ] lame 3.98.1 segfaults with -h
LAME 3.98.1 September 21 2008
- Rogério Brito:
- More fixes for the abx tool for Unix systems:
- Plugged a memory leak.
- Fixed an endianness problem: users of big-endian machines
can now do abx tests.
- Fixed history's HTML doctype
-
Fixed history so that it finally validates
at W3's validator
-
Fixed compilation of frontend
mp3rtp.c
. Thanks to Kris Karas.
Bugtracker item [ 2015432 ] mp3rtp missing uint16_t in lame 3.98
- Robert Hegemann:
- Fix for Bugtracker item [ 2031704 ] --id3v1-only didnt work in 3.98-final
- Fix for Bugtracker item [ 2022035 ] encoder_padding value and resampling
- Fix for Bugtracker item [ 2029282 ] Frequency filtering API broken in 3.98
- Fix for Bugtracker item [ 2039648 ] potential memory leak in parse_args() function in parse.c
- Fix for some tagging issues:
- Made search for ID3v1 genres more sloppy, abbrevations may match more often as some simple typos.
Examples:
- --tg "Alt. Rock" matches genre "Alternate Rock"
- --tg "acapela" matches genre "A Cappella"
- New switch --pad-id3v2-size "n": adds ID3v2 tag with n padding bytes.
LAME 3.98 July 4 2008
- Anton Sergunov:
- Frontend DirectShow: enabling LAME dshow filter to connect to "File Writer Filter".
- Rogério Brito:
- Updates to the Debian Packaging
- Fixes to the abx tool for Unix systems (so that more people
can evaluate LAME's compression against the original files)
- Alexander Leidinger:
- explicitely link the math lib to the lame lib
- add switch to disable the use of the compaq optimized math lib
LAME 3.98 beta 8 April 13 2008
- Robert Hegemann:
- LAME now accepts a floating point value in the range [0,...,10[ as VBR quality setting, like -V5.678
- Found and fixed some suspicious code in additive masking calculation for VBR-NEW
- bug-fix:experimental code was defaulted by accident for VBR-NEW
- fix for some endianess problem on big-endian machines
LAME 3.98 beta 7 April 6 2008
- Robert Hegemann:
- libmp3lame API: allow frontends to separately retrieve LAME/Xing and ID3 data, because the old library automatism
makes it impossible to make fully buffered encodes.
- libmp3lame API: added some experimental unicode ID3 tagging code.
- frontends: write itself final ID3 tags and LAME/Xing header frame
- lame_enc.dll: writes itself final LAME/Xing header frame
- Latest changes to the new VBR psymodel:
- uses a different spreading function
- bug-fix for out-of-bounds array access (program stack corruption possible)
LAME 3.98 beta 6 December 16 2007
- Robert Hegemann:
- Feature request [ 1811483 ] WAVE_FORMAT_EXTENSIBLE support (PCM)
- Fix for some rare scalefactor selection issue the newer vbr code had at low compression levels
- Fix for Bugtracker item[ 1813496 ] AIFF parsing bug
- Latest changes to the new VBR code:
- it now has its own psy model, a derivation from NSPSY.
- some more tuning has been done for this new psy model.
Many thanks to Horst Albrecht and Myles Thaiss.
- the "out-of-bits" strategy is reworked
- It was possible, that the "interchannel masking effects feature"
was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work
on stereo L/R channels only.
LAME 3.98 beta 5 August 12 2007
- Jonathan Stott:
- Bug tracker items: [ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten
If the output file is opened 'write-only', then LAME can't update the LAME tag.
In this case LAME silently overwrote the first bytes of the file and an
optional ID3v2 tag disappeared. Now an error message will be printed and
no data is written in this case.
- Robert Hegemann:
- Fix for Bugtracker item [ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only
- Fix for Bugtracker item [ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3)
The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out
the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name
extension and because it found some valid looking Layer3 synchronization header.
The fixed LAME version does not assume the file name extension is always correct and treats the files
depending on the first found MPEG sync word. The files in question are now correctly detected as
Layer2 files and transcoding does succeed.
- Fix for Bugtracker item [ 1445175 ] Input being stdin fails in Windows on WAV files
The problem here was, seeking on pipes shows some different behaviour depending on C-Library
implementations. The workaround tries to detect it's working on a pipe and doing some
reading instead of seeking in that case.
- Fixing some memory leak in the 'lame_enc.dll'.
- Fix for Bugtracker items [ 1160757, 1160741 ] --little-endian / --big-endian not working
These switches where originally intended to be used together with Libsndfile only.
- Fix for Bugtracker item [ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4
Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch,
the average bitrate rised upto maximum bitrate.
LAME 3.98 beta 4 June 23 2007
- Dennis Lambe Jr: Added support for total track count (id3v2) in the frontend
- Nyaochi:
- Ability to set user-defined ID3v2.3 frame
- Ability to include albumArt in ID3v2.3 tag
- Robert Hegemann:
- Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed.
Some hardware and software players were confused by this garbage data.
- Out of bits strategy for the newer VBR code overhauled
- LAME API: the ID3 tag functions do not store the pointers passed anymore,
they do make deep copies of strings passed as parameters.
- Changes in LAME frontend switches regarding ID3 tags:
--tg "MyGenre" will route unknown ID3v1 genres to "Other" for ID3v1 tags
and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known
ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.
--tn "02/02" will store the track number specified as plain text as-is
for ID3v2 tags.
LAME 3.98 beta 3 May 22 2007
- Robert Hegemann:
- Fixes regarding max number of bits limitation
LAME 3.98 beta 2 May 20 2007
- Robert Hegemann:
- Bug tracker item: [ 1693461 ];
Fixed memory leaks in ACM codec
- Fixed encoding of non-standard sampling rates in CBR
- Improved VBR strategy when running out of bits
LAME 3.98 beta 1 May 16 2007
- Alexander Leidinger:
- Add TLEN (ID3v2) support (Submitted by: Linus Walleij).
- Add number of total tracks per album (ID3v2) support
(Submitted by: Kyle VanderBeek).
- Some seatbelts for overflowing arrays in the ID3v2
support.
- Update the RPM spec (Submitted by: Kyle VanderBeek).
- Fix some mem-leaks in the error case.
- Update to newer autotools versions.
- Update to use a recent libsndfile (submitted by
libsndfile author).
- Intrinsics support
enabled for gcc
- Robert Hegemann:
- The newer VBR code is now LAME's default
VBR routine
- Fixed: in case of
not enough bits the new vbr code incorrectly used old vbr routine
- Improved ATH
adjustment in low volume cases
- Fixed (PSY model): mapping from convolution bands
to partition bands was broken since we replaced tables by own calculation
several years ago
- Fixed (PSY model): loss of fraction in equal loudness weighting
- Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef
- Known problem samples for the new VBR code:
many of them are at an acceptable quality level now;
with a big 'Thank You' to Francis Niechcial
- Modified VBR strategy to handle out of bits cases
- Restricted bitreservoir size for 320 kbps frames to
the size used for sideinfo, because of decoding problems
with FhG decoders installed on almost every Windows system
- LAME aborts on unsupported input files
or unrecognized parameter options passed more often now
- Bug tracker item: [ 1596306 ] "fatal error during initialization";
an invalid MPEG samplerate was returned by optimum_samplefreq function
- Bug tracker item: [ 1585942 ] lame not --silent when TERM not set;
in case LAME was build with TERMCAP defined and no TERM
environment is defined, now we do not issue an error message and
silently fallback to the default behaviour as if LAME was
compiled without TERMCAP defined.
- Bug tracker item: [ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;
LAME was sometimes writing an invalid Xing/Info header
- Feature request: [ 1588283 ] Flushing output stream in lame.exe;
'flush' option added
- Added FFTSSE and FFT3DNOW assembler code from
Lame4 branch
- Changes in lame frontend switches:
-k removed, add lowpass and highpass switches if you need to change
them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches
ion so font>
- some more tuning has been done for this new psy model.
Many thanks to Horst Albrecht and Myles Thaiss.
- the "out-of-bits" strategy is reworked
- It was possible, that the "interchannel masking effects feature"
was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work
on stereo L/R channels only.
LAME 3.98 beta 5 August 12 2007
- Jonathan Stott:
- Bug tracker items: [ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten
If the output file is opened 'write-only', then LAME can't update the LAME tag.
In this case LAME silently overwrote the first bytes of the file and an
optional ID3v2 tag disappeared. Now an error message will be printed and
no data is written in this case.
- Robert Hegemann:
- Fix for Bugtracker item [ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only
- Fix for Bugtracker item [ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3)
The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out
the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name
extension and because it found some valid looking Layer3 synchronization header.
The fixed LAME version does not assume the file name extension is always correct and treats the files
depending on the first found MPEG sync word. The files in question are now correctly detected as
Layer2 files and transcoding does succeed.
- Fix for Bugtracker item [ 1445175 ] Input being stdin fails in Windows on WAV files
The problem here was, seeking on pipes shows some different behaviour depending on C-Library
implementations. The workaround tries to detect it's working on a pipe and doing some
reading instead of seeking in that case.
- Fixing some memory leak in the 'lame_enc.dll'.
- Fix for Bugtracker items [ 1160757, 1160741 ] --little-endian / --big-endian not working
These switches where originally intended to be used together with Libsndfile only.
- Fix for Bugtracker item [ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4
Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch,
the average bitrate rised upto maximum bitrate.
LAME 3.98 beta 4 June 23 2007
- Dennis Lambe Jr: Added support for total track count (id3v2) in the frontend
- Nyaochi:
- Ability to set user-defined ID3v2.3 frame
- Ability to include albumArt in ID3v2.3 tag
- Robert Hegemann:
- Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed.
Some hardware and software players were confused by this garbage data.
- Out of bits strategy for the newer VBR code overhauled
- LAME API: the ID3 tag functions do not store the pointers passed anymore,
they do make deep copies of strings passed as parameters.
- Changes in LAME frontend switches regarding ID3 tags:
--tg "MyGenre" will route unknown ID3v1 genres to "Other" for ID3v1 tags
and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known
ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.
--tn "02/02" will store the track number specified as plain text as-is
for ID3v2 tags.
LAME 3.98 beta 3 May 22 2007
- Robert Hegemann:
- Fixes regarding max number of bits limitation
LAME 3.98 beta 2 May 20 2007
- Robert Hegemann:
- Bug tracker item: [ 1693461 ];
Fixed memory leaks in ACM codec
- Fixed encoding of non-standard sampling rates in CBR
- Improved VBR strategy when running out of bits
LAME 3.98 beta 1 May 16 2007
- Alexander Leidinger:
- Add TLEN (ID3v2) support (Submitted by: Linus Walleij).
- Add number of total tracks per album (ID3v2) support
(Submitted by: Kyle VanderBeek).
- Some seatbelts for overflowing arrays in the ID3v2
support.
- Update the RPM spec (Submitted by: Kyle VanderBeek).
- Fix some mem-leaks in the error case.
- Update to newer autotools versions.
- Update to use a recent libsndfile (submitted by
libsndfile author).
- Intrinsics support
enabled for gcc
- Robert Hegemann:
- The newer VBR code is now LAME's default
VBR routine
- Fixed: in case of
not enough bits the new vbr code incorrectly used old vbr routine
- Improved ATH
adjustment in low volume cases
- Fixed (PSY model): mapping from convolution bands
to partition bands was broken since we replaced tables by own calculation
several years ago
- Fixed (PSY model): loss of fraction in equal loudness weighting
- Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef
- Known problem samples for the new VBR code:
many of them are at an acceptable quality level now;
with a big 'Thank You' to Francis Niechcial
- Modified VBR strategy to handle out of bits cases
- Restricted bitreservoir size for 320 kbps frames to
the size used for sideinfo, because of decoding problems
with FhG decoders installed on almost every Windows system
- LAME aborts on unsupported input files
or unrecognized parameter options passed more often now
- Bug tracker item: [ 1596306 ] "fatal error during initialization";
an invalid MPEG samplerate was returned by optimum_samplefreq function
- Bug tracker item: [ 1585942 ] lame not --silent when TERM not set;
in case LAME was build with TERMCAP defined and no TERM
environment is defined, now we do not issue an error message and
silently fallback to the default behaviour as if LAME was
compiled without TERMCAP defined.
- Bug tracker item: [ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;
LAME was sometimes writing an invalid Xing/Info header
- Feature request: [ 1588283 ] Flushing output stream in lame.exe;
'flush' option added
- Added FFTSSE and FFT3DNOW assembler code from
Lame4 branch
- Changes in lame frontend switches:
-k removed, add lowpass and highpass switches if you need to change
them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches
ion so font>
- some more tuning has been done for this new psy model.
Many thanks to Horst Albrecht and Myles Thaiss.
- the "out-of-bits" strategy is reworked
- It was possible, that the "interchannel masking effects feature"
was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work
on stereo L/R channels only.
LAME 3.98 beta 5 August 12 2007
- Jonathan Stott:
- Bug tracker items: [ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten
If the output file is opened 'write-only', then LAME can't update the LAME tag.
In this case LAME silently overwrote the first bytes of the file and an
optional ID3v2 tag disappeared. Now an error message will be printed and
no data is written in this case.
- Robert Hegemann:
- Fix for Bugtracker item [ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only
- Fix for Bugtracker item [ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3)
The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out
the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name
extension and because it found some valid looking Layer3 synchronization header.
The fixed LAME version does not assume the file name extension is always correct and treats the files
depending on the first found MPEG sync word. The files in question are now correctly detected as
Layer2 files and transcoding does succeed.
- Fix for Bugtracker item [ 1445175 ] Input being stdin fails in Windows on WAV files
The problem here was, seeking on pipes shows some different behaviour depending on C-Library
implementations. The workaround tries to detect it's working on a pipe and doing some
reading instead of seeking in that case.
- Fixing some memory leak in the 'lame_enc.dll'.
- Fix for Bugtracker items [ 1160757, 1160741 ] --little-endian / --big-endian not working
These switches where originally intended to be used together with Libsndfile only.
- Fix for Bugtracker item [ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4
Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch,
the average bitrate rised upto maximum bitrate.
LAME 3.98 beta 4 June 23 2007
- Dennis Lambe Jr: Added support for total track count (id3v2) in the frontend
- Nyaochi:
- Ability to set user-defined ID3v2.3 frame
- Ability to include albumArt in ID3v2.3 tag
- Robert Hegemann:
- Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed.
Some hardware and software players were confused by this garbage data.
- Out of bits strategy for the newer VBR code overhauled
- LAME API: the ID3 tag functions do not store the pointers passed anymore,
they do make deep copies of strings passed as parameters.
- Changes in LAME frontend switches regarding ID3 tags:
--tg "MyGenre" will route unknown ID3v1 genres to "Other" for ID3v1 tags
and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known
ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.
--tn "02/02" will store the track number specified as plain text as-is
for ID3v2 tags.
LAME 3.98 beta 3 May 22 2007
- Robert Hegemann:
- Fixes regarding max number of bits limitation
LAME 3.98 beta 2 May 20 2007
- Robert Hegemann:
- Bug tracker item: [ 1693461 ];
Fixed memory leaks in ACM codec
- Fixed encoding of non-standard sampling rates in CBR
- Improved VBR strategy when running out of bits
LAME 3.98 beta 1 May 16 2007
- Alexander Leidinger:
- Add TLEN (ID3v2) support (Submitted by: Linus Walleij).
- Add number of total tracks per album (ID3v2) support
(Submitted by: Kyle VanderBeek).
- Some seatbelts for overflowing arrays in the ID3v2
support.
- Update the RPM spec (Submitted by: Kyle VanderBeek).
- Fix some mem-leaks in the error case.
- Update to newer autotools versions.
- Update to use a recent libsndfile (submitted by
libsndfile author).
- Intrinsics support
enabled for gcc
- Robert Hegemann:
- The newer VBR code is now LAME's default
VBR routine
- Fixed: in case of
not enough bits the new vbr code incorrectly used old vbr routine
- Improved ATH
adjustment in low volume cases
- Fixed (PSY model): mapping from convolution bands
to partition bands was broken since we replaced tables by own calculation
several years ago
- Fixed (PSY model): loss of fraction in equal loudness weighting
- Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef
- Known problem samples for the new VBR code:
many of them are at an acceptable quality level now;
with a big 'Thank You' to Francis Niechcial
- Modified VBR strategy to handle out of bits cases
- Restricted bitreservoir size for 320 kbps frames to
the size used for sideinfo, because of decoding problems
with FhG decoders installed on almost every Windows system
- LAME aborts on unsupported input files
or unrecognized parameter options passed more often now
- Bug tracker item: [ 1596306 ] "fatal error during initialization";
an invalid MPEG samplerate was returned by optimum_samplefreq function
- Bug tracker item: [ 1585942 ] lame not --silent when TERM not set;
in case LAME was build with TERMCAP defined and no TERM
environment is defined, now we do not issue an error message and
silently fallback to the default behaviour as if LAME was
compiled without TERMCAP defined.
- Bug tracker item: [ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;
LAME was sometimes writing an invalid Xing/Info header
- Feature request: [ 1588283 ] Flushing output stream in lame.exe;
'flush' option added
- Added FFTSSE and FFT3DNOW assembler code from
Lame4 branch
- Changes in lame frontend switches:
-k removed, add lowpass and highpass switches if you need to change
them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches
ion so font>
- some more tuning has been done for this new psy model.
Many thanks to Horst Albrecht and Myles Thaiss.
- the "out-of-bits" strategy is reworked
- It was possible, that the "interchannel masking effects feature"
was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work
on stereo L/R channels only.
LAME 3.98 beta 5 August 12 2007
- Jonathan Stott:
- Bug tracker items: [ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten
If the output file is opened 'write-only', then LAME can't update the LAME tag.
In this case LAME silently overwrote the first bytes of the file and an
optional ID3v2 tag disappeared. Now an error message will be printed and
no data is written in this case.
- Robert Hegemann:
- Fix for Bugtracker item [ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only
- Fix for Bugtracker item [ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3)
The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out
the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name
extension and because it found some valid looking Layer3 synchronization header.
The fixed LAME version does not assume the file name extension is always correct and treats the files
depending on the first found MPEG sync word. The files in question are now correctly detected as
Layer2 files and transcoding does succeed.
- Fix for Bugtracker item [ 1445175 ] Input being stdin fails in Windows on WAV files
The problem here was, seeking on pipes shows some different behaviour depending on C-Library
implementations. The workaround tries to detect it's working on a pipe and doing some
reading instead of seeking in that case.
- Fixing some memory leak in the 'lame_enc.dll'.
- Fix for Bugtracker items [ 1160757, 1160741 ] --little-endian / --big-endian not working
These switches where originally intended to be used together with Libsndfile only.
- Fix for Bugtracker item [ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4
Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch,
the average bitrate rised upto maximum bitrate.
LAME 3.98 beta 4 June 23 2007
- Dennis Lambe Jr: Added support for total track count (id3v2) in the frontend
- Nyaochi:
- Ability to set user-defined ID3v2.3 frame
- Ability to include albumArt in ID3v2.3 tag
- Robert Hegemann:
- Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed.
Some hardware and software players were confused by this garbage data.
- Out of bits strategy for the newer VBR code overhauled
- LAME API: the ID3 tag functions do not store the pointers passed anymore,
they do make deep copies of strings passed as parameters.
- Changes in LAME frontend switches regarding ID3 tags:
--tg "MyGenre" will route unknown ID3v1 genres to "Other" for ID3v1 tags
and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known
ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.
--tn "02/02" will store the track number specified as plain text as-is
for ID3v2 tags.
LAME 3.98 beta 3 May 22 2007
- Robert Hegemann:
- Fixes regarding max number of bits limitation
LAME 3.98 beta 2 May 20 2007
- Robert Hegemann:
- Bug tracker item: [ 1693461 ];
Fixed memory leaks in ACM codec
- Fixed encoding of non-standard sampling rates in CBR
- Improved VBR strategy when running out of bits
LAME 3.98 beta 1 May 16 2007
- Alexander Leidinger:
- Add TLEN (ID3v2) support (Submitted by: Linus Walleij).
- Add number of total tracks per album (ID3v2) support
(Submitted by: Kyle VanderBeek).
- Some seatbelts for overflowing arrays in the ID3v2
support.
- Update the RPM spec (Submitted by: Kyle VanderBeek).
- Fix some mem-leaks in the error case.
- Update to newer autotools versions.
- Update to use a recent libsndfile (submitted by
libsndfile author).
- Intrinsics support
enabled for gcc
- Robert Hegemann:
- The newer VBR code is now LAME's default
VBR routine
- Fixed: in case of
not enough bits the new vbr code incorrectly used old vbr routine
- Improved ATH
adjustment in low volume cases
- Fixed (PSY model): mapping from convolution bands
to partition bands was broken since we replaced tables by own calculation
several years ago
- Fixed (PSY model): loss of fraction in equal loudness weighting
- Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef
- Known problem samples for the new VBR code:
many of them are at an acceptable quality level now;
with a big 'Thank You' to Francis Niechcial
- Modified VBR strategy to handle out of bits cases
- Restricted bitreservoir size for 320 kbps frames to
the size used for sideinfo, because of decoding problems
with FhG decoders installed on almost every Windows system
- LAME aborts on unsupported input files
or unrecognized parameter options passed more often now
- Bug tracker item: [ 1596306 ] "fatal error during initialization";
an invalid MPEG samplerate was returned by optimum_samplefreq function
- Bug tracker item: [ 1585942 ] lame not --silent when TERM not set;
in case LAME was build with TERMCAP defined and no TERM
environment is defined, now we do not issue an error message and
silently fallback to the default behaviour as if LAME was
compiled without TERMCAP defined.
- Bug tracker item: [ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;
LAME was sometimes writing an invalid Xing/Info header
- Feature request: [ 1588283 ] Flushing output stream in lame.exe;
'flush' option added
- Added FFTSSE and FFT3DNOW assembler code from
Lame4 branch
- Changes in lame frontend switches:
-k removed, add lowpass and highpass switches if you need to change
them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches
ion so font>
- some more tuning has been done for this new psy model.
Many thanks to Horst Albrecht and Myles Thaiss.
- the "out-of-bits" strategy is reworked
- It was possible, that the "interchannel masking effects feature"
was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work
on stereo L/R channels only.
LAME 3.98 beta 5 August 12 2007
- Jonathan Stott:
- Bug tracker items: [ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten
If the output file is opened 'write-only', then LAME can't update the LAME tag.
In this case LAME silently overwrote the first bytes of the file and an
optional ID3v2 tag disappeared. Now an error message will be printed and
no data is written in this case.
- Robert Hegemann:
- Fix for Bugtracker item [ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only
- Fix for Bugtracker item [ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3)
The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out
the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name
extension and because it found some valid looking Layer3 synchronization header.
The fixed LAME version does not assume the file name extension is always correct and treats the files
depending on the first found MPEG sync word. The files in question are now correctly detected as
Layer2 files and transcoding does succeed.
- Fix for Bugtracker item [ 1445175 ] Input being stdin fails in Windows on WAV files
The problem here was, seeking on pipes shows some different behaviour depending on C-Library
implementations. The workaround tries to detect it's working on a pipe and doing some
reading instead of seeking in that case.
- Fixing some memory leak in the 'lame_enc.dll'.
- Fix for Bugtracker items [ 1160757, 1160741 ] --little-endian / --big-endian not working
These switches where originally intended to be used together with Libsndfile only.
- Fix for Bugtracker item [ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4
Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch,
the average bitrate rised upto maximum bitrate.
LAME 3.98 beta 4 June 23 2007
- Dennis Lambe Jr: Added support for total track count (id3v2) in the frontend
- Nyaochi:
- Ability to set user-defined ID3v2.3 frame
- Ability to include albumArt in ID3v2.3 tag
- Robert Hegemann:
- Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed.
Some hardware and software players were confused by this garbage data.
- Out of bits strategy for the newer VBR code overhauled
- LAME API: the ID3 tag functions do not store the pointers passed anymore,
they do make deep copies of strings passed as parameters.
- Changes in LAME frontend switches regarding ID3 tags:
--tg "MyGenre" will route unknown ID3v1 genres to "Other" for ID3v1 tags
and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known
ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.
--tn "02/02" will store the track number specified as plain text as-is
for ID3v2 tags.
LAME 3.98 beta 3 May 22 2007
- Robert Hegemann:
- Fixes regarding max number of bits limitation
LAME 3.98 beta 2 May 20 2007
- Robert Hegemann:
- Bug tracker item: [ 1693461 ];
Fixed memory leaks in ACM codec
- Fixed encoding of non-standard sampling rates in CBR
- Improved VBR strategy when running out of bits
LAME 3.98 beta 1 May 16 2007
- Alexander Leidinger:
- Add TLEN (ID3v2) support (Submitted by: Linus Walleij).
- Add number of total tracks per album (ID3v2) support
(Submitted by: Kyle VanderBeek).
- Some seatbelts for overflowing arrays in the ID3v2
support.
- Update the RPM spec (Submitted by: Kyle VanderBeek).
- Fix some mem-leaks in the error case.
- Update to newer autotools versions.
- Update to use a recent libsndfile (submitted by
libsndfile author).
- Intrinsics support
enabled for gcc
- Robert Hegemann:
- The newer VBR code is now LAME's default
VBR routine
- Fixed: in case of
not enough bits the new vbr code incorrectly used old vbr routine
- Improved ATH
adjustment in low volume cases
- Fixed (PSY model): mapping from convolution bands
to partition bands was broken since we replaced tables by own calculation
several years ago
- Fixed (PSY model): loss of fraction in equal loudness weighting
- Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef
- Known problem samples for the new VBR code:
many of them are at an acceptable quality level now;
with a big 'Thank You' to Francis Niechcial
- Modified VBR strategy to handle out of bits cases
- Restricted bitreservoir size for 320 kbps frames to
the size used for sideinfo, because of decoding problems
with FhG decoders installed on almost every Windows system
- LAME aborts on unsupported input files
or unrecognized parameter options passed more often now
- Bug tracker item: [ 1596306 ] "fatal error during initialization";
an invalid MPEG samplerate was returned by optimum_samplefreq function
- Bug tracker item: [ 1585942 ] lame not --silent when TERM not set;
in case LAME was build with TERMCAP defined and no TERM
environment is defined, now we do not issue an error message and
silently fallback to the default behaviour as if LAME was
compiled without TERMCAP defined.
- Bug tracker item: [ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;
LAME was sometimes writing an invalid Xing/Info header
- Feature request: [ 1588283 ] Flushing output stream in lame.exe;
'flush' option added
- Added FFTSSE and FFT3DNOW assembler code from
Lame4 branch
- Changes in lame frontend switches:
-k removed, add lowpass and highpass switches if you need to change
them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches
ion so font>
- some more tuning has been done for this new psy model.
Many thanks to Horst Albrecht and Myles Thaiss.
- the "out-of-bits" strategy is reworked
- It was possible, that the "interchannel masking effects feature"
was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work
on stereo L/R channels only.
LAME 3.98 beta 5 August 12 2007
- Jonathan Stott:
- Bug tracker items: [ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten
If the output file is opened 'write-only', then LAME can't update the LAME tag.
In this case LAME silently overwrote the first bytes of the file and an
optional ID3v2 tag disappeared. Now an error message will be printed and
no data is written in this case.
- Robert Hegemann:
- Fix for Bugtracker item [ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only
- Fix for Bugtracker item [ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3)
The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out
the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name
extension and because it found some valid looking Layer3 synchronization header.
The fixed LAME version does not assume the file name extension is always correct and treats the files
depending on the first found MPEG sync word. The files in question are now correctly detected as
Layer2 files and transcoding does succeed.
- Fix for Bugtracker item [ 1445175 ] Input being stdin fails in Windows on WAV files
The problem here was, seeking on pipes shows some different behaviour depending on C-Library
implementations. The workaround tries to detect it's working on a pipe and doing some
reading instead of seeking in that case.
- Fixing some memory leak in the 'lame_enc.dll'.
- Fix for Bugtracker items [ 1160757, 1160741 ] --little-endian / --big-endian not working
These switches where originally intended to be used together with Libsndfile only.
- Fix for Bugtracker item [ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4
Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch,
the average bitrate rised upto maximum bitrate.
LAME 3.98 beta 4 June 23 2007
- Dennis Lambe Jr: Added support for total track count (id3v2) in the frontend
- Nyaochi:
- Ability to set user-defined ID3v2.3 frame
- Ability to include albumArt in ID3v2.3 tag
- Robert Hegemann:
- Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed.
Some hardware and software players were confused by this garbage data.
- Out of bits strategy for the newer VBR code overhauled
- LAME API: the ID3 tag functions do not store the pointers passed anymore,
they do make deep copies of strings passed as parameters.
- Changes in LAME frontend switches regarding ID3 tags:
--tg "MyGenre" will route unknown ID3v1 genres to "Other" for ID3v1 tags
and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known
ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.
--tn "02/02" will store the track number specified as plain text as-is
for ID3v2 tags.
LAME 3.98 beta 3 May 22 2007
- Robert Hegemann:
- Fixes regarding max number of bits limitation
LAME 3.98 beta 2 May 20 2007
- Robert Hegemann:
- Bug tracker item: [ 1693461 ];
Fixed memory leaks in ACM codec
- Fixed encoding of non-standard sampling rates in CBR
- Improved VBR strategy when running out of bits
LAME 3.98 beta 1 May 16 2007
- Alexander Leidinger:
- Add TLEN (ID3v2) support (Submitted by: Linus Walleij).
- Add number of total tracks per album (ID3v2) support
(Submitted by: Kyle VanderBeek).
- Some seatbelts for overflowing arrays in the ID3v2
support.
- Update the RPM spec (Submitted by: Kyle VanderBeek).
- Fix some mem-leaks in the error case.
- Update to newer autotools versions.
- Update to use a recent libsndfile (submitted by
libsndfile author).
- Intrinsics support
enabled for gcc
- Robert Hegemann:
- The newer VBR code is now LAME's default
VBR routine
- Fixed: in case of
not enough bits the new vbr code incorrectly used old vbr routine
- Improved ATH
adjustment in low volume cases
- Fixed (PSY model): mapping from convolution bands
to partition bands was broken since we replaced tables by own calculation
several years ago
- Fixed (PSY model): loss of fraction in equal loudness weighting
- Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef
- Known problem samples for the new VBR code:
many of them are at an acceptable quality level now;
with a big 'Thank You' to Francis Niechcial
- Modified VBR strategy to handle out of bits cases
- Restricted bitreservoir size for 320 kbps frames to
the size used for sideinfo, because of decoding problems
with FhG decoders installed on almost every Windows system
- LAME aborts on unsupported input files
or unrecognized parameter options passed more often now
- Bug tracker item: [ 1596306 ] "fatal error during initialization";
an invalid MPEG samplerate was returned by optimum_samplefreq function
- Bug tracker item: [ 1585942 ] lame not --silent when TERM not set;
in case LAME was build with TERMCAP defined and no TERM
environment is defined, now we do not issue an error message and
silently fallback to the default behaviour as if LAME was
compiled without TERMCAP defined.
- Bug tracker item: [ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;
LAME was sometimes writing an invalid Xing/Info header
- Feature request: [ 1588283 ] Flushing output stream in lame.exe;
'flush' option added
- Added FFTSSE and FFT3DNOW assembler code from
Lame4 branch
- Changes in lame frontend switches:
-k removed, add lowpass and highpass switches if you need to change
them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches
ion so font>
- some more tuning has been done for this new psy model.
Many thanks to Horst Albrecht and Myles Thaiss.
- the "out-of-bits" strategy is reworked