xref: /third_party/lame/doc/html/history.html (revision 159b3361)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2    "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4    <head>
5        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6        <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; I; Linux 2.2.12-20 i686) [Netscape]">
7        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
8        <title>LAME Changelog</title>
9    </head>
10    <body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" alink="#bbbbbb" link="#888888" vlink="#555555">
11        <center>
12            <h1>History</h1>
13        </center>
14        Starting with LAME 3.0: <br>
15        <font color="#ff0000">red = features and bug fixes which affect quality</font> <br>
16        <font color="#3366ff">blue = features and bug fixes which affect speed</font> <br>
17        black = usability, portability, other
18        <hr>
19        <h3>LAME 3.100.1 &nbsp;under construction</h3>
20        <ul>
21            <li>
22                Robert Hegemann
23                <ul>
24                    <li>Patch submitted by KO Myung-Hun, patch ticket <i>[ #80 ] OS/2 patches</i>
25                    </li>
26                    <li>Patch submitted by Elio Blanca, patch ticket <i>[ #82 ] Take advantage of terminal width on printing file names</i>
27                    </li>
28                    <li><font color="#ff0000">
29                        Bug fix for item <i>[ #496 ] A critical bug in init_xrpow_core_sse</i>
30                        </font>
31                    </li>
32                    <li><font color="#ff0000">
33                        Bug fix for item <i>[ #500 ] Buffer overflow in encoder</i>
34                        </font>
35                    </li>
36                    <li><font color="#ff0000">
37                        Bug fix for item <i>[ #501 ] Encoder: Assertion 'eov->bitrate_index &lt;&#61; cfg->vbr_max_bitrate_index' failed during ABR encoding</i>
38                        </font>
39                    </li>
40                    <li>Bug fix for item <i>[ #444 ] msacmdrv.h (structure packing alignment)</i>
41                    </li>
42                </ul>
43            </li>
44            <li>
45                Alexander Leidinger
46                <ul>
47                    <li><font color="#3366ff">Add faster CRC routine. The speed improvement is very small for typical use cases, but may be valuable if a lot of independent encodes are running and/or for a very long time. Patch by Robert Kausch of the fre:ac project.
48                        </font>
49                    </li>
50                    <li><font color="#3366ff">Fix configure script glob-ranges matching of compiler versions. This may result in faster code if no compiler optimization flags are specified during the configure step. This is part of patch ticket <i>[ #491 ] lame 3.100 slower than 3.99.5</i>
51                        </font>
52                    </li>
53                    <li><font color="#3366ff">Disable Takehiros IEEE753 hack by default. On modern CPUs (anything more recent from AMD than hammer/k8; Intel: Core2, i3/5/7/9 and similar -- no idea about recent Atom/Pentium) it is a speed pessimization. Add a configure option for it so that it can be enabled on old CPUs.
54                        </font>
55                    </li>
56                    <li>Update to more recent autotools based scripts, this may or may not fix issues during the configure stage for less popular or more recent OS or architectures.
57                    </li>
58                </ul>
59            </li>
60        </ul>
61        <br>
62        <h3>LAME 3.100 &nbsp;October 13 2017</h3>
63        <ul>
64            <li>
65                Rog&eacute;rio Brito
66                <ul>
67                    <li>
68                        Don't include the debian directory as one that is needed during
69                        builds.  Patch taken from Debian's packaging of lame.
70                    </li>
71                    <li>
72                        Resurrect Owen Taylor's code dated from 97-11-3 to properly deal
73                        with GTK1.  This was transplanted back from aclocal.m4 with a patch
74                        provided by Andres Mejia. This change makes it easy to regenerate
75                        autotools' files with a simple invocation of <code>autoconf -vfi</code>.
76                    </li>
77                    <li>
78                        Fix possible race condition causing build failures in libmp3lame.
79                        Discovered in automated builds by the Debian project with patch
80                        provided by Andres Mejia.
81                    </li>
82                </ul>
83            </li>
84            <li>
85                Robert Hegemann
86                <ul>
87                    <li>
88                        Improved detection of MPEG audio data in RIFF WAVE files. 
89                        Tracker item <i>[ 3545112 ] Invalid sampling detection</i>
90                    </li>
91                    <li>
92                        New switch <b>--gain &lt;decibel&gt;</b>, range -20.0 to 
93                        +12.0, a more convenient way to apply Gain adjustment in 
94                        decibels, than the use of <i>--scale &lt;factor&gt;</i>.
95                    </li>
96                    <li>
97                        Fix for tracker item <i>[ 3558466 ] Bug in path handling</i>
98                    </li>
99                    <li>
100                        Fix for tracker item <i>[ 3567844 ] problem with Tag 
101                        genre</i>
102                    </li>
103                    <li>
104                        Fix for tracker item <i>[ 3565659 ] no progress 
105                        indication with pipe input</i>
106                    </li>
107                    <li>
108                        Fix for tracker item <i>[ 3544957 ] scale (empty) silent 
109                        encode without warning</i>
110                    </li>
111                    <li>
112                        Fix for tracker item <i>[ 3580176 ] environment variable 
113                        LAMEOPT doesn't work anymore</i>
114                    </li>
115                    <li>
116                        Fix for tracker item <i>[ 3608583 ] input file name 
117                        displayed with wrong character encoding (on windows 
118                        console with CP_UTF8)</i>
119                    </li>
120                    <li>
121                        Fix for bug ticket <i>[ #447 ] Fix dereference NULL and 
122                        Buffer not NULL terminated issues. Thanks to Surabhi 
123                        Mishra</i>
124                    </li>
125                    <li>
126                        Fix for bug ticket <i>[ #445 ] dereference of a null 
127                        pointer possible in loop. Thanks to Renu Tyagi</i>
128                    </li>
129                    <li>
130                        Fix for bug ticket <i>[ #449 ] Make sure functions with 
131                        SSE instructions maintain their own properly aligned 
132                        stack. Thanks to Fabian Greffrath</i>
133                    </li>
134                    <li>
135                        Fix for bug ticket <i>[ #458 ] Multiple Stack and Heap 
136                        Corruptions from Malicious File. Thanks to Gareth Evans 
137                        and Elio Blanca</i>
138                    </li>
139                    <li>
140                        Fix for bug ticket <i>[ #460 ] A division by zero 
141                        vulnerability. Thanks to Wang Shiyang, Liu Bingchang</i>
142                    </li>
143                    <li>
144                        Fix for bug ticket <i>[ #461 ] CVE-2017-9410 
145                        fill_buffer_resample function in libmp3lame/util.c 
146                        heap-based buffer over-read and ap</i>
147                    </li>
148                    <li>
149                        Fix for bug ticket <i>[ #462 ] CVE-2017-9411 
150                        fill_buffer_resample function in libmp3lame/util.c 
151                        invalid memory read and application crash</i>
152                    </li>
153                    <li>
154                        Fix for bug ticket <i>[ #463 ] CVE-2017-9412 
155                        unpack_read_samples function in frontend/get_audio.c 
156                        invalid memory read and application crash</i>
157                    </li>
158                    <li>
159                        Fix for bug ticket <i>[ #434 ] clip detect scale 
160                        suggestion unaware of scale input value</i>
161                    </li>
162                    <li>
163                        HIP decoder bug fixed: decoding mixed blocks of lower 
164                        sample frequency Layer3 data resulted in internal buffer 
165                        overflow (write). Thanks to Henri Salo</i>
166                    </li>
167                </ul>
168            </li>
169            <li>
170                Alexander Leidinger
171                <ul>
172                    <li>
173                        Feature request, patch ticket <i>[ #27 ] Add 
174                        lame_encode_buffer_interleaved_int() by Michael Fink</i>
175                    </li>
176                </ul>
177            </li>
178        </ul>
179        <br>
180        <hr>
181        <h3>LAME 3.99.5 &nbsp;February 28 2012</h3>
182        <ul>
183            <li>
184                Rog&eacute;rio Brito
185                <ul>
186                    <li>
187                        autotools: Fix compilation on alpha using proper ifdef 
188                        guards. Thanks to Andres Mejia.
189                    </li>
190                    <li>Small correction of the documentation.</li>
191                </ul>
192            </li>
193            <li>
194                Robert Hegemann
195                <ul>
196                    <li>
197                        Workaround for cygwin build problem. Tracker item 
198                        <i>[ 3480692 ] mingw-w64 compilation error</i>
199                    </li>
200                    <li>
201                        Fix for a problem when LAME is compiled with <i>fast 
202                        floating point math</i>. It could result in <i>bitrate 
203                        bloat</i> with silent input data.
204                    </li>
205                    <li>
206                        <font color="#ff0000">Bug fix for tracker item <i>[ 
207                        3486753 ] Artifacts at the beginning of <b>decoded</b> 
208                        file</i></font>
209                    </li>
210                </ul>
211            </li>
212        </ul>
213        <br>
214        <h3>LAME 3.99.4 &nbsp;January 25 2012</h3>
215        <ul>
216            <li>
217                Robert Hegemann
218                <ul>
219                    <li>
220                        Fix for tracker item <i>[ 3475581 ] lame crashes at .w64 
221                        input file</i> 
222                    </li>
223                    <li>
224                        Addressing things brought to attention by tracker item 
225                        <i>[ 3463197 ] 3.99.x problem WFED and PCST frames </i>
226                        <ul>
227                            <li>
228                                WFED and PCST frames can now be added, to tag 
229                                podcasts iTunes recognizes</li>
230                            <li>USER frames are now supported</li>
231                            <li>
232                                COMM frames can now have a description, when 
233                                passed via --tv "COMM=description=full text"
234                            </li>
235                            <li>
236                                possible divide-by-zero exception should be fixed
237                            </li>
238                            <li>
239                                adding malformed user-defined-frames could result 
240                                in abnormal program termination, fixed
241                            </li>
242                        </ul>
243                    </li>
244                </ul>
245            </li>
246        </ul>
247        <br>
248        <h3>LAME 3.99.3 &nbsp;November 26 2011</h3>
249        <ul>
250            <li>
251                Robert Hegemann
252                <ul>
253                    <li>
254                        Fix for tracker item <i>[ 3441349 ] --tg does not handle 
255                        genre number when adding unicode tag</i> 
256                    </li>
257                </ul>
258            </li>
259        </ul>
260        <br>
261        <h3>LAME 3.99.2 &nbsp;November 18 2011</h3>
262        <ul>
263            <li>
264                Robert Hegemann
265                <ul>
266                    <li>
267                        Due to some bugs in 3rd party HW/SW decoders, those were not
268                        be able to make use of LAME's extended info tag anymore,
269                        resulting in problems with things like gapless playback.
270                    </li>
271                </ul>
272            </li>
273        </ul>
274        <br>
275        <h3>LAME 3.99.1 &nbsp;November 5 2011</h3>
276        <ul>
277            <li>
278                Robert Hegemann
279                <ul>
280                    <li>
281                        Fixes for several issues with ID3v2 unicode tags, using 
282                        Big-Endian text encodings. Because of several other 
283                        software (like Windows Media Player),
284                        LAME writes Little-Endian unicode tags only.<br>
285                        Thanks to Taihei Monma, for reporting these issues.
286                        Tracker items: <i>[ 3431203, 3431222, 3431241 ]</i>
287                    </li>
288                </ul>
289            </li>
290        </ul>
291        <br>
292        <h3>LAME 3.99 &nbsp;October 15 2011</h3>
293        <ul>
294            <li>3.99 beta 1 becomes 3.99</li>
295        </ul>
296        <br>
297        <h3>LAME 3.99 beta 1 &nbsp;not yet released</h3>
298        <ul>
299            <li>
300                Robert Hegemann
301                <ul>
302                    <li>
303                        Fix for Bugtracker item <i>[ 3395813 ] 
304                        id3tag_set_fieldvalue for URL link frames Broken</i>
305                    </li>
306                    <li>
307                        Fix for Bugtracker item <i>[ 3368977 ] Wave Parser 
308                        doesn't pad chunks</i>
309                    </li>
310                    <li>
311                        Fix for Bugtracker item <i>[ 3034259 ] confusing fatal 
312                        error: can't update LAME-tag frame!</i>
313                    </li>
314                </ul>
315            </li>
316        </ul>
317        <h3>LAME 3.99 beta 0 &nbsp;not officially released</h3>
318        <ul>
319            <li>
320                Josep Maria Antol&iacute;n Segura
321                <ul>
322                    <li>
323                        Documentation work
324                    </li>
325                </ul>
326            </li>
327            <li>
328                Rog&eacute;rio Brito
329                <ul>
330                    <li>
331                        Improve Debian packaging.
332                        <ul>
333                            <li>Include suggestions made by Fabian Greffrath</li>
334                            <li>
335                                Update version of the Debian package to reflect 
336                                that it is taken from CVS.
337                            </li>
338                            <li>Get rid of a transitional package</li>
339                            <li>Much more to come...</li>
340                        </ul>
341                    <li>Minor fix to validate the history file correctly</li>
342                </ul>
343            </li>
344            <li>
345                Robert Hegemann
346                <ul>
347                    <li>
348                        Porting of LAME <b>mp3rtp</b> program to Windows platform
349                    </li>
350                    <li>
351                        Fix: <font color="#ff0000">for free format mp3 above 320
352                        kbps, the maximum allowed bits was limited too far.</font>
353                    </li>
354                    <li>
355                        Changed behaviour: LAME replaces common suffixes by 
356                        MP3/WAV when no output filename was given. For example, 
357                        a simple <tt>lame x.wav</tt> will create output file 
358                        <tt>x.mp3</tt>
359                    </li>
360                    <li>
361                        UNICODE support on Windows OS, file names and ID3v2 tags;
362                        related: Bugtracker item <i>[ 3052230 ] Lame.exe can't 
363                        find files with non-ASCII names</i>
364                    </li>
365                    <li>
366                        Added  support for WAVE FORMAT IEEE FLOAT input files
367                    </li>
368                    <li>
369                        New switch <b>--swap-channel</b> added, see tracker 
370                        item <i>[ 1118412 ] RFE: option to swap L and R channels</i>
371                    </li>
372                    <li>
373                        New switches <b>-m l</b> and <b>-m r</b> to select either
374                        left or right channel for mono encoding.
375                    </li>
376                    <li>
377                        Feature request item <i>[ 3134258 ] Allow larger images
378                        with LAME (>128KB)</i>
379                    </li>
380                    <li>
381                        Fix for Bugtracker item <i>[ 2962223 ] Encoder delay 
382                        and padding values ignored when re-encoding</i>
383                    </li>
384                    <li>
385                        Fix for Bugtracker item <i>[ 2986823 ] Error when 
386                        building Lame with NASM support -still exists</i>
387                    </li>
388                    <li>
389                        Fix for Bugtracker item <i>[ 3125235 ] make -f 
390                        Makefile.mingw32 fails</i>
391                    </li>
392                    <li>
393                        Fix for Bugtracker item <i>[ 3021935 ] ID3 tag TXXX 
394                        cannot be used more than once</i>
395                    </li>
396                    <li>
397                        Fix for Bugtracker item <i>[ 3025801 ] gain_analysis.h 
398                        needs int constants</i>
399                    </li>
400                    <li>
401                        Fix for Bugtracker item <i>[ 3277412 ] Segmentation 
402                        fault at layer2.c:105 with --decode</i>
403                    </li>
404                    <li>
405                        Changes in new VBR code:
406                        <ul>
407                            <li><font color="#ff0000">tuning on PSY model</font></li>
408                            <li>
409                                <font color="#770000">tuning on VBR scale and 
410                                resulting bitrates</font>
411                            </li>
412                            <li>
413                                <font color="#ff0000">Minor bug fix for sfb21 
414                                encoding</font>
415                            </li>
416                        </ul>
417                    </li>
418                    <li>
419                        <font color="#ff0000">All encoding modes use the PSY 
420                        model from new VBR code, addresses Bugtracker item <i>[ 
421                        3187397 ] Strange compression behavior</i></font>
422                    </li>
423                    <li>
424                        Fix for a possible out of bounds array access in HIP 
425                        decoder, addresses Bugtracker item <i>[ 3091776 ] 
426                        crash at III_dequantize_sample</i>
427                    </li>
428                </ul>
429            </li>
430        </ul>
431        <hr>
432        <h3>LAME 3.98.4  &nbsp;March 22 2010</h3>
433        <ul>
434            <li>
435                Joseph Flynn
436                <ul>
437                    <li>
438                        Improvements for LAME DirectShow filter:
439                        <ul>
440                            <li>Added support for the DirectShow IAMStreamConfig Interface to the LAME encoder filter output pin.
441                            </li>
442                            <li>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.
443                            </li>
444                            <li>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.
445                            </li>
446                            <li>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.
447                            </li>
448                            <li>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.
449                            </li>
450                        </ul>
451                    </li>
452                </ul>
453            </li>
454            <li>
455                Robert Hegemann
456                <ul>
457                    <li><font color="#ff0000">Fix for Bugtracker item <i>[ 2973877 ] A problem regarding the new drain code</i></font>
458                    </li>
459                </ul>
460            </li>
461        </ul>
462        <h3>LAME 3.98.3  &nbsp;February 27 2010</h3>
463        <ul>
464            <li>
465                Rog&eacute;rio Brito:
466                <ul>
467                    <li>Update the debian packaging for the new release.
468                    </li>
469                </ul>
470            </li>
471            <li>
472                Robert Hegemann
473                <ul>
474                    <li>The <b>ignore-tag-errors</b> switch had no effect when embedding album art, fixed.</li>
475                    <li>Library API change: lame_decode functions are now obsolete but still present, please use hip_decode instead.
476                        The reason for this change is: lame_decode functions use a single global variable within the library
477                        to store decoder setup, hip_decode functions don't.
478                        The encoder now uses hip_decode internally and it is now possible to use <b>clipdetect</b>
479                        feature while reencoding mp3 to mp3.
480                    </li>
481                    <li>Workaround for FFMPEG bug, which uses to call lame_encode_flush more than once in a loop.
482                    </li>
483                    <li>Windows: program icon and version info added (when building with VC9)
484                    </li>
485                    <li>Fix for Bugtracker item <i>[ 2688413 ] lib name problem in Microsoft Visual Studio 6</i>
486                    </li>
487                    <li>Fix for Bugtracker items <i>[ 2051870, 2423650, 2928684 ] several small documentation issues</i>
488                    </li>
489                    <li>Fix for Bugtracker item <i>[ 2723518 ] resampling in 3.98 and 3.99alpha</i>
490                    </li>
491                    <li>Fix for Bugtracker item <i>[ 2891879 ] Because of Windows API change, there was a problem with the <b>prority</b> switch.</i>
492                    </li>
493                    <li>Fix for Bugtracker item <i>[ 2893101 ] Access Violation in BladeMP3EncDLL if UNICODE was defined.</i>
494                    </li>
495                    <li>Fix for Bugtracker item <i>[ 2887359 ] Wrong length in ID3v2 tag when num_samples isn't set</i>
496                    </li>
497                    <li>Fix for Bugtracker item <i>[ 2872590 ] LameTAG: "Music length" missmatch in LAME 3.98</i>
498                    </li>
499                    <li>Fix for Bugtracker item <i>[ 2824296 ] wrong enc_padding value in LAME 3.99a and 3.98.3 (from CVS)</i>
500                    </li>
501                    <li><font color="#ff0000">Revisiting the FhG decoder problem (FhG V1.5 build 50, ships with MS Windows):
502                        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).</font>
503                    </li>
504                    <li>Patch submitted by Bernhard Doebler, tracker item <i>[ 2807676 ] Error when building Lame with NASM support</i>
505                    </li>
506                    <li>Patch submitted by Mancuso Raffaele, tracker item <i>[ 2406420 ] compile lame_enc.dll under cygwin</i>
507                    </li>
508                </ul>
509            </li>
510        </ul>
511        <h3>LAME 3.98.2  &nbsp;September 22 2008</h3>
512        <ul>
513            <li>
514                Robert Hegemann
515                <ul>
516                    <li>Fix for Bugtracker item <i>[ 2123206 ] lame 3.98.1 segfaults with -h</i>
517                    </li>
518                </ul>
519            </li>
520        </ul>
521        <h3>LAME 3.98.1  &nbsp;September 21 2008</h3>
522        <ul>
523            <li>
524                Rog&eacute;rio Brito:
525                <ul>
526                    <li>
527                        More fixes for the abx tool for Unix systems:
528                        <ul>
529                            <li>Plugged a memory leak.</li>
530                            <li>Fixed an endianness problem: users of big-endian machines
531                                can now do abx tests.
532                            </li>
533                        </ul>
534                    </li>
535                    <li>Fixed history's HTML doctype</li>
536                    <li>
537                        Fixed history so that it <em>finally</em> validates
538                        at <a href="http://validator.w3.org/">W3's validator</a>
539                    </li>
540                    <li>
541                        Fixed compilation of frontend <code>mp3rtp.c</code>. Thanks to Kris Karas.
542                        Bugtracker item <i>[ 2015432 ] mp3rtp missing uint16_t in lame 3.98</i>
543                    </li>
544                </ul>
545            </li>
546            <li>
547                Robert Hegemann:
548                <ul>
549                    <li>Fix for Bugtracker item <i>[ 2031704 ] --id3v1-only didnt work in 3.98-final</i></li>
550                    <li>Fix for Bugtracker item <i>[ 2022035 ] encoder_padding value and resampling</i></li>
551                    <li>Fix for Bugtracker item <i>[ 2029282 ] Frequency filtering API broken in 3.98</i></li>
552                    <li>Fix for Bugtracker item <i>[ 2039648 ] potential memory leak in parse_args() function in parse.c</i></li>
553                    <li>
554                        Fix for some tagging issues:
555                        <ul>
556                            <li>
557                                Made search for ID3v1 genres more sloppy, abbrevations may match more often as some simple typos.
558                                Examples:
559                                <ul>
560                                    <li>--tg "Alt. Rock" matches genre "Alternate Rock"</li>
561                                    <li>--tg "acapela" matches genre "A Cappella"</li>
562                                </ul>
563                            </li>
564                            <li>New switch --pad-id3v2-size "n": adds ID3v2 tag with n padding bytes.</li>
565                        </ul>
566                    </li>
567                </ul>
568            </li>
569        </ul>
570        <hr>
571        <h3>LAME 3.98  &nbsp;July 4 2008</h3>
572        <ul>
573            <li>
574                Anton Sergunov:
575                <ul>
576                    <li>Frontend DirectShow: enabling LAME dshow filter to connect to "File Writer Filter".
577                    </li>
578                </ul>
579            </li>
580            <li>
581                Rog&eacute;rio Brito:
582                <ul>
583                    <li>Updates to the Debian Packaging</li>
584                    <li>Fixes to the abx tool for Unix systems (so that more people
585                        can evaluate LAME's compression against the original files)
586                    </li>
587                </ul>
588            </li>
589            <li>
590                Alexander Leidinger:
591                <ul>
592                    <li>explicitely link the math lib to the lame lib</li>
593                    <li>add switch to disable the use of the compaq optimized math lib</li>
594                </ul>
595            </li>
596        </ul>
597        <h3>LAME 3.98 beta 8 &nbsp;April 13 2008</h3>
598        <ul>
599            <li>
600                Robert Hegemann:
601                <ul>
602                    <li>LAME now accepts a floating point value in the range [0,...,10[ as VBR quality setting, like <b>-V5.678</b>
603                    </li>
604                    <li>Found and fixed some suspicious code in additive masking calculation for VBR-NEW
605                    </li>
606                    <li>bug-fix:<font color="#ff0000">experimental code was defaulted by accident for VBR-NEW</font>
607                    </li>
608                    <li>fix for some endianess problem on big-endian machines
609                    </li>
610                </ul>
611            </li>
612        </ul>
613        <h3>LAME 3.98 beta 7 &nbsp;April 6 2008</h3>
614        <ul>
615            <li>
616                Robert Hegemann:
617                <ul>
618                    <li>libmp3lame API: allow frontends to separately retrieve LAME/Xing and ID3 data, because the old library automatism
619                        makes it impossible to make fully buffered encodes.
620                    </li>
621                    <li>libmp3lame API: added some experimental unicode ID3 tagging code.
622                    </li>
623                    <li>frontends: write itself final ID3 tags and LAME/Xing header frame
624                    </li>
625                    <li>lame_enc.dll: writes itself final LAME/Xing header frame
626                    </li>
627                    <li>
628                        Latest changes to the new VBR psymodel:
629                        <ul>
630                            <li>uses a different spreading function
631                            </li>
632                            <li><font color="#ff0000">bug-fix for out-of-bounds array access (program stack corruption possible)</font>
633                            </li>
634                        </ul>
635                    </li>
636                </ul>
637            </li>
638        </ul>
639        <h3>LAME 3.98 beta 6 &nbsp;December 16 2007</h3>
640        <ul>
641            <li>
642                Robert Hegemann:
643                <ul>
644                    <li>Feature request <i>[ 1811483 ] WAVE_FORMAT_EXTENSIBLE support (PCM)</i>
645                    </li>
646                    <li><font color="#ff0000">Fix for some rare scalefactor selection issue the newer vbr code had at low compression levels
647                        </font>
648                    </li>
649                    <li>Fix for Bugtracker item<i>[ 1813496 ] AIFF parsing bug</i>
650                    </li>
651                    <li>
652                        Latest changes to the new VBR code:
653                        <ul>
654                            <li><font color="#3366ff">it now has its own psy model, a derivation from NSPSY.</font>
655                            </li>
656                            <li><font color="#ff0000">some more tuning has been done for this new psy model.</font>
657                                Many thanks to Horst Albrecht and Myles Thaiss.
658                            </li>
659                            <li><font color="#ff0000">the "out-of-bits" strategy is reworked</font>
660                            </li>
661                        </ul>
662                    <li><font color="#ff0000">It was possible, that the "interchannel masking effects feature"
663                        was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work
664                        on stereo L/R channels only.</font>
665                    </li>
666                </ul>
667            </li>
668        </ul>
669        <h3>LAME 3.98 beta 5 &nbsp;August 12 2007</h3>
670        <ul>
671            <li>
672                Jonathan Stott:
673                <ul>
674                    <li>Bug tracker items: <i>[ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten</i><br>
675                        If the output file is opened 'write-only', then LAME can't update the LAME tag.
676                        In this case LAME silently overwrote the first bytes of the file and an
677                        optional ID3v2 tag disappeared. Now an error message will be printed and
678                        no data is written in this case.
679                    </li>
680                </ul>
681            </li>
682            <li>
683                Robert Hegemann:
684                <ul>
685                    <li>Fix for Bugtracker item <i>[ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only</i>
686                    <li>Fix for Bugtracker item <i>[ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3)</i><br>
687                        The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out
688                        the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name
689                        extension and because it found some valid looking Layer3 synchronization header.
690                        The fixed LAME version does not assume the file name extension is always correct and treats the files
691                        depending on the first found MPEG sync word. The files in question are now correctly detected as
692                        Layer2 files and transcoding does succeed.
693                    </li>
694                    <li>Fix for Bugtracker item <i>[ 1445175 ] Input being stdin fails in Windows on WAV files</i><br>
695                        The problem here was, seeking on pipes shows some different behaviour depending on C-Library
696                        implementations. The workaround tries to detect it's working on a pipe and doing some
697                        reading instead of seeking in that case.
698                    </li>
699                    <li>Fixing some memory leak in the 'lame_enc.dll'.
700                    </li>
701                    <li>Fix for Bugtracker items <i>[ 1160757, 1160741 ] --little-endian / --big-endian not working</i><br>
702                        These switches where originally intended to be used together with Libsndfile only.
703                    </li>
704                    <li>Fix for Bugtracker item <i>[ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4</i><br>
705                        Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch,
706                        the average bitrate rised upto maximum bitrate.
707                    </li>
708                </ul>
709            </li>
710        </ul>
711        <h3>LAME 3.98 beta 4 &nbsp;June 23 2007</h3>
712        <ul>
713            <li>Dennis Lambe Jr: Added support for total track count (id3v2) in the frontend
714            </li>
715            <li>
716                Nyaochi:
717                <ul>
718                    <li>Ability to set user-defined ID3v2.3 frame</li>
719                    <li>Ability to include albumArt in ID3v2.3 tag</li>
720                </ul>
721            </li>
722            <li>
723                Robert Hegemann:
724                <ul>
725                    <li>Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed.
726                        Some hardware and software players were confused by this garbage data.
727                    </li>
728                    <li><font color="#ff0000">Out of bits strategy for the newer VBR code overhauled</font></li>
729                    <li>LAME API: the ID3 tag functions do not store the pointers passed anymore,
730                        they do make deep copies of strings passed as parameters.
731                    </li>
732                    <li>Changes in LAME frontend switches regarding ID3 tags:
733                        <br><tt>--tg "MyGenre"</tt> will route unknown ID3v1 genres to "Other" for ID3v1 tags
734                        and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known
735                        ID3v1 numbers will be stored as its corresponding text in ID3v2 tags.
736                        <br><tt>--tn "02/02"</tt> will store the track number specified as plain text as-is
737                        for ID3v2 tags.
738                    </li>
739                </ul>
740            </li>
741        </ul>
742        <br>
743        <h3>LAME 3.98 beta 3 &nbsp;May 22 2007</h3>
744        <ul>
745            <li>
746                Robert Hegemann:
747                <ul>
748                    <li>Fixes regarding max number of bits limitation</li>
749                </ul>
750            </li>
751        </ul>
752        <br>
753        <h3>LAME 3.98 beta 2 &nbsp;May 20 2007</h3>
754        <ul>
755            <li>
756                Robert Hegemann:
757                <ul>
758                    <li>Bug tracker item: <i>[ 1693461 ];</i>
759                        Fixed memory leaks in ACM codec
760                    </li>
761                    <li>Fixed encoding of non-standard sampling rates in CBR</li>
762                    <li><font color="#ff0000">Improved VBR strategy when running out of bits</font></li>
763                </ul>
764            </li>
765        </ul>
766        <br>
767        <h3>LAME 3.98 beta 1 &nbsp;May 16 2007</h3>
768        <ul>
769            <li>
770                Alexander Leidinger:
771                <ul>
772                    <li>Add TLEN (ID3v2) support (Submitted by: Linus Walleij).</li>
773                    <li>Add number of total tracks per album (ID3v2) support
774                        (Submitted by: Kyle VanderBeek).
775                    </li>
776                    <li>Some seatbelts for overflowing arrays in the ID3v2
777                        support.
778                    </li>
779                    <li>Update the RPM spec (Submitted by: Kyle VanderBeek).</li>
780                    <li>Fix some mem-leaks in the error case.</li>
781                    <li>Update to newer autotools versions.</li>
782                    <li>Update to use a recent libsndfile (submitted by
783                        libsndfile author).
784                    </li>
785                    <li><font color="#3366ff">Intrinsics support
786                        enabled for gcc</font>
787                    </li>
788                </ul>
789            </li>
790            <li>
791                Robert Hegemann:
792                <ul>
793                    <li><font color="#3366ff">The newer VBR code is now LAME's default
794                        VBR routine</font>
795                    </li>
796                    <li><font color="#ff0000">Fixed: in case of
797                        not enough bits the new vbr code incorrectly used old vbr routine</font>
798                    </li>
799                    <li><font color="#ff0000">Improved ATH
800                        adjustment in low volume cases</font>
801                    </li>
802                    <li><font color="#ff0000">Fixed (PSY model): mapping from convolution bands
803                        to partition bands was broken since we replaced tables by own calculation
804                        several years ago</font>
805                    </li>
806                    <li><font color="#ff0000">Fixed (PSY model): loss of fraction in equal loudness weighting</font></li>
807                    <li><font color="#ff0000">Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef</font></li>
808                    <li><font color="#ff0000">Known problem samples for the new VBR code:
809                        many of them are at an acceptable quality level now;</font>
810                        with a big <b>'Thank You'</b> to Francis Niechcial
811                    </li>
812                    <li><font color="#ff0000">Modified VBR strategy to handle out of bits cases</font></li>
813                    <li>Restricted bitreservoir size for 320 kbps frames to
814                        the size used for sideinfo, because of decoding problems
815                        with FhG decoders installed on almost every Windows system
816                    </li>
817                    <li>LAME aborts on unsupported input files
818                        or unrecognized parameter options passed more often now 
819                    </li>
820                    <li>Bug tracker item: <i>[ 1596306 ] "fatal error during initialization";</i>
821                        an invalid MPEG samplerate was returned by optimum_samplefreq function
822                    </li>
823                    <li>Bug tracker item: <i>[ 1585942 ] lame not --silent when TERM not set;</i>
824                        in case LAME was build with TERMCAP defined and no TERM
825                        environment is defined, now we do not issue an error message and
826                        silently fallback to the default behaviour as if LAME was
827                        compiled without TERMCAP defined.
828                    </li>
829                    <li>Bug tracker item: <i>[ 1711980 ] LAME writes invalid Xing header when ID3 tags exist;</i>
830                        LAME was sometimes writing an invalid Xing/Info header
831                    </li>
832                    <li>Feature request: <i>[ 1588283 ] Flushing output stream in lame.exe;</i>
833                        'flush' option added
834                    </li>
835                    <li><font color="#3366ff">Added FFTSSE and FFT3DNOW assembler code from
836                        Lame4 branch</font>
837                    </li>
838                    <li>Changes in lame frontend switches:
839                        -k removed, add lowpass and highpass switches if you need to change
840                        them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches
841                        normal users shouldn't use them; -X -Z degraded to
842                        DEVELOPER ONLY switches, -X is too tough to communicate to
843                        end users and -Z isn't used actualy
844                    </li>
845                    <li>Fixed some console printing problems</li>
846                    <li>Windows: ACM code now uses LAME library API only, all
847                        references to private include files are removed
848                    </li>
849                    <li>Windows: DirectShow code now uses LAME library API only, all
850                        references to private include files are removed
851                    </li>
852                    <li>Windows: disabled code that resets processor affinity,
853                        because this doesn't belong to LAME, but seems to work around
854                        some problems the parent process has (in most cases EAC)
855                    </li>
856                </ul>
857            </li>
858            <li>
859                John33:
860                <ul>
861                    <li>
862                        Fixed mp2 and mp3 decoding: For mp3 and mp2 decoding,
863                        this now yields the same output as foobar2000 but the 
864                        error checking remains unchanged
865                    </li>
866                </ul>
867            </li>
868            <li>
869                Gabriel Bouvigne:
870                <ul>
871                    <li>VC8 project files</li>
872                    <li>Added support for x64 under VC8</li>
873                    <li>Restricted MPEG 2.5 to 64kbps frames</li>
874                </ul>
875            </li>
876            <li>
877                Takehiro Tominaga:
878                <ul>
879                    <li><font color="#3366ff">SSE version of FFT</font></li>
880                </ul>
881            </li>
882        </ul>
883        <br>
884        <h3>LAME 3.97 &nbsp;September 24 2006</h3>
885        <ul>
886            <li>3.97 beta 3 becomes 3.97 </li>
887        </ul>
888        <br>
889        <h3>LAME 3.97 beta 3 &nbsp;August 19 2006</h3>
890        <ul>
891            <li>
892                Gabriel Bouvigne:
893                <ul>
894                    <li><font color="#ff0000">Workaround against a
895                        short blocks detection issue</font>
896                    </li>
897                </ul>
898            </li>
899        </ul>
900        <br>
901        <h3>LAME 3.97 beta 2 &nbsp;November 26 2005</h3>
902        <ul>
903            <li>
904                Gabriel Bouvigne:
905                <ul>
906                    <li>Fixed an initialization error when input is not using a
907                        standard sampling frequency
908                    </li>
909                    <li>Fixed a possible assertion failure in very low bitrate
910                        encoding
911                    </li>
912                    <li><font color="#ff0000">Slight change
913                        regarding ATH adjustment with V5</font>
914                    </li>
915                    <li><font color="#ff0000">Reinstated bit
916                        reservoir for 320kbps CBR</font>
917                    </li>
918                    <li><font color="#3366ff">ReplayGain analysis
919                        should now be faster when encountering silent parts</font>
920                    </li>
921                </ul>
922            </li>
923            <li>
924                Takehiro Tominaga:
925                <ul>
926                    <li>Fixed a possible link problem of assembly code</li>
927                </ul>
928            </li>
929        </ul>
930        <br>
931        <h3>LAME 3.97 beta 1 &nbsp;September 12 2005</h3>
932        <ul>
933            <li>
934                Takehiro Tominaga:
935                <ul>
936                    <li>Fixed an out of array access in mp3rtp </li>
937                    <li><font color="#ff0000">Fixed a quality
938                        setting in DLL</font>
939                    </li>
940                    <li>Fixed display when using --silent</li>
941                </ul>
942            </li>
943            <li>
944                Vitaly Ivanov:
945                <ul>
946                    <li>Updated DirectShow interface</li>
947                </ul>
948            </li>
949            <li>
950                Robert Hegemann:
951                <ul>
952                    <li><font color="#ff0000">Fixed an out of
953                        array access</font>
954                    </li>
955                    <li><font color="#ff0000">Fixed some small
956                        rounding problem in vbr-new quantization routines</font>
957                    </li>
958                    <li><font color="#ff0000">Fixed a bug in
959                        vbr-new regarding high frequencies (sfb21) when using -Y</font>
960                    </li>
961                    <li><font color="#ff0000">Fixed a few bugs in
962                        vbr-new when using -Y</font>
963                    </li>
964                    <li><font color="#ff0000">Updated scalefactors
965                        allocation scheme in vbr-new</font>
966                    </li>
967                    <li>Fixed mingw32 configure problems</li>
968                    <li>Resolved some compiler warnings</li>
969                    <li>Updated command-line visualisation</li>
970                </ul>
971            </li>
972            <li>
973                Gabriel Bouvigne:
974                <ul>
975                    <li>Changed some FLOAT8 to FLOAT</li>
976                    <li>Added project files for VC7</li>
977                    <li><font color="#ff0000">Reworked -q1 and -q0</font></li>
978                    <li><font color="#ff0000">Updated presets</font></li>
979                    <li><font color="#ff0000">Fixed an error in
980                        ISO quantization on systems not using the IEEE754 hack</font>
981                    </li>
982                    <li><font color="#3366ff">Faster quantization</font></li>
983                    <li><font color="#3366ff">SSE version of
984                        init_xrpow</font>
985                    </li>
986                </ul>
987            </li>
988            <li>
989                Rog&eacute;rio Brito:
990                <ul>
991                    <li>Updated Debian packaging</li>
992                    <li>Documentation work</li>
993                </ul>
994            </li>
995            <li>
996                Chris Miller:
997                <ul>
998                    <li>Support for x64 platform SDK in makefile.msvc</li>
999                </ul>
1000            </li>
1001        </ul>
1002        <br>
1003        <h3>LAME 3.96.1  &nbsp;July 25 2004</h3>
1004        <ul>
1005            <li>
1006                Robert Hegemann:
1007                <ul>
1008                    <li><font color="#ff0000">Fixed a rare bug in
1009                        vbr-new (could lead to crashes or data corruption)</font>
1010                    </li>
1011                </ul>
1012            </li>
1013            <li>
1014                Gabriel Bouvigne:
1015                <ul>
1016                    <li>some fixes in ACM codec</li>
1017                    <li>fixed padding when encoding to 320kbps</li>
1018                    <li><font color="#ff0000">fixed block size
1019                        selection for mid and side channels</font>
1020                    </li>
1021                </ul>
1022            </li>
1023        </ul>
1024        <br>
1025        <h3>LAME 3.96  &nbsp;April 11 2004</h3>
1026        <ul>
1027            <li>
1028                Gabriel Bouvigne:
1029                <ul>
1030                    <li><font color="#ff0000">new quantization
1031                        selection mode (used in ABR/CBR)</font>
1032                    </li>
1033                    <li><font color="#ff0000">set sfscale for
1034                        ABR/CBR up to 160kbps</font>
1035                    </li>
1036                </ul>
1037            </li>
1038        </ul>
1039        <br>
1040        <h3>LAME 3.96 beta 2  &nbsp;March 28 2004</h3>
1041        <ul>
1042            <li>
1043                Takehiro Tominaga:
1044                <ul>
1045                    <li><font color="#3366ff">removed unnecessary
1046                        integer convertion in resampling</font>
1047                    </li>
1048                </ul>
1049            </li>
1050            <li>
1051                Robert Hegemann:
1052                <ul>
1053                    <li><font color="#ff0000">reworked scalefactor
1054                        allocation in vbr-new</font>
1055                    </li>
1056                    <li>fixed a freeformat decoding problem</li>
1057                </ul>
1058            </li>
1059            <li>
1060                Gabriel Bouvigne:
1061                <ul>
1062                    <li><font color="#ff0000">updated minimal
1063                        bitrate for V1 and V2</font>
1064                    </li>
1065                </ul>
1066            </li>
1067            <li>
1068                Aleksander Korzynski:
1069                <ul>
1070                    <li>added ability to disable ReplayGain analysis</li>
1071                </ul>
1072            </li>
1073        </ul>
1074        <br>
1075        <h3>LAME 3.96 beta  &nbsp;March 7 2004</h3>
1076        <ul>
1077            <li>
1078                Takehiro Tominaga:
1079                <ul>
1080                    <li>fixed decoding issue</li>
1081                </ul>
1082            </li>
1083            <li>
1084                Aleksander Korzynski:
1085                <ul>
1086                    <li>changed internal ReplayGain handling</li>
1087                    <li>fixed some issues when ReplayGain is used with
1088                        resampling
1089                    </li>
1090                </ul>
1091            </li>
1092            <li>
1093                Robert Hegemann:
1094                <ul>
1095                    <li>added standard ISO quantization for vbr-new, used at
1096                        lower quality settings
1097                    </li>
1098                    <li><font color="#3366ff">faster count_bits
1099                        for vbr-new</font>
1100                    </li>
1101                    <li><font color="#3366ff">faster
1102                        find_scalefac_ave function for vbr-new</font>
1103                    </li>
1104                    <li><font color="#ff0000">fixed an out of
1105                        array access in psychoacoustic models; this bug could make some psy
1106                        calculations worthless and sometimes let lame crash</font>
1107                    </li>
1108                    <li><font color="#ff0000">fixed an error on
1109                        silent scalefactor bands; this bug resulted in huffman data overrun
1110                        problems while decoding, resulting in audible glitches</font>
1111                    </li>
1112                    <li>fixed a freeformat decoding bug</li>
1113                </ul>
1114            </li>
1115            <li>
1116                Gabriel Bouvigne:
1117                <ul>
1118                    <li><font color="#ff0000">adjusted short block
1119                        thresholds</font>
1120                    </li>
1121                    <li>fixed some array addressing bugs</li>
1122                    <li>made ReplayGain analysis reentrant</li>
1123                </ul>
1124            </li>
1125            <li>David Chandler: fixed a crash in quantize_xrpow </li>
1126            <li>Michal Bacik: fixed a crash when using 8kHz </li>
1127            <li>Goran Markovic: fixed some decoding bugs </li>
1128            <li>John Edwards: fixed a too small buffer in ReplayGain code</li>
1129        </ul>
1130        <br>
1131        <h3>LAME 3.95.1  &nbsp;January 12 2004</h3>
1132        <ul>
1133            <li>
1134                Gabriel Bouvigne:
1135                <ul>
1136                    <li>fixed a crash when using vbr-new</li>
1137                    <li>changed ReplayGain reference level to 89dB</li>
1138                </ul>
1139            </li>
1140        </ul>
1141        <br>
1142        <h3>LAME 3.95  &nbsp;January 11 2004</h3>
1143        <ul>
1144            <li>
1145                Gabriel Bouvigne:
1146                <ul>
1147                    <li><font color="#ff0000">fixed lowpass values
1148                        when using vbr with mono files</font>
1149                    </li>
1150                    <li><font color="#3366ff">faster quantization
1151                        loops</font>
1152                    </li>
1153                    <li><font color="#3366ff">faster count_bits</font></li>
1154                    <li>fixed a buffer requirement error in ACM codec</li>
1155                </ul>
1156            </li>
1157            <li>
1158                Takehiro TOMINAGA:
1159                <ul>
1160                    <li>fixed mpglib and other decoding support code to prevent
1161                        the crash when invalid mp3 input
1162                    </li>
1163                </ul>
1164            </li>
1165            <li>removed Layer I decoding support</li>
1166            <li><font color="#3366ff">use FastLog and IEEE 754
1167                hack on PowerPC too (approx. 10 percent faster)</font>
1168            </li>
1169        </ul>
1170        <br>
1171        <h3>LAME 3.94 beta December 15 2003</h3>
1172        <ul>
1173            <li>
1174                Takehiro Tominaga:
1175                <ul>
1176                    <li><font color="#ff0000">fixed block
1177                        switching of nspsytune</font>
1178                    </li>
1179                    <li><font color="#ff0000">best huffman divide
1180                        in the inner loop.</font> This should improve the quality, but
1181                        PAINFULLY slow. So it is not enabled by default. Use -q0 to use it.
1182                    </li>
1183                    <li>Changed -q option mapping. "-q2" until version 3.93 is
1184                        now "-q3".
1185                    </li>
1186                    <li><font color="#ff0000">saving bits by
1187                        better scalefactor storing</font>
1188                    </li>
1189                    <li>removed Vorbis support</li>
1190                    <li><font color="#ff0000">substep quantization.</font>This
1191                        should help breaking the SFB21 bloating problem
1192                    </li>
1193                    <li><font color="#ff0000">made psychoacoustic
1194                        model aware of ATH adjustements</font>
1195                    </li>
1196                    <li><font color="#ff0000">use ATH value as
1197                        short block masking lower limit</font>
1198                    </li>
1199                    <li><font color="#ff0000">several fixes in
1200                        psychoacoustic model</font>
1201                    </li>
1202                    <li>more robust decoding</li>
1203                </ul>
1204            </li>
1205            <li>Mark Taylor / Gabriel Bouvigne: fixed issues in VBR header</li>
1206            <li>Mark Taylor: workaround against some hardware decoder
1207                defficiencies
1208            </li>
1209            <li>Aleksander Korzynski: ability to compute the "Radio"
1210                ReplayGain and detect clipping on the fly. The ReplayGain value is
1211                stored in the Lame tag.
1212            </li>
1213            <li>
1214                Gabriel Bouvigne:
1215                <ul>
1216                    <li><font color="#ff0000">work on presets</font></li>
1217                    <li><font color="#ff0000">use presets by
1218                        default for cbr/abr</font>
1219                    </li>
1220                    <li><font color="#ff0000">use presets by
1221                        default for vbr</font>
1222                    </li>
1223                    <li><font color="#ff0000">analog silence
1224                        detection in partitionned sfb21</font>
1225                    </li>
1226                    <li><font color="#3366ff">do not compute noise
1227                        in upper 0 part of the spectrum</font>
1228                    </li>
1229                    <li><font color="#3366ff">only compute noise
1230                        in modified scalefactor bands</font>
1231                    </li>
1232                </ul>
1233            </li>
1234            <li>
1235                Guillaume Lessard:
1236                <ul>
1237                    <li>nogap related changes</li>
1238                </ul>
1239            </li>
1240            <li>
1241                Alexander Leidinger:
1242                <ul>
1243                    <li>prevent closing the input fd prematurely if the input
1244                        is a named pipe
1245                    </li>
1246                </ul>
1247            </li>
1248        </ul>
1249        <br>
1250        <h3>LAME 3.93.1  &nbsp;December 1 2002</h3>
1251        <ul>
1252            <li>
1253                Gabriel Bouvigne:
1254                <ul>
1255                    <li>preset medium added to the dll interface</li>
1256                    <li><font color="#ff0000">fix for abr/cbr
1257                        presets</font>
1258                    </li>
1259                    <li><font color="#ff0000">fix -q0 switch</font></li>
1260                </ul>
1261            </li>
1262            <li>Alexander Leidinger: fix link problem on systems where
1263                socket() resides in libsocket
1264            </li>
1265        </ul>
1266        <br>
1267        <h3>LAME 3.93  &nbsp;November 16 2002</h3>
1268        <ul>
1269            <li>
1270                Takehiro Tominaga:
1271                <ul>
1272                    <li><font color="#ff0000">bit allocation for
1273                        pre-echo control improved for single channel encodings</font>
1274                    </li>
1275                    <li><font color="#ff0000">substep noise shaping</font></li>
1276                    <li><font color="#3366ff">optimizations by
1277                        changing data structure</font>
1278                    </li>
1279                    <li><font color="#ff0000">noise shaping model
1280                        2 fix</font>
1281                    </li>
1282                    <li><font color="#3366ff">nspsytune FIR filter
1283                        clean up</font>
1284                    </li>
1285                    <li><font color="#ff0000">fix small psymodel
1286                        bugs(DC current estimation, preecho detection of non-VBR mode, and
1287                        nspsymode initialization)</font>
1288                    </li>
1289                    <li>portability fixes for Tru64 UNIX</li>
1290                </ul>
1291            </li>
1292            <li>Albert Faber: some fixes in the DLL</li>
1293            <li>Simon Blandford: fixes for channel scaling in mono mode</li>
1294            <li><font color="#3366ff">Dominique Duvivier: some
1295                optimizations and a faster log10 function</font>
1296            </li>
1297            <li>
1298                Mark Taylor:
1299                <ul>
1300                    <li>some tag related fixes in the direct show filter and in
1301                        the ACM codec
1302                    </li>
1303                    <li><font color="#3366ff">fixed a mono
1304                        encoding bug found by Justin Schoeman</font>
1305                    </li>
1306                    <li>calc_noise bug fix</li>
1307                    <li>other fixes</li>
1308                </ul>
1309            </li>
1310            <li>
1311                Alexander Leidinger:
1312                <ul>
1313                    <li>update to autoconf 2.53, rewrite some configure tests</li>
1314                    <li>Akos Maroy: determine gcc version even with gcc 3.1</li>
1315                    <li>Andrew Bachmann: compile shared libs on BeOS (and
1316                        perhaps other arches)
1317                    </li>
1318                    <li>ultrasparc switches for gcc 3.1</li>
1319                    <li>fixes for SunOS 4.x</li>
1320                    <li>fixes for 64bit arches</li>
1321                    <li>CFLAGS fix for IRIX</li>
1322                    <li>don't override CFLAGS if exptopt isn't requested</li>
1323                </ul>
1324            </li>
1325            <li>
1326                Robert Hegeman:
1327                <ul>
1328                    <li><font color="#3366ff">some fixes</font></li>
1329                    <li><font color="#ff0000">some fixes for VBR</font></li>
1330                </ul>
1331            </li>
1332            <li>
1333                Gabriel Bouvigne:
1334                <ul>
1335                    <li>--noasm switch. Might help Cyrix/Via users</li>
1336                    <li><font color="#ff0000">presets and
1337                        alt-presets merged</font>
1338                    </li>
1339                </ul>
1340            </li>
1341        </ul>
1342        <br>
1343        <h3>LAME 3.92  &nbsp;April 14 2002</h3>
1344        <ul>
1345            <li><font color="#ff0000">Alexander
1346                Leidinger: add non linear psymodel (compile time option,
1347                disabled by default)</font>, workaround a bug in gcc 3.0.3
1348                (compiler options, based upon suggestions from various people, see
1349                archives and changelog for more)
1350            </li>
1351            <li>Steve Lhomme: ACM wrapper (MS-Windows codec)</li>
1352            <li><font color="#3366ff">Steve Lhomme:&nbsp;
1353                less memory copying on stereo (interleaved) input</font>
1354            </li>
1355            <li><font color="#ff0000">Takehiro Tominaga:
1356                Inter-channel masking, enables with --interch x option</font>
1357            </li>
1358            <li>For buggy versions of gcc compiler (2.96*), back off on
1359                some of the advanced compiler options<br>
1360            </li>
1361        </ul>
1362        <br>
1363        <h3>LAME 3.91  &nbsp;December 29 2001</h3>
1364        <ul>
1365            <li><font color="#ff0000">Darin
1366                Morrison: Bugfix for --alt-preset (for content with low
1367                volume, clean vocals), only important for the "fast standard" preset</font>
1368            </li>
1369            <li>
1370                Alexander Leidinger:
1371                <ul>
1372                    <li>add some missing files to the distribution</li>
1373                    <li>add --alt-preset to the man page</li>
1374                </ul>
1375            </li>
1376        </ul>
1377        <br>
1378        <h3>LAME 3.90  &nbsp;December 21 2001</h3>
1379        <ul>
1380            <li><font color="#ff0000">Many small improvements
1381                and bug fixes not added to history</font>
1382            </li>
1383            <li><font color="#ff0000">John
1384                Dahlstrom: more fine tuning on the auto adjustment of the ATH</font>
1385            </li>
1386            <li><font color="#3366ff">Robert
1387                Hegemann: small speed and quality improvements for the old
1388                VBR code (--vbr-old).</font> 
1389            </li>
1390            <li><font color="#ff0000">Robert
1391                Hegemann: some short block bug fixes</font> 
1392            </li>
1393            <li><font color="#ff0000">Robert
1394                Hegemann: Big improvements to --vbr-mtrh, now encodes much
1395                more frequencies over 16khz</font> 
1396            </li>
1397            <li><font color="#ff0000">Robert
1398                Hegemann: --vbr-new code disabled (outdated and lower
1399                quality) and replaced with --vbr-mtrh (Both --vbr-new and --vbr-mtrh
1400                now default to mtrh)</font> 
1401            </li>
1402            <li>Robert Hegemann: reordering of --longhelp to give
1403                more information, --extrahelp dropped 
1404            </li>
1405            <li>
1406                Darin Morrison: Totally revamped and extremely
1407                high quality unified preset system and other general quality
1408                improvements now available with --alt-presets:
1409                <ul>
1410                    <li>
1411                        <font color="#ff0000">some improvements
1412                        to psychoacoustics (vast improvements over default L.A.M.E. modes) when
1413                        --alt-preset is used including:</font>
1414                        <ul>
1415                            <li><font color="#ff0000">Improved tuning
1416                                of short block usage.</font>
1417                            </li>
1418                            <li><font color="#ff0000">Improved
1419                                quantization selection usage (the -X modes), now adapts between
1420                                appropriate modes on the fly. Also helps on "dropout" problems and with
1421                                pre-echo cases.</font>
1422                            </li>
1423                            <li><font color="#ff0000">Improved joint
1424                                stereo usage. Thresholds are better tuned now and fix some "dropout"
1425                                problems L.A.M.E. suffers from on clips like serioustrouble.</font>
1426                            </li>
1427                            <li><font color="#ff0000">Improved noise
1428                                shaping usage. Now switches between noise shaping modes on the fly
1429                                (toggles -Z on and off when appropriate) which allows lower bitrates
1430                                but without the quality compromise.</font>
1431                            </li>
1432                            <li><font color="#ff0000">Clips vastly
1433                                improved over default L.A.M.E. modes (vbr/cbr/abr, including --r3mix):
1434                                castanets, florida_seq, death2, fatboy, spahm, gbtinc, ravebase, short,
1435                                florida_seq, hihat, bassdrum, 2nd_vent_clip, serioustrouble, bloodline,
1436                                and others. No degraded clips known.</font>
1437                            </li>
1438                            <li>VBR bitrates are now more "stable" with less
1439                                fluctuation -- not dipping too low on some music and not increasing too
1440                                high unnecessarily on other music. "--alt-preset standard" provides
1441                                bitrates roughly within the range of 180-220kbps, often averaging close
1442                                to 192kbps.
1443                            </li>
1444                        </ul>
1445                    </li>
1446                    <li>--alt-presets replace the --dm-presets and "metal"
1447                        preset is removed and replaced with generic abr and cbr presets.
1448                    </li>
1449                    <li>--alt-preset extreme (note the 'e') replaces xtreme to
1450                        help eliminate some confusion
1451                    </li>
1452                    <li>--alt-preset vbr modes now have a fast option which
1453                        offers almost no compromise in speed.
1454                    </li>
1455                    <li>--alt-preset standard (and "fast standard") are now
1456                        much lower in bitrate, matching --r3mix with an overall average, though
1457                        offering higher quality especially on difficult test samples.
1458                    </li>
1459                    <li>--alt-presets are no longer just "presets" as in a
1460                        collection of switches, instead they are now quality "modes" because of
1461                        special code level tunings (those mentioned above).
1462                    </li>
1463                    <li>Use --alt-preset help for more information.</li>
1464                </ul>
1465            </li>
1466            <li>Roel VdB: more tuning on the --r3mix preset </li>
1467            <li>Jon Dee, Roel VdB: INFO tag</li>
1468            <li>Alexander Leidinger, mp3gain@hotmail.com: added
1469                --scale-l and --scale-r to scale stereo channels independantly 
1470            </li>
1471            <li>Takehiro Tominaga: <font color="#ff0000">new
1472                noise shaping mode, offering more "cutting edge" shaping according to
1473                masking, enabled via -q0</font> 
1474            </li>
1475            <li>Mark Taylor: More work on --nogap </li>
1476            <li>Gabriel Bouvigne: Small changes to abr code for
1477                more accurate final bitrate 
1478            </li>
1479            <li>Gabriel Bouvigne, mp3gain@hotmail.com:&nbsp;
1480                Preliminary <a href="http://www.replaygain.org">
1481                ReplayGain</a> analysis code added (not functional yet) 
1482            </li>
1483            <li>Gabriel Bouvigne, Alexander Leidinger:&nbsp;
1484                Documentation updates 
1485            </li>
1486            <li>John Dahlstrom, DSPguru@math.com: floating point
1487                interface function in the Windows DLL
1488            </li>
1489        </ul>
1490        <br>
1491        <h3>LAME 3.89beta &nbsp;July 5 2001</h3>
1492        <ul>
1493            <li>John Stewart: long filename support for Win9x/NT.</li>
1494            <li>Takehiro Tominaga: LAME can calculate the CRC of
1495                VBR header, so now "lame -pv" works fine.
1496            </li>
1497            <li><font color="#ff0000">Robert
1498                Hegemann: Improvements of the new VBR code (--vbr-mtrh).</font>
1499            </li>
1500            <li><font color="#3366ff">Robert Hegemann: New VBR
1501                code (--vbr-mtrh) is now defaulted to get more feedback. The VBR speed
1502                is now on par with CBR. We will use the old VBR code in the release.</font>
1503            </li>
1504            <li><font color="#ff0000">Gabriel Bouvigne: Change
1505                of the maximum frame size limit. LAME should now be more friendly with
1506                hardware players.</font>
1507            </li>
1508            <li>Gabriel Bouvigne: Size of VBR is now more balanced
1509                according to the -V value.
1510            </li>
1511            <li>Alexander Leidinger: Finished the implementation of the
1512                set/get functions.
1513            </li>
1514            <li>John Dahlstrom: LAME now handles 24bits input</li>
1515            <li>Mark Taylor: bugs in lame --decode causing truncation of
1516                mp3 file fixed
1517            </li>
1518            <li>Mark Taylor: preliminary --nogap support</li>
1519            <li>"Final" API completed: shared library safe! &nbsp;This
1520                API is frozen and should be backwords compatiable with future versions
1521                of libmp3lame.so, but we will continue to add new functionality.
1522                &nbsp;<br>
1523            </li>
1524        </ul>
1525        <h3> LAME 3.88beta&nbsp; March 25 2001</h3>
1526        <ul>
1527            <li><font color="#ff0000">A lot of work that was
1528                never added to the History!</font>
1529            </li>
1530            <li><font color="#ff0000">Frank Klemm and
1531                Gabriel Bouvigne: New ATH formula. Big improvement
1532                for high bitrate encodings.</font>
1533            </li>
1534            <li><font color="#ff0000">Takehiro Tominaga:
1535                Temporal masking</font>
1536            </li>
1537            <li><font color="#ff0000">Gabriel Bouvigne/Mark
1538                Taylor: auto adjustment of ATH</font>
1539            </li>
1540            <li><font color="#ff0000">Robert
1541                Hegemann: Better outer_loop stopping criterion.&nbsp;
1542                Enabled with -q2 or better.</font>
1543            </li>
1544            <li><font color="#ff0000">Robert Hegemann/Naoki
1545                Shibata: slow/carefull noise shaping.&nbsp;
1546                -q3..9: amplify all distorted bands. -q2: amplify
1547                distorted bands within 50%. -q1-0: amplify only
1548                most distorted band at each iteration.</font>
1549            </li>
1550            <li><font color="#ff0000">Takehiro Tominaga:
1551                Interframe, shortblock temporal masking.</font>
1552            </li>
1553            <li>Takehiro Tominaga: LAME restructured into a
1554                shared library and front end application. Slight changes to
1555                the API. More changes are coming to turn LAME into a true shared
1556                library (right now you have to recompile if you upgrade the library :-(
1557            </li>
1558            <li>
1559                <font color="#000000">Naoki Shibata:</font>
1560                <ul>
1561                    <li><font color="#ff0000">improvements to
1562                        psychoacoustics</font><font color="#000000">
1563                        (--nspsytune)</font>
1564                    <li><font color="#ff0000">BUG in long block
1565                        pre echo control fixed </font><font color="#000000">
1566                        (some out of range array access in M/S psychoacoustics)</font>
1567                    </li>
1568                </ul>
1569            </li>
1570            <li><font color="#000000">Ralf
1571                Kempkens:&nbsp;&nbsp; Visual Basic Script for lame,
1572                suggested to put it on your Windows Desktop and you can drag'n'drop
1573                Waves to encode on it.</font>
1574            </li>
1575            <li><font color="#000000">Alexander
1576                Stumpf:&nbsp;&nbsp; improved lame.bat for 4Dos users</font>
1577            </li>
1578            <li><font color="#000000">Mark Taylor: Several
1579                bugs fixed in the resampling code.</font>
1580            </li>
1581            <li><font color="#000000">Frank Klemm, Robert
1582                Hegemann:&nbsp;&nbsp; added assembler code for CPU
1583                feature detection on runtime (MMX, 3DNow, SIMD)</font>
1584            </li>
1585            <li><font color="#3366ff">Takehiro Tominaga:
1586                3DNow FFT code.</font>
1587            </li>
1588            <li><font color="#000000">Florian Bome,
1589                Alexander Leidinger:&nbsp;&nbsp; more work on
1590                configure stuff</font>
1591            </li>
1592            <li><font color="#000000">Alexander
1593                Leidinger:&nbsp; automake/libtool generated Makefiles and
1594                TONS of other work.</font>
1595            </li>
1596            <li><font color="#000000">Alexander
1597                Leidinger:&nbsp; Much work towards shared library style
1598                API.</font>
1599            </li>
1600            <li><font color="#000000">Anonymous: New more
1601                efficient RTP code.</font>
1602            </li>
1603            <li><font color="#ff0000">Mark Taylor:
1604                psycho-acoustic data now computed for all scalefactor bands (up to 24
1605                kHz)</font>
1606            </li>
1607            <li><font color="#ff0000">Mark Taylor, Takehiro
1608                Tominaga: All ISO table data replaced by formulas - should improve
1609                MPEG2.5 results for which we never had correct table data.</font>
1610            </li>
1611        </ul>
1612        <h3> LAME 3.87alpha &nbsp;September 25 2000</h3>
1613        <ul>
1614            <li>Mark Taylor: Bug fixed in LAME/mpglib error
1615                recovery when encountering a corrupt MP3 frame during
1616                *decoding*.
1617            </li>
1618            <li>Albert Faber: added LayerI+II decoding support</li>
1619            <li><font color="#000000">Frank Klemm:&nbsp;
1620                added improved CRC calculation</font>
1621            </li>
1622            <li><font color="#000000">Frank Klemm:
1623                substantial code cleanup/improvements</font>
1624            </li>
1625            <li>
1626                Robert Hegemann: Bug fixes
1627                <ul>
1628                    <li><font color="#ff0000">in huffman_init</font>,
1629                        could lead to segmentation faults (only in rare cases, most likely at
1630                        lower sample rates)
1631                    </li>
1632                    <li><font color="#ff0000">M/S switching at
1633                        lower sample rates</font> (the fact there is no 2nd granule was
1634                        ignored)
1635                    </li>
1636                </ul>
1637            </li>
1638            <li><font color="#3366ff">Robert
1639                Hegemann: speed up in VBR</font>
1640            </li>
1641            <li>Jarmo Laakkonen: Amiga/GCC settings for
1642                Makefile.unix.
1643            </li>
1644            <li>Magnus Holmgren: README and Makefile for (free)
1645                Borland C++ compiler. Will also compile lame_enc.dll, but
1646                this is untested.
1647            </li>
1648            <li>Florian Bome:&nbsp; LAME finally has
1649                a ./configure script!!
1650            </li>
1651        </ul>
1652        <h3> LAME 3.86beta &nbsp;August 6 2000</h3>
1653        <ul>
1654            <li>Christopher Wise: A makefile for DJGPP, the DOS
1655                version of gcc. Now most windows users should be able to
1656                compile LAME with minimal effort.
1657            </li>
1658            <li><font color="#ff0000">Robert
1659                Hegemann: old VBR:&nbsp; fixed some bugs and
1660                Takehiro's scalefac_scale feature (not yet on by&nbsp;
1661                default.) older LAME versions did not allow to spent more
1662                than 2500 bits of 4095 possible bits to a granule per channel, now
1663                fixed.</font>
1664            </li>
1665            <li>Robert Hegemann: new VBR:&nbsp;&nbsp;
1666                analog silence treatment like in old VBR
1667            </li>
1668            <li>William Welch: Improved options for Linux/Alpha
1669                gcc and ccc compilers in Makefile.
1670            </li>
1671            <li>Mathew Hendry: setting appropriate CRC bit for
1672                additional Xing-VBR tagging frame
1673            </li>
1674            <li>Don Melton: added ID3 version 2 TAG support</li>
1675            <li><font color="#000000">John Dahlstrom: fixed
1676                bug allowing timing information (for status in command line encoder) to
1677                overflow.</font>
1678            </li>
1679            <li><font color="#000000">Tamito KAJIYAMA, Fixed
1680                several bugs in the LAME/Vorbis interface.</font>
1681            </li>
1682            <li><font color="#000000">Mark Taylor:&nbsp;
1683                lame --decode will recognize <a href="http://albumid.cjb.net">Album
1684                ID tags</a></font>
1685            </li>
1686            <li><font color="#ff0000">Naoki
1687                Shibata: Additive masking and other improvements to psycho
1688                acoustics. (not yet on by default)</font>
1689            </li>
1690        </ul>
1691        <h3> LAME 3.85beta&nbsp; July 3 2000</h3>
1692        <ul>
1693            <li><font color="#ff0000">Takehiro
1694                Tominaga: mid/side stereo demasking thresholds updated.</font>
1695            </li>
1696            <li>Takehiro Tominaga: New short block MDCT coefficient data
1697                structure. Should allow for future speed improvements.
1698            </li>
1699            <li>Robert Hegemann: fixed bug in old VBR routine,
1700                the --noath mode messed up the VBR routine resulting in very large files
1701            </li>
1702            <li>Robert Hegemann: found bugs in some sections when using 32
1703                bit floating point. Default is now back to 64bit floating
1704                point.
1705            </li>
1706            <li><font color="#ff0000">Takehiro
1707                Tominaga: Modified PE formula to use ATH.</font>
1708            </li>
1709            <li><font color="#000000">S.T.L.:&nbsp;
1710                README.DJGPP - instructions for compiling LAME with DJGPP, the dos
1711                version of gcc.</font>
1712            </li>
1713        </ul>
1714        <h3> LAME 3.84beta &nbsp;June 30 2000</h3>
1715        <ul>
1716            <li>Mark Weinstein: .wav file output (with --decode
1717                option) was writing the wrong filesize in the .wav file. Now
1718                fixed.
1719            </li>
1720            <li>Mark Taylor: (optional) Vorbis support, both
1721                encoding and decoding. LAME can now produce .ogg files, or
1722                even re-encode your entire .ogg collection into
1723                mp3.&nbsp; (Just kidding: it is always a bad idea to
1724                convert from one lossy format to another)
1725            </li>
1726            <li>?: Bug fixed causing VBR to crash under
1727                windows.&nbsp; (pretab[] array overflow)
1728            </li>
1729            <li>Sergey Sapelin: Another bug found in the mpg123 MPEG2
1730                tables. Now fixed for the mpg123 based decoder in LAME.
1731            </li>
1732            <li>Marco Remondini: VBR histogram works in
1733                win32. compile with -DBRHIST -DNOTERMCAP
1734            </li>
1735            <li><font color="#ff0000">Takehiro
1736                Tominaga: LAME CBR will now use scalefac_scale to expand the
1737                dynamic range of the scalefactors.</font>
1738            </li>
1739            <li><font color="#000000">Iwasa Kazmi:&nbsp;
1740                Library improvements: exit()'s, printf, fprintf's are being
1741                replaced by interceptable macros.</font>
1742            </li>
1743        </ul>
1744        <h3> LAME 3.83beta &nbsp;May 19 2000</h3>
1745        <ul>
1746            <li><font color="#ff0000">Mark Taylor:&nbsp;
1747                Bug in buffering routines: in some cases, could cause
1748                MDCT to read past end of buffer. Rare in MPEG2,
1749                even more rare for MPEG1, but potentially serious!</font>
1750            </li>
1751            <li>Mark Taylor: MDCT/polyphase filterbank was not
1752                being "primed" properly. Does not effect output unless you
1753                set the encoder delay lower than the default of 576 samples.
1754            </li>
1755            <li><font color="#ff0000">Mark Taylor:&nbsp;
1756                "vdbj" and "Caster" found several VBR bugs (now
1757                fixed):&nbsp; 1. Analog silence detection only
1758                checked frequencies up to 16 kHz. 2. VBR mode could
1759                still somehow avoid -F mode. 3. VBR mode would
1760                ignore noise above 16 kHz (scalefactor band 22), Now calc_noise1 will
1761                compute the noise in this band when in VBR mode. Not
1762                calculated in CBR mode since CBR algorithm has no way of
1763                using this information.</font>
1764            </li>
1765            <li>Mark Taylor: scalefactor band 22 info
1766                (masking(=ATH), noise and energy) now displayed in frame
1767                analyzer.
1768            </li>
1769            <li><font color="#ff0000">VBR code ATH tuning
1770                was disabled by accident in 3.81, now fixed.</font>
1771            </li>
1772            <li><font color="#000000">Mark Taylor:&nbsp;
1773                lame --decode will produce .wav files. (oops - size is off by
1774                a factor of 4)</font>
1775            </li>
1776        </ul>
1777        <h3> LAME 3.82beta &nbsp;May 11 2000</h3>
1778        <ul>
1779            <li>Robert Hegemann: Fixed bug in high bitrate joint
1780                stereo encodings.
1781            </li>
1782            <li><font color="#3366ff">Naoki
1783                Shibata: new long block MDCT routine</font>
1784            </li>
1785        </ul>
1786        <h3> LAME 3.81beta &nbsp;May 8 2000</h3>
1787        <ul>
1788            <li>all ISO code removed!</li>
1789            <li><font color="#3366ff">Takehiro Tominaga and
1790                Naoki Shibata: new window subband routines.</font>
1791            </li>
1792            <li><font color="#000000">Naoki
1793                Shibata: Bug fix in mpglib (decoding) lib: in some
1794                cases, MDCT coefficients from previous granule was incorrectly used for
1795                the next granule.</font>
1796            </li>
1797            <li><font color="#ff0000">ISO 7680 bit buffer
1798                limitation removed. It can be reactivated with
1799                "--strictly-enforce-ISO" Please report any trouble with high
1800                bitrates.</font>
1801            </li>
1802        </ul>
1803        <h3> LAME 3.80beta &nbsp;May 6 2000</h3>
1804        <ul>
1805            <li><font color="#ff0000">Takehiro
1806                Tominaga: more efficient and faster huffman encoding!</font>
1807            </li>
1808            <li><font color="#ff0000">Takehiro Tominaga and
1809                Mark Taylor: much improved short block compression!</font>
1810            </li>
1811            <li><font color="#000000">Tomasz Motylewski and
1812                Mark Taylor: MPEG2.5 now supported!</font>
1813            </li>
1814            <li><font color="#000000">Mark Taylor:
1815                incorporated Takehiro's bitstream.c! bitstream.c used by
1816                default, but old ISO bitstream code can also be used.</font>
1817            </li>
1818            <li><font color="#ff0000">Scott Manley
1819                and Mark Taylor: good resampling routine finaly in
1820                LAME. uses a 19 point FIR filter with Blackman
1821                window. Very slow for non integer resampling ratios.</font>
1822            </li>
1823            <li><font color="#000000">Iwasa Kazmi:&nbsp;
1824                fixed SIGBUS error: VBR and id3 tags were using data after it
1825                was free()'d.</font>
1826            </li>
1827            <li><font color="#ff0000">Robert
1828                Hegemann: Improved VBR tuning. #define
1829                RH_QUALITY_CONTROL and #RH_SIDE_VBR now the defaults.</font>
1830            </li>
1831            <li><font color="#000000">Robert
1832                Hegemann:&nbsp; LAME version string now added to
1833                ancillary data.</font>
1834            </li>
1835            <li>Kimmo Mustonen: VBR histogram support for Amiga.</li>
1836            <li>Casper Gripenberg: VBR stats (but not histogram)
1837                for DOS verson.
1838            </li>
1839            <li>Robert Hegemann: rare VBR overflow bug fixed.</li>
1840            <li>Zack: -F option strictly enforces the VBR min
1841                bitrate. Without -F, LAME will ignore the minimum bitrate
1842                when encoding analog silence.
1843            </li>
1844            <li>Shawn Riley: User can now specify a compression
1845                ratio (--comp &lt;arg&gt;) instead of a bit rate.&nbsp;
1846                Default settings based on a compression ratio of 11.0
1847            </li>
1848            <li>Mark Taylor: free format bitstreams can be
1849                created with --freeformat, and specify any integer bitrate from 8 to
1850                320kbs with -b.
1851            </li>
1852            <li>Mark Taylor: lame be used as a decoder (output raw pcm
1853                only): lame --decode input.mp3 output.pcm
1854            </li>
1855        </ul>
1856        <h3> LAME 3.70&nbsp; April 6 2000</h3>
1857        <ul>
1858            <li>"LAME 3.69beta" becomes LAME 3.70 "stable"</li>
1859        </ul>
1860        <h3> LAME 3.69beta&nbsp; April 6 2000</h3>
1861        <ul>
1862            <li>"spahm": default mode selection bug
1863                fixed. In some cases, lame was defaulting to regular stereo
1864                instead of jstereo when the user did not specify a mode.
1865            </li>
1866        </ul>
1867        <h3> LAME 3.68beta &nbsp;April 4 2000</h3>
1868        <ul>
1869            <li>Mark Taylor: mono encoding bug in DLL fixed.</li>
1870            <li>Ingo Saitz: bug in --cwlimit argument parsing fixed.</li>
1871            <li><font color="#ff0000">Scott Manly: bug in
1872                4-point resample code fixed.</font>
1873            </li>
1874        </ul>
1875        <h3> LAME 3.67beta &nbsp;March 27 2000</h3>
1876        <ul>
1877            <li><font color="#ff0000">Robert
1878                Hegemann: jstereo now enabled for MPEG2 encodings</font>
1879            </li>
1880            <li>Mark Taylor: old M/S stereo mode which used L/R maskings
1881                has been removed.
1882            </li>
1883            <li>Mark Taylor: Xing MPEG2 VBR headers now working.</li>
1884            <li><font color="#ff0000">Mark Taylor:&nbsp;
1885                When quantized coefficients are all 0 in a band, set scalefactors to 0
1886                also to save a few bits.</font>
1887            </li>
1888            <li><font color="#000000">Ingo Saitz:&nbsp;
1889                Problems with framesize calculation when using -f fast-math option
1890                fixed.</font>
1891            </li>
1892        </ul>
1893        <h3> LAME 3.66beta &nbsp;March 21 2000</h3>
1894        <ul>
1895            <li>Bug fixes in BladeEnc DLL, possible click in last mp3
1896                frame, VBR historgram display, byteswapping option, ASM quantize
1897                routines work for both float and double.
1898            </li>
1899        </ul>
1900        <h3> LAME 3.65beta&nbsp; March 17 2000</h3>
1901        <ul>
1902            <li>Enabled ASM version of quantize_xrpow() - accidently
1903                disabled in lame3.64.
1904            </li>
1905        </ul>
1906        <h3> LAME 3.64beta &nbsp;March 16 2000</h3>
1907        <ul>
1908            <li>Don Melton: id3v1.1 tags &amp; id3 bugfixes</li>
1909            <li><font color="#ff0000">Gabriel
1910                Bouvigne: L/R matching block type fix</font>
1911            </li>
1912            <li><font color="#ff0000">Bug fixed which was
1913                allowing quantized values to exceed the maximum when not using -h</font>
1914            </li>
1915            <li><font color="#3366ff">Mark Taylor: Fitlers
1916                based on polyphase filterbank. should be slightly better
1917                since the responce is independent of the blocktype, and they are
1918                slightly faster.</font>
1919            </li>
1920            <li>Mark Taylor: API: the API changed slightly - and
1921                this should be the final version. There is a new routine:
1922                lame_encode_buffer() which takes an arbritray sized input buffer,
1923                resamples &amp; filters if necessary, encodes, and returns the
1924                mp3buffer. There are also several new #defines, so it is
1925                possible to compile a simple encoding library with no decoding or file
1926                I/O or command line parsing. see the file API for details.
1927            </li>
1928            <li>Mark Taylor: MSVC stuff: lame.exe (with and
1929                without the frame analyzer) and the CDex lame_enc.dll
1930                should compile under MSVC. The MSVC5 project files may need
1931                some tweaking. In particular,
1932                you need to make sure LAMEPARSE, LAMESNDFILE and HAVEMPGLIB
1933                are defined. (and HAVEGTK for the GTK stuff).
1934            </li>
1935        </ul>
1936        <h3>LAME 3.63beta &nbsp;February 20 2000</h3>
1937        <ul>
1938            <li>Robert Hegemann: FPE with -h fixed?</li>
1939            <li>Mathey Hendry: FPE error catching for Cygwin,
1940                FPE fix for vbr mode and output to /dev/null
1941            </li>
1942            <li>Jeremy Hall: Fixed problems with input files
1943                where the number of samples is not known.
1944            </li>
1945            <li><font color="#3366ff">Mathew
1946                Hendry: ASM quantize_xrpow() for GNU i386</font>
1947            </li>
1948            <li><font color="#3366ff">Wilfried
1949                Behne quantize_xrpow ()for PowerPC and non-ASM</font>
1950            </li>
1951            <li><font color="#3366ff">Takehiro
1952                Tominaga: GOGO FFTs (not yet used?)</font>
1953            </li>
1954        </ul>
1955        <h3>LAME 3.62beta&nbsp; February 9 2000</h3>
1956        <ul>
1957            <li><font color="#000000">Iwasa Kazmi:&nbsp;
1958                frame analyzer short block display of single subblocks (press
1959                1,2 or 3)</font>
1960            </li>
1961            <li><font color="#000000">Ingo Saitz:&nbsp;
1962                --help option added, with output to stdout</font>
1963            </li>
1964            <li><font color="#ff0000">Alfred Weyers: short
1965                block AAC spreading function bug fixed</font>
1966            </li>
1967            <li><font color="#3366ff">Takehiro
1968                Tominaga: new scalefac data structure - improves performance!</font>
1969            </li>
1970            <li><font color="#ff0000">Lionel
1971                Bonnet: Bug fixed in MPEG2 scalefactor routine: scalefactors
1972                were being severly limited.</font>
1973            </li>
1974            <li><font color="#3366ff">Takehiro
1975                Tominaga: faster FFT routines from. These routines
1976                are also compatible with the GOGO routines, in case someone is
1977                interested in porting them back to LAME.</font>
1978            </li>
1979            <li><font color="#3366ff">Sigbj&oslash;rn
1980                Skj&aelig;ret, Takehiro Tominaga: faster pow() code.</font>
1981            </li>
1982            <li><font color="#ff0000">Joachim
1983                Kuebart: Found some unitialized variables that were effecting
1984                quality for encodings which did not use the -h option (now fixed).</font>
1985            </li>
1986            <li>Mark Taylor: More modularization work.&nbsp;&nbsp;
1987                It is now possible to use LAME as a library where you can set the
1988                encoding parameters directly and do your own file
1989                i/o.&nbsp; The calling program is now it's own mp3
1990                output. For an example of the LAME API, see main.c, or
1991                mp3rtp.c or mp3x.c. These can all be compiled as stand alone
1992                programs which link with libmp3lame.a.
1993            </li>
1994            <li>Felix vos Leitner: mp3rtp fixes.&nbsp;
1995                mp3rtp is a standalone program which will encode and stream with RTP.
1996            </li>
1997            <li>Robert Hegemann: Information written to stderr
1998                displaying exactly which type of lowpass filter (if any) is being used.
1999            </li>
2000            <li>Iwasa Kazmi: mpglib (the mpg123 decoder) scsfi
2001                decoding fixes.
2002            </li>
2003            <li>Takehiro Tominaga: More mpglib scsfi decoding
2004                fixes.
2005            </li>
2006        </ul>
2007        <h3>LAME 3.61beta&nbsp; January 14 2000</h3>
2008        <ul>
2009            <li><font color="#ff0000">Mark Taylor: Fixed bug
2010                with lowpass filters when using VBR with a 64kbs or lower min bitrate
2011                setting.</font>
2012            </li>
2013            <li><font color="#ff0000">Takehiro
2014                Tominaga: more efficient huffman encoding splitting.</font>
2015            </li>
2016        </ul>
2017        <h3> LAME 3.60beta&nbsp; January 9 2000</h3>
2018        <ul>
2019            <li>Mark Taylor: Distribution now comes with self
2020                test. Needs work to be automated, see 'make test' in Makefile.
2021            </li>
2022            <li><font color="#ff0000">Mark Taylor: AAC
2023                spreading function now the default</font>
2024            </li>
2025            <li>Gabriel Bouvigne: updated HTML docs</li>
2026            <li>Felix von Leitner: compute correct file length from Xing
2027                header (if present) when input file is a mp3 file
2028            </li>
2029            <li>Felix von Leitner: mp3rtp (standalone) program now
2030                included. Not yet tested. mp3rtp
2031                ip:port:ttl &lt;infile&gt;&nbsp;&nbsp;
2032                /dev/null will stream directly to ip:port using RTP.
2033            </li>
2034        </ul>
2035        <h3>LAME 3.59beta &nbsp;January 4 2000</h3>
2036        <ul>
2037            <li>Takehiro Tominaga: --noath option.&nbsp;
2038                Disables ATH maskings.
2039            </li>
2040            <li>Gabriel Bouvigne: updated HTML docs.</li>
2041            <li>Iwasa Kazmi: makefile fixes</li>
2042            <li>Mark Taylor: Fixed bug where first frame of data
2043                was always overwritten with 0's. Thanks to 'gol'
2044            </li>
2045            <li><font color="#ff0000">Mark Taylor:&nbsp;
2046                bug fixes in mid/side masking ratios (thanks to Menno Bakker)</font>
2047            </li>
2048            <li>Mark Taylor: replaced norm_l, norm_s table data
2049                with formulas.
2050            </li>
2051        </ul>
2052        <h3>LAME 3.58beta &nbsp;December 13 1999</h3>
2053        <ul>
2054            <li><font color="#ff0000">Segher
2055                Boessenkool: More accurate quantization procedure!&nbsp;
2056                Enabled with -h.</font>
2057            </li>
2058            <li><font color="#3366ff">Mathew Hendry, Acy
2059                Stapp and Takehiro Tominaga: ASM optimizations for quantize_xrpow and
2060                quantize_xrpow_ISO.</font>
2061            </li>
2062            <li>Chuck Zenkus: "encoder inside" logo on web page</li>
2063            <li>Mark Taylor:&nbsp; a couple people have
2064                asked for this.&nbsp; Allow LAME to overide
2065                VBR_min_bitrate if analog_silence detected.&nbsp;&nbsp;
2066                Analog_silence defined a la Robert:&nbsp;&nbsp;
2067                energy &lt; ATH.
2068            </li>
2069            <li>An Van Lam: Valid bitrates were being printed for layer 2,
2070                not layer 3!
2071            </li>
2072            <li>Ethan Yeo: Makefile.MSVC updated</li>
2073            <li>Mark Stephens: updated all MSVC project files</li>
2074            <li>Robert Hegemann: lowpass and highpass filters
2075                can be enabled with --lowpass, --highpass
2076            </li>
2077            <li><font color="#ff0000">Mark Taylor:&nbsp;
2078                MS switching is now smoother: ms_ratio average over 4 granules</font>
2079            </li>
2080            <li><font color="#ff0000">Takehiro
2081                Tominaga: Scalefactor pre-emphasis fixed (and now turned back
2082                on)</font>
2083            </li>
2084            <li><font color="#ff0000">Takehiro
2085                Tominaga: Bug in M/S maskings: switch to turn on
2086                stereo demasking code was buggy.</font>
2087            </li>
2088        </ul>
2089        <h3>LAME 3.57beta &nbsp;November 22 1999</h3>
2090        <ul>
2091            <li>Sigbj&oslash;rn Skj&aelig;ret, patch to allow
2092                encoding from 8bit input files when using LIBSNDFILE
2093            </li>
2094            <li>Mark Taylor: Automatic downsampling to nearest valid
2095                samplerate.
2096            </li>
2097            <li>Mark Taylor: Scalefactor bands demarked on MDCT plot in
2098                frameanalyzer
2099            </li>
2100            <li>Mark Taylor: Scalefactor preemphasis disabled for
2101                now.&nbsp; The algorithm was often doing more harm than
2102                good.
2103            </li>
2104        </ul>
2105        <h3>LAME 3.56beta &nbsp;November 19 1999</h3>
2106        <ul>
2107            <li>Kimmo Mustonen: portabilty code cleanup.</li>
2108            <li>Vladimir Marek: id3 genre patch.</li>
2109            <li>Conrad Sanderson: new applypatch script.</li>
2110            <li>Mark Taylor: Initial window type now "STOP_TYPE" to reduce
2111                initial attenuation. This is needed because the new encoder
2112                delay is so short. With a NORM_TYPE, the first 240 samples
2113                would be attenuated.
2114            </li>
2115            <li>Mark Taylor: Padding at end of file now adjusted
2116                (hopefully!) to produce as little padding as possible while still
2117                guarantee all input samples are encoded.
2118            </li>
2119            <li><font color="#ff0000">Takehiro
2120                Tominaga: Reduced shortblock extra bit allocation formulas by
2121                10% since new huffman coding is at least 10% more efficient.</font>
2122            </li>
2123        </ul>
2124        <h3>LAME 3.55beta &nbsp;November 11 1999</h3>
2125        <ul>
2126            <li>Albert Faber: updated BladeEnc.dll</li>
2127            <li>
2128                Mark Taylor: Simple lowpass filter added to linear
2129                downsampling routine.
2130            </li>
2131            <li>Nils Faerber: updated man page.</li>
2132            <li>
2133                Mark Taylor: All floating point variables are delcared
2134                FLOAT or FLOAT8. Change the definition of FLOAT8 in
2135                machine.h to run at 32bit preceision.
2136            </li>
2137            <li>
2138                Mark Taylor: Bug (introduced in 3.54beta) in
2139                stereo-&gt;mono downsampling fixed.
2140            </li>
2141        </ul>
2142        <h3>LAME 3.54beta &nbsp;November 8 1999</h3>
2143        <ul>
2144            <li>
2145                Mark Taylor: Encoder delay is now 48 samples. Can be adjusted to 
2146                1160 to sync with FhG (see ENCDELAY in encoder.h) This is kind 
2147                of amazing, since if Takehiro put his MDCT/filterbank routine in 
2148                a decoder, we could have a total delay of only 96 samples.
2149            </li>
2150            <li>
2151                <font color="#ff0000">Mark Taylor: More inconstancies found and 
2152                fixed in MPEG2 tables.</font>
2153            </li>
2154            <li>
2155                Mark Taylor: Resampling from an MP3 input file now works. But we 
2156                still dont have a lowpass filter so dont expect good results.
2157            </li>
2158        </ul>
2159        <h3>LAME 3.53beta &nbsp;November 8 1999</h3>
2160        <ul>
2161            <li>
2162                <font color="#3366ff">Takehiro Tominaga: Fixed MPEG2 problem in 
2163                new MDCT routines. Takehiro's combined filterbank/MDCT routine is 
2164                now the default. Removes all buffering from psymodel.c and the
2165                filterbanks/MDCT routines.</font>
2166            </li>
2167        </ul>
2168        <h3>LAME 3.52beta &nbsp;November 8 1999</h3>
2169        <ul>
2170            <li>
2171                By permission of copyright holders of all GPL code in
2172                LAME, all GPL code is now released under a modified version
2173                of the LGPL (see the README file)
2174            </li>
2175            <li>
2176                By popular demand, all C++ comments changed to C style
2177                comments
2178            </li>
2179            <li>
2180                Mark Taylor: Linear resampling now works. Use
2181                --resample to set an output samplerate different from the input
2182                samplerate. (doesn't seem to work with mp3 input files, and
2183                there is no lowpass filter, so dont expect good results just yet)
2184            </li>
2185            <li>
2186                <font color="#3366ff">Takehiro Tominaga: Faster Huffman encoding 
2187                routines</font>
2188            </li>
2189        </ul>
2190        <font color="#3366ff">The following changes are disabled
2191        because of MPEG2 problems. But to try them, set MDCTDELAY=48
2192        in encoder.h, instead of MDCTDELAY=528.:</font>
2193        <ul>
2194            <li>
2195                <font color="#3366ff">Takehiro Tominaga: New MDCT routines with 
2196                shorter delay (48 samples instead of 528) and even faster than 
2197                the old routines.</font>
2198            </li>
2199            <li>
2200                <font color="#3366ff">Takehiro Tominaga: Removed extra buffering 
2201                in psymodel.c</font>
2202            </li>
2203        </ul>
2204        <h3>LAME 3.51 &nbsp;November 7 1999</h3>
2205        <ul>
2206            <li>
2207                Takehiro Tominaga: Bug in quantize.c absolute threshold of
2208                hearing calculation for non-44.1 kHz input files.
2209            </li>
2210        </ul>
2211        <h3>LAME 3.50 &nbsp;November 1 1999</h3>
2212        <ul>
2213            <li>LAME 3.37beta becomes official LAME 3.50 release</li>
2214        </ul>
2215        <h3>LAME 3.37beta &nbsp;November 1 1999</h3>
2216        <ul>
2217            <li>
2218                <font color="#ff0000">Lionel Bonnet: Found severe bug in MPEG2 
2219                Short block SNR.</font>
2220            </li>
2221            <li>Sergey Sapelin: VBR Toc improvement.</li>
2222            <li>Sergey Dubov: fskip() routine</li>
2223            <li>
2224                Conrad Sanderson: replacement for filterbank.c. Not much faster 
2225                but amazingly simpler.
2226            </li>
2227        </ul>
2228        <h3>LAME 3.36beta &nbsp;October 25 1999</h3>
2229        <ul>
2230            <li>Albert Faber: more MSVC and BladeDLL updates</li>
2231            <li>Kimmo Mustonen: Much code cleanup and Amiga updates</li>
2232            <li>Anton Oleynikov: Borland C updates</li>
2233            <li>
2234                Mark Taylor: More stdin fixes: For some reason, forward 
2235                fseek()'s would fail when used on pipes even though it is okay
2236                with redirection from "&lt;". So I changed all the forward
2237                fseek()'s to use fread(). This should improve stdin support for 
2238                wav/aiff files. If you know the input file is raw pcm, you can 
2239                still use the '-r' option to avoid *all* seeking of any kind.
2240            </li>
2241        </ul>
2242        <h3>LAME 3.35beta &nbsp;October 21 1999</h3>
2243        <ul>
2244            <li>
2245                <font color="#ff0000">Leonid Kulakov: Serious bug in MPEG2 
2246                scalefactor band tables fixed.</font>
2247            </li>
2248            <li>
2249                Portability patches from: Anton Oleynikov, Sigbj&oslash;rn 
2250                Skj&aelig;ret, Mathew Hendry, Richard Gorton
2251            </li>
2252            <li>Alfred Weyers: compiler options, updated timestatus.</li>
2253            <li>Albert Faber: BladeDll and other updates (new machine.h).</li>
2254            <li>Monty: updated Makefile to fix gcc inline math bug.</li>
2255        </ul>
2256        <h3>LAME 3.34beta &nbsp;October 12 1999</h3>
2257        <ul>
2258            <li>
2259                <font color="#ff0000">Mark Taylor: Bug fixed: minimum bitrate in 
2260                VBR mode could be ignored for a few frames.</font>
2261            </li>
2262            <li><font color="#ff0000">Mark Taylor: New (minor) VBR tunings.</font></li>
2263            <li>
2264                Tim Ruddick: New wav/aiff header parsing routines. Better parsing 
2265                and fewer fseek()'s.
2266            </li>
2267            <li>Anton Oleynikov: patches to work with Borland C</li>
2268            <li>
2269                <font color="#ff0000">Gabriel Bouvigne: Experimental voice option 
2270                enabled with --voice</font>
2271            </li>
2272        </ul>
2273        <h3>LAME 3.33beta &nbsp;October 11 1999</h3>
2274        <ul>
2275            <li>
2276                <font color="#ff0000">Robert Hegemann: RH VBR mode now the 
2277                default and only VBR mode. The new code will always quantize to 
2278                0 distortion and the quality is increased by reducing the 
2279                masking from the psy-model. -X0 is still the default for now.</font>
2280            </li>
2281            <li><font color="#ff0000">Robert Hegemann: new -X5 mode</font></li>
2282            <li>Mathew Hendry: New timing code, removes the need for HAVETIMES</li>
2283            <li>
2284                <font color="#3366ff">Mathew
2285                Hendry: assembler quantize_xrpow for Windows</font>
2286            </li>
2287            <li>Iwasa Kazmi: stdin/stdout patch for Windows</li>
2288            <li>
2289                Mark Taylor: New option: "--athonly" will ignore the psy-model 
2290                output and use only the absolute threshold of hearing for the
2291                masking.
2292            </li>
2293        </ul>
2294        <h3>LAME 3.32beta &nbsp;October 8 1999</h3>
2295        <ul>
2296            <li>
2297                <font color="#3366ff">Takehiro Tominaga: faster long block 
2298                spreading function convolution for non 44.1 kHz sampling 
2299                frequencies, and faster short block spreading function 
2300                convolution for all sampling frequencies.</font>
2301            </li>
2302            <li>
2303                <font color="#ff0000">Takehiro Tominaga: Completly rewritten 
2304                huffman table selection and count_bits(). More efficient table 
2305                selection results in many more bits per frame.</font>
2306            </li>
2307            <li>
2308                <font color="#ff0000">Takehiro Tominaga: More efficient scalefac 
2309                compress setting.</font>
2310            </li>
2311            <li><font color="#3366ff">Mike Cheng: new calc_noise2()</font></li>
2312            <li>Alfred Weyers: patch for timestatus() seconds rollover</li>
2313        </ul>
2314        <h3>LAME 3.31beta &nbsp;September 28 1999</h3>
2315        <ul>
2316            <li>
2317                Albert Faber: updated his BladeDLL code. This allows LAME to be 
2318                compiled into a BladeEnc compatiable .dll.
2319            </li>
2320            <li>
2321                <font color="#3366ff">Mike Cheng: faster l3psycho_ener() 
2322                routine.</font>
2323            </li>
2324            <li>Sigbj&oslash;rn Skj&aelig;ret: more code cleanup.</li>
2325        </ul>
2326        <h3>LAME 3.30beta &nbsp;September 27 1999</h3>
2327        <ul>
2328            <li>
2329                Conrad Sanderson: ID3 tag code added (type 'lame' for 
2330                instructions)
2331            </li>
2332            <li>new mdct.c from Mike Cheng (no faster, but much cleaner code)</li>
2333            <li>
2334                Mathew Hendry: Microsoft nmake makefile and a couple other
2335                changes for MSVC
2336            </li>
2337            <li>
2338                More modulization work: One input sound file interface handles 
2339                mp3's, uncompressed audio, with or without LIBSNDFILE. Fixes 
2340                (hopefully) a bunch of file I/O bugs introduced in 3.29 (Mark Taylor)
2341            </li>
2342            <li>
2343                LAME will now print valid samplerate/bitrate combinations
2344                (Mark Taylor)
2345            </li>
2346            <li>stdin/stdout fix for OS/2 (Paul Hartman)</li>
2347            <li>
2348                For mp3 input files, total frames estimated based on
2349                filesize and first frame bitrate. (Mark Taylor)
2350            </li>
2351            <li>
2352                Updated all functions with new style prototypes.
2353                (Sigbj&oslash;rn Skj&aelig;ret)
2354            </li>
2355        </ul>
2356        <h3>LAME 3.29beta &nbsp;September 21 1999</h3>
2357        <ul>
2358            <li>
2359                <font color="#ff0000">Bug in bigv_bitcount fixed. Loop.c was 
2360                overestimating the number of bits needed, resulting in wasted 
2361                bits every frame. (Leonid A. Kulakov)</font>
2362            </li>
2363            <li>
2364                <font color="#ff0000">Bug in *_choose_table() fixed&nbsp; These 
2365                routines would not sellect the optimal Huffman table in some 
2366                cases.&nbsp;&nbsp; (Leonid A. Kulakov)</font>
2367            </li>
2368            <li><font color="#ff0000">Tuning of ATH normalization (macik)</font></li>
2369            <li>
2370                Removed unused variables and fixed function prototypes
2371                (Sigbj&oslash;rn Skj&aelig;ret)
2372            </li>
2373            <li>
2374                Sami Farin sent a .wav file that LAME built in support choked 
2375                on. I added a slightly more sophisticated wav header parsing to 
2376                handle this, but if you have trouble, use libsndfile.
2377            </li>
2378            <li>
2379                Resampling hooks and options added. Buffering
2380                and resampling routines need to be written.
2381            </li>
2382            <li>
2383                LAME will now take an mp3 file as input. When resampling code 
2384                is working, LAME will be able to (for example) convert a high 
2385                bitrate stereo mp3 to a low bitrate mono mp3 for streaming.
2386            </li>
2387        </ul>
2388        <h3>LAME 3.28beta &nbsp;September 15 1999</h3>
2389        <ul>
2390            <li>
2391                <font color="#ff0000">Serious bug fixed in
2392                high frequency MDCT coefficients. Huffman coding was
2393                reversing the order of the count1 block quadruples.
2394                (Leonid A. Kulakov)</font>
2395            </li>
2396            <li>
2397                nint() problems under Tru64 unix fixed and preprocessor
2398                variable HAVE_NINT removed. (Bob Bell)
2399            </li>
2400            <li>
2401                Compiler warning fixes and code cleanup (Sigbj&oslash;rn 
2402                Skj&aelig;ret, Lionel Bonnet)
2403            </li>
2404            <li>
2405                USAGE file now includes suggestions for
2406                downsampling. For low bitrate encodings, proper downsampling
2407                can give dramatically better results. (John Hayward-Warburton)
2408            </li>
2409        </ul>
2410        <h3>LAME 3.27beta &nbsp;September 12 1999</h3>
2411        <ul>
2412            <li>
2413                Several bugs in encode.c and l3bitstream.c fixed by Lionel
2414                Bonnet.
2415            </li>
2416            <li>
2417                Bugs in new VBR (#define RH) formula for mono input file
2418                and mid/side encoding fixed.
2419            </li>
2420        </ul>
2421        <h3>LAME 3.26beta &nbsp;September 10 1999</h3>
2422        <ul>
2423            <li>
2424                The "-m m" option (mono .mp3 file) will automatically mix
2425                left and right channels if the input file is stereo. (Alfred
2426                Weyers)
2427            </li>
2428            <li>
2429                <font color="#ff0000">New quant_compare algorithm (method for 
2430                deciding which of two quantizations is better) enabled with -X4 
2431                (Greg Maxwell)</font>
2432            </li>
2433            <li>
2434                <font color="#ff0000">New mid/side VBR bit allocation formula. 
2435                Mid channel bits are set by the quality requirements, and then 
2436                the side channel uses a reduced number of bits (in a proportion 
2437                coming from the fixed bitrate code). This might not be optimal,
2438                but it should be pretty good and no one knows what the optimal 
2439                solution should be. (Greg Maxwell)</font>
2440            </li>
2441            <li>
2442                <font color="#ff0000">New VBR (#define RH) tunings based on
2443                detailed listening tests by Macik and Greg Maxwell.</font>
2444            </li>
2445            <li>
2446                Sigbj&oslash;rn Skj&aelig;ret fixed several
2447                compiler warnings (which turned out to be potential bugs)
2448            </li>
2449            <li>Takehiro Tominaga fixed a low bitrate bug in reduce_side()</li>
2450            <li>Alfred Weyers fixed some buffer overflows.</li>
2451            <li>
2452                <font color="#ff0000">New ATH (absolute threshold of hearing) 
2453                formula replaces buggy ISO code, and adds analog silence 
2454                treatment (removal of coefficients below below ATH). These are 
2455                turned on by default but have not been fully tested. (Robert 
2456                Hegemann)</font>
2457            </li>
2458            <li>
2459                <font color="#ff0000">Bug in short block
2460                spreading function fixed. (Robert Hegemann)</font>
2461            </li>
2462        </ul>
2463        <h3>LAME 3.25beta &nbsp;August 22 1999</h3>
2464        <ul>
2465            <li>
2466                Sigbj&oslash;rn Skj&aelig;ret fixed a zero byte malloc call. 
2467                This bug was introduced in 3.24 and causes problems on non 
2468                Linux systems.
2469            </li>
2470            <li>
2471                Bit allocation routines would sometimes allocate more than
2472                4095 bits to one channel of one granule. A couple of people
2473                reported problems that might be caused by this, especially at 
2474                higher  bitrates.
2475            </li>
2476            <li>
2477                Nils Faerber updated the man page and fixed many of the
2478                compiler warnings.
2479            </li>
2480        </ul>
2481        <h3>LAME 3.24beta &nbsp;August 15 1999</h3>
2482        <ul>
2483            <li>
2484                This release contains the following new code (for
2485                developers) which is disabled by default:
2486            </li>
2487            <li>
2488                Hegemann: Completely overhauled VBR code. Now computes exact 
2489                number of bits required for the given qualty and then quantized 
2490                with the appropriate bitrate.
2491            </li>
2492            <li>Several new quantization quality measures.</li>
2493        </ul>
2494        <h3>LAME 3.23beta &nbsp;August 8 1999</h3>
2495        <ul>
2496            <li>
2497                Very nice continuously updated VBR histogram display from
2498                Iwasa Kazmi. (disabled with --nohist).
2499            </li>
2500            <li>
2501                More modulerization work. The encoding engine can now be 
2502                compiled into libmp3lame, but the interface is awkward.
2503            </li>
2504            <li>
2505                <font color="#ff0000">Bug fixed in FFT Hann window formula 
2506                (Leonid A. Kulakov).</font>
2507            </li>
2508            <li>
2509                New LAME logo on the download page. Created by Chris Michalisles.
2510            </li>
2511            <li>
2512                <font color="#ff0000">Several VBR algorithm
2513                improvements from Robert Hegemann. New quantization noise
2514                metrics and VBR quality measure takes into account mid/side
2515                encoding. Should produce smaller files with the same quality,
2516                especially when using jstereo.</font>
2517            </li>
2518        </ul>
2519        <h3>LAME 3.22beta &nbsp;July 27 1999</h3>
2520        <ul>
2521            <li>
2522                Downsampling (stereo to mono) bug with MPEG2 fixed. (Mike 
2523                Oliphant)
2524            </li>
2525            <li>
2526                Downsampling now merges L &amp; R channels - before it
2527                only took the L channel.
2528            </li>
2529            <li>
2530                More modularization and code cleanup from Albert Faber and
2531                myself.
2532            </li>
2533            <li>
2534                Input filesize limit removed for raw pcm input
2535                files. For other file types, LAME will still only read the
2536                first 2^32 samples, (27 hours of playing time at 44.1 kHz).
2537            </li>
2538        </ul>
2539        <h3>LAME 3.21beta &nbsp;July 26 1999</h3>
2540        <ul>
2541            <li>
2542                <font color="#ff0000">Correct Mid/Side masking thresholds for 
2543                JSTEREO mode! This is enabled with-h. It makes LAME about 20% 
2544                slower since it computes psycho-acoustics for L,R Mid and Side 
2545                channels.</font>
2546            </li>
2547            <li>
2548                <font color="#ff0000">"Analog silence"
2549                threshold added. Keeps VBR from upping the bitrate during
2550                very quite passages. (Robert.Hegemann)</font>
2551            </li>
2552            <li>
2553                <font color="#ff0000">New VBR quality setting from Robert 
2554                Hegemann. It is based on the idea that distortion at lower bit 
2555                rates sounds worse than at higher bitrates, and so the allowed 
2556                distortion (VBR quality setting) is proportional to the bitrate.
2557                Because of this, default minimum bitrate is now 32kbs.</font>
2558            </li>
2559            <li>
2560                <font color="#ff0000">Expermental subblock gain code enabled 
2561                with -Z.</font>
2562            </li>
2563            <li>
2564                New "-r" option for raw pcm input files. With -r, LAME will not 
2565                do any fseek()'s or look for wav and aiff headers on
2566                the input file.
2567            </li>
2568            <li>
2569                Bug fixes in mp3x (frame analyzer) for viewing frames near
2570                end of the file.
2571            </li>
2572            <li>
2573                Bug fixed to allow setting the sampling rate of raw pcm
2574                input files.
2575            </li>
2576        </ul>
2577        <h3>LAME 3.20beta &nbsp;July 19 1999</h3>
2578        <ul>
2579            <li>
2580                Bug in get_audio.c fixed. Libsndfile wrappers would not compile 
2581                (Miguel Revilla Rodriguez)
2582            </li>
2583            <li>
2584                Nils Faerber found some unitialized variables and some
2585                wierd extranous computations in filter_subband, now fixed.
2586                This was causing seg faults on some machines.
2587            </li>
2588        </ul>
2589        <h3> LAME 3.19beta &nbsp;July 18 1999</h3>
2590        <ul>
2591            <li>
2592                <font color="#ff0000">Oops! Robert Hegemann immediatly found a 
2593                bug in the new (old -Z option) quantization code. calc_noise1 
2594                was not returning tot_noise, so non ms-stereo frames were 
2595                buggy.</font>
2596            </li>
2597        </ul>
2598        <h3>LAME 3.18beta &nbsp;July 17 1999</h3>
2599        <ul>
2600            <li>
2601                <font color="#ff0000">Many psycho-acoustic bug fixes. Dan 
2602                Nelson discovered a bug in MPEG2: For short blocks, the code 
2603                assumes 42 partition bands. MPEG1 sometimes has less, MPEG2 
2604                can have more. In MPEG1, this bug would not have effected the 
2605                output if your compiler initializes static variables to 0 on 
2606                creation. In MPEG2 it leads to array out-of-bounds access 
2607                errors. Finally, there was a related bug in MPEG1/MPEG2, short
2608                &amp; long blocks where the energy above 16 kHz was all added to
2609                partition band 0. (the lowest frequeny partition band!)</font>
2610            </li>
2611            <li>
2612                <font color="#ff0000">The -Z option (Gabriel Bouvigne's idea of 
2613                using total quantization noise to choose between two
2614                quantizations with the same value of "over") is now the default. 
2615                I believe this helps remove the trilling sound in Jan's 
2616                testsignal4.wav. The quality of testsignal2.wav and
2617                testsignal4.wav are now better than Xing and getting closer to FhG.</font>
2618            </li>
2619            <li>
2620                Bug fixes in frame &amp; sample count for downsampling
2621                mode. (ben "jacobs")
2622            </li>
2623            <li>Patches to improve modulization. (ben "jacobs")</li>
2624        </ul>
2625        <h3>LAME 3.17beta &nbsp;July 11 1999</h3>
2626        <ul>
2627            <li>
2628                substantial code cleanup towards goal of making LAME more
2629                modular.
2630            </li>
2631        </ul>
2632        <h3>LAME 3.16beta &nbsp;July 11 1999</h3>
2633        <ul>
2634            <li>
2635                <font color="#ff0000">New tunings of window switching, and
2636                better bit allocation based on pe. (Jan Rafaj. improves both
2637                testsignal2.wav and testsignal4.wav).</font>
2638            </li>
2639            <li>
2640                <font color="#ff0000">Bug in mid/side quantization when side 
2641                channel was zero fixed. (Albert Faber)</font>
2642            </li>
2643            <li>
2644                Removed some extranous computations in l3psy.c (Robert
2645                Hegemann)
2646            </li>
2647            <li>
2648                More detailed timing status info, including hours display.
2649                (Sakari Ailus) and percentage indicator (Conrad Sanderson).
2650            </li>
2651            <li>
2652                <font color="#3366ff">Window_subband and calc_noise1,
2653                calc_noise2 speedups. Quantize_xrpow speedup should be 
2654                significant on non GNU/intel systems. (Mike Cheng)</font>
2655            </li>
2656            <li>
2657                <font color="#3366ff">Better initial guess for VBR bitrate. 
2658                Should speed up VBR encoding. (Gabriel Bouvigne)</font>
2659            </li>
2660            <li>
2661                More advanced .wav header parsing. fixes bugs involving click 
2662                in first frame. (Robert.Hegemann)
2663            </li>
2664            <li>
2665                Correct filesize and total frame computation when using
2666                LIBSNDFILE (ben "jacobs")
2667            </li>
2668            <li>
2669                Click in last frame (buffering problem) when using
2670                libsndfile fixed.
2671            </li>
2672            <li>
2673                Audio I/O code overhauled. There is now a uniform audio i/o 
2674                interface to libsndfile or the LAME built in wav/aiff
2675                routines. All audio i/o code localized to get_audio.c.
2676            </li>
2677        </ul>
2678        <h3>LAME 3.15beta</h3>
2679        <ul>
2680            <li>
2681                times()/clock() problem fixed for non-unix OS. (Ben "Jacobs")
2682            </li>
2683            <li>
2684                Fixed uninitialized pe[] when using fast mode. (Ben "Jacobs")
2685            </li>
2686        </ul>
2687        <h3>LAME 3.13 &nbsp;June 24 1999</h3>
2688        <ul>
2689            <li>Patches for BeOS from Gertjan van Ratingen.</li>
2690            <li>Makefile info for OS/2 Warp 4.0 (from dink.org).</li>
2691            <li>Status display now based on wall clock time, not cpu time.</li>
2692            <li>
2693                mem_alloc no longer allocates twice as much memory as
2694                needed (Jan Peman).
2695            </li>
2696        </ul>
2697        <h3>LAME 3.12pre9</h3>
2698        <ul>
2699            <li>
2700                Updated BLADEDLL code to handle recent changes (Albert
2701                Faber).
2702            </li>
2703            <li>
2704                Bug fixed in parsing options when not using GTK (Albert
2705                Faber).
2706            </li>
2707            <li>
2708                <font color="#ff0000">MPEG2 Layer III psycho acoustics now 
2709                working.</font>
2710            </li>
2711            <li>
2712                <font color="#3366ff">Improved huffman encoding Chris 
2713                Matrakidis. (10% faster). I dont know how he finds these 
2714                improvements! LAME with full quality now encodes
2715                faster than real time on my PII 266.</font>
2716            </li>
2717            <li>
2718                Fixed time display when encoding takes more than 60
2719                minutes.
2720            </li>
2721        </ul>
2722        <h3>LAME 3.12pre8</h3>
2723        <ul>
2724            <li>
2725                <font color="#ff0000">New <a href="gpsycho/ms_stereo.html">
2726                mid/side stereo</a> criterion. LAME will use mid/side stereo 
2727                only when the difference between L &amp; R masking thresholds 
2728                (averaged over all scalefactors) is less then 5db. In several 
2729                test samples it does a very good job mimicking the FhG 
2730                encoder.</font>
2731            </li>
2732            <li>
2733                <font color="#ff0000">Bug in mid/side stereo fixed: independent 
2734                variation of mid &amp; side channel scalefactors disabled. 
2735                Because of the way outer_loop is currently coded, when encoding 
2736                mid/side coefficietns using left/right thresholds, you have 
2737                to vary the scalefactors simultaneously.</font>
2738            </li>
2739            <li>
2740                <font color="#ff0000">Bug in side/mid energy
2741                ratio calculation fixed. (Thanks to Robert Hegemann)</font>
2742            </li>
2743            <li>
2744                Default mode is stereo (not jstereo) if bitrate is chosen
2745                as 192kbs or higher. Tero Auvinen first pointed out that FhG
2746                seems to think at 160kbs, their encoder is so good it doesn't 
2747                need jstereo tricks. Since LAME is not as good as FhG, I am 
2748                going to claim that 192kbs LAME is so good it doens't need 
2749                jstereo tricks, and thus it is disabled by default.
2750            </li>
2751            <li>
2752                WAV header parsing for big-endian machines, and automatic
2753                detection of big-endian machines. (Thanks to Sigbj&oslash;rn 
2754                Skj&aelig;ret).
2755            </li>
2756            <li>added 56 sample delay to sync LAME with FhG.</li>
2757            <li>MP3x (frame analyzer) can now handle MPEG2 streams.</li>
2758        </ul>
2759        <h3>LAME 3.12pre7</h3>
2760        <ul>
2761            <li>
2762                MPEG2 layer III now working! lower bit rates (down to 8kbs) 
2763                and 3 more sampling frequencies: 16000, 22050, 24000Hz. Quality 
2764                is poor - the psy-model does not yet work with these
2765                sampling frequencies.
2766            </li>
2767            <li>
2768                Fixed "ERROR: outer_loop(): huff_bits &lt; 0." bug
2769                when using VBR.
2770            </li>
2771            <li>
2772                bash and sh scripts to run LAME on multiple files now
2773                included. (from Robert Hegemann and Gerhard Wesp respectively)
2774            </li>
2775            <li>
2776                bug fix in encoding times for longer files from&nbsp;
2777                (Alvaro Martinez Echevarria)
2778            </li>
2779            <li>yet another segfault in the frame analyzer fixed.</li>
2780            <li>
2781                ISO psy-model/bit allocation routines removed. This allowed 
2782                makeframe() to be made much simpler, and most of the complicated 
2783                buffering is now gone. Eventually I would like the encoding
2784                engine to be a stand alone library.
2785            </li>
2786        </ul>
2787        <h3>LAME 3.12pre6</h3>
2788        <ul>
2789            <li>
2790                <font color="#ff0000">Better VBR
2791                tuning. Find minimum bitrate with distortion less than the
2792                allows maximum. A minimum bit rate is imposed on frames with
2793                short blocks (where the measured distortion can not be
2794                trusted). A minimum frame bitrate can be specified
2795                with -b, default=64kbs.</font>
2796            </li>
2797            <li>
2798                <a href="http://www.zip.com.au/%7Eerikd/libsndfile">LIBSNDFILE</a>
2799                support. With libsndfile, LAME can encode almost all sound
2800                formats. Albert Faber did the work for this, including
2801                getting libsndfile running under win32.
2802            </li>
2803            <li>CRC checksum now working! (Thanks to Johannes Overmann)</li>
2804            <li>frame analyzer will now work with mono .mp3 files</li>
2805            <li><font color="#3366ff">more code tweeks from Jan Peman.</font></li>
2806            <li>
2807                <font color="#3366ff">Compaq-Alpha(Linux) fixes and speedups 
2808                from Nils Faerber.</font>
2809            </li>
2810            <li>
2811                <font color="#3366ff">Faster bin_search_StepSize from Juha 
2812                Laukala.</font>
2813            </li>
2814            <li>
2815                <font color="#3366ff">Faster quantize() from Mike Cheng</font>
2816            </li>
2817            <li>
2818                <font color="#3366ff">Faster
2819                quantize_xrpow() from Chris Matrakidis. xrpow_flag removed
2820                since this option is now on by default.</font>
2821            </li>
2822            <li>Fixed .wav header parsing from Nils Faerber.</li>
2823            <li>
2824                Xing VBR frame info header code from Albert
2825                Faber. "Xing" and "LAME 3.12" embedded in first
2826                frame.
2827            </li>
2828            <li>
2829                <font color="#ff0000">Bug in VBR bit allocation based on "over" 
2830                value fixed.</font>
2831            </li>
2832        </ul>
2833        <h3>LAME 3.11 &nbsp;June 3 1999</h3>
2834        <ul>
2835            <li>Almost all warnings (-Wall) now fixed! (Thanks to Jan Peman)</li>
2836            <li>
2837                More coding improvements from Gabriel Bouvigne and Warren
2838                Toomey.
2839            </li>
2840            <li>
2841                <font color="#ff0000">VBR (variable bit rate). Increases bit 
2842                rate for short blocks and for frames where the number of bands 
2843                containing audible distortion is greater than a given value. 
2844                Much tuning needs to be done.</font>
2845            </li>
2846            <li>Patch to remove all atan() calls from James Droppo.</li>
2847        </ul>
2848        <h3>LAME 3.10 &nbsp;May 30 1999</h3>
2849        <ul>
2850            <li>
2851                <font color="#3366ff">Fast mode
2852                (-f) disables psycho-acoustic model for real time encoding on
2853                older machines. Thanks to Lauri Ahonen who first sent a patch
2854                for this.</font>
2855            </li>
2856            <li>
2857                <font color="#ff0000">New bit reservoir usage scheme to 
2858                accommodate the new pre-echo detection formulas.</font>
2859            </li>
2860            <li>
2861                <font color="#ff0000">Tuning of AWS and ENER_AWS pre-echo 
2862                formulas by Gabriel Bouvigne and myself. They work great! now 
2863                on by default.</font>
2864            </li>
2865            <li>
2866                In jstereo, force blocktypes for left &amp; right
2867                channels to be identical. FhG seems to do this. It
2868                can be disabled with "-d".
2869            </li>
2870            <li>Patches to compile MP3x under win32 (Thanks to Albert Faber).</li>
2871            <li>
2872                <font color="#3366ff">bin_serach_stepsize
2873                limited to a quantizationStepSize of -210 through 45.</font>
2874            </li>
2875            <li>
2876                <font color="#ff0000">outer_loop() will now vary Mid &amp; Side 
2877                scalefactors independently. Can lead to better quantizations, 
2878                but it is slower (twice as many quantizations to look at). 
2879                Running with "-m f" does not need this and will run at the 
2880                old speed</font>
2881            </li>
2882            <li>
2883                <font color="#ff0000">Bug in inner_loop
2884                would allow quantizations larger than allowed. (introduced in
2885                lame3.04, now fixed.)</font>
2886            </li>
2887            <li>Updated HTML documentation from Gabriel Bouvigne.</li>
2888            <li>Unix man page from William Schelter.</li>
2889            <li>
2890                <font color="#ff0000">numlines[] bug fixed. (Thanks to Rafael 
2891                Luebbert, MPecker author).</font>
2892            </li>
2893            <li>
2894                <font color="#3366ff">Quantization speed improvements from Chris
2895                Matrakidis.</font>
2896            </li>
2897            <li>
2898                <font color="#ff0000">When comparing quantizations with the same
2899                number of bands with audible distortion, use the one with the 
2900                largest scalefactors, not the first one outer_loop
2901                happened to find.</font>
2902            </li>
2903            <li>
2904                Improved defination of best quantization when using -f
2905                (fast mode).
2906            </li>
2907            <li>
2908                subblock code now working. But no algorithm to
2909                choose subblock gains yet.
2910            </li>
2911            <li>
2912                Linux now segfaults on floating point exceptions. Should 
2913                prevent me from releasing binaries that crash on other 
2914                operating systems.
2915            </li>
2916        </ul>
2917        <h3>LAME 3.04 &nbsp;May 22 1999</h3>
2918        <ul>
2919            <li>Preliminary documentation from Gabriel Bouvigne.</li>
2920            <li>
2921                <font color="#3366ff">I wouldn't have thought it was possible, 
2922                but now there are even more speed improvements from Chris 
2923                Matrakidis! Removed one FFT when using joint stereo, and many
2924                improvements in loop.c.</font>
2925            </li>
2926            <li>
2927                "Fake" ms_stereo mode renamed "Force" ms_stereo since it forces
2928                mid/side stereo on all frames. For some music this is said to be
2929                a problem, but for most music mode is probably better than the
2930                default jstereo because it uses specialized mid/side channel
2931                masking thresholds.
2932            </li>
2933            <li>Small bugs in Force ms_stereo mode fixed.</li>
2934            <li>Compaq Alpha fixes from Nathan Slingerland.</li>
2935            <li>
2936                <font color="#ff0000">Some new experimental pre-echo detection 
2937                formulas in l3psy.c (#ifdef AWS and #ifdef ENER_AWS,
2938                both off by default. Thanks to Gabriel Bouvigne and Andre
2939                Osterhues)</font>
2940            </li>
2941            <li>
2942                Several bugs in the syncing of data displayed by mp3x (the
2943                frame analyzer) were fixed.
2944            </li>
2945            <li>
2946                highq (-h) option added. This turns on things
2947                (just one so far) that should sound better but slow down LAME.
2948            </li>
2949        </ul>
2950        <h3>LAME 3.03 &nbsp;May 18 1999 </h3>
2951        <ul>
2952            <li>
2953                <font color="#3366ff">Faster (20%) &amp;
2954                cleaner FFT (Thanks to Chris Matrakidis 
2955                http://www.geocities.com/ResearchTriangle/8869/fft_summary.html)</font>
2956            </li>
2957            <li>
2958                mods so it works with VC++ (Thanks to Gabriel Bouvigne,
2959                www.mp3tech.org)
2960            </li>
2961            <li>
2962                MP3s marked "original" by default (Thanks to
2963                Gabriel Bouvigne, www.mp3tech.org)
2964            </li>
2965            <li>
2966                Can now be compiled into a BladeEnc compatible .DLL (Thanks to 
2967                Albert Faber, CDex author)
2968            </li>
2969            <li>
2970                Patches for "silent mode" and stdin/stdout (Thanks to Lars Magne
2971                Ingebrigtsen)
2972            </li>
2973            <li>
2974                <font color="#ff0000">Fixed rare bug: if a long_block is 
2975                sandwiched between two short_blocks, it must be changed to a 
2976                short_block, but the short_block ratios have not been computed in
2977                l3psy.c. Now always compute short_block ratios just in case.</font>
2978            </li>
2979            <li>
2980                <font color="#ff0000">Fixed bug with initial quantize step size 
2981                when many coefficients are zero. (Thanks to Martin Weghofer).</font>
2982            </li>
2983            <li>Bug fixed in MP3x display of audible distortion.</li>
2984            <li>improved status display (Thanks to Lauri Ahonen).</li>
2985        </ul>
2986        <h3>LAME 3.02 &nbsp;May 12 1999</h3>
2987        <ul>
2988            <li>
2989                <font color="#ff0000">encoder could use ms_stereo even if 
2990                channel 0 and 1 block types were different. (Thanks to Jan 
2991                Rafaj)</font>
2992            </li>
2993            <li>
2994                <font color="#ff0000">added -k option to
2995                disable the 16 kHz cutoff at 128kbs. This cutoff is never
2996                used at higher bitrates. (Thanks to Jan Rafaj)</font>
2997            </li>
2998            <li>
2999                <font color="#ff0000">modified pe bit allocation formula to 
3000                make sense at bit rates other than 128kbs.</font>
3001            </li>
3002            <li>
3003                fixed l3_xmin initialization problem which showed up under
3004                FreeBSD. (Thanks to Warren Toomey)
3005            </li>
3006        </ul>
3007        <h3><b>LAME 3.01 &nbsp;May 11 1999</b> </h3>
3008        <ul>
3009            <li>max_name_size increased to 300 (Thanks to Mike Oliphant)</li>
3010            <li>patch to allow seeks on input file (Thanks to Scott Manley)</li>
3011            <li>
3012                fixes for mono modes (Thanks to everyone who pointed this out)
3013            </li>
3014            <li>overflow in calc_noise2 fixed</li>
3015            <li>
3016                it reservoir overflow when encoding lots of frames with
3017                all zeros (Thanks to Jani Frilander)
3018            </li>
3019        </ul>
3020        <hr>
3021        <h3>LAME 3.0 &nbsp;May 10 1999</h3>
3022        <ul>
3023            <li>
3024                <font color="#ff0000">added GPSYCHO (developed by Mark Taylor)
3025                </font>
3026            </li>
3027            <li>
3028                <font color="#000000">added MP3x (developed by Mark Taylor)</font>
3029            </li>
3030            <li>LAME now maintained by Mark Taylor</li>
3031        </ul>
3032        <h3>November 8 1998</h3>
3033        <ul>
3034            <li>Version 2.1f released</li>
3035            <li>
3036                50% faster filter_subband() routine in encode.c
3037                contributed by James Droppo
3038            </li>
3039        </ul>
3040        <h3>November 2 1998</h3>
3041        <ul>
3042            <li>Version 2.1e released.</li>
3043            <li>
3044                New command line switch <b>-a</b> auto-resamples a stereo input 
3045                file to mono.
3046            </li>
3047            <li>
3048                New command line switch <b>-r</b> resamples from 44.1 kHz to 32 
3049                kHz [this switch doesn't work really well. Very tinny sounding 
3050                output files. Has to do with the way I do the resampling
3051                probably]
3052            </li>
3053            <li>
3054                Both of these were put into the ISO code in the encode.c file, 
3055                and are simply different ways of filling the input buffers from 
3056                a file.
3057            </li>
3058        </ul>
3059        <h3>October 31 1998</h3>
3060        <ul>
3061            <li>Version 2.1d released</li>
3062            <li>Fixed memory alloc in musicin.c (for l3_sb_sample)</li>
3063            <li>
3064                Added new command line switch (-x) to force swapping of
3065                byte order
3066            </li>
3067            <li>
3068                Cleaned up memory routines in l3psy.c. All the mem_alloc() and 
3069                free() routines where changed so that it was only done <i>once</i>
3070                and not every single time the routine was called.
3071            </li>
3072            <li>
3073                Added a compile time switch -DTIMER that includes all timing 
3074                info. It's a switch for the time being until some other people
3075                have tested on their system. Timing code has a tendency to do 
3076                different things on different platforms.
3077            </li>
3078        </ul>
3079        <h3>October 18 1998</h3>
3080        <ul>
3081            <li>Version 2.1b released.</li>
3082            <li>Fixed up bug: all PCM files were being read as WAV.</li>
3083            <li>
3084                Played with the mem_alloc routine to fix crash under amigaos 
3085                (just allocating twice as much memory as needed). Might see if
3086                we can totally do without this routine. Individual malloc()s 
3087                where they are needed instead
3088            </li>
3089            <li>
3090                Put Jan Peman's quality switch back in. This reduces quality 
3091                via the '-q&nbsp;&lt;int&gt;' switch. Fun speedup which is
3092                mostly harmless if you're not concerned with quality.
3093            </li>
3094            <li>Compiling with amiga-gcc works fine</li>
3095        </ul>
3096        <h3>October 16 1998</h3>
3097        <ul>
3098            <li>
3099                Version 2.1a released. User input/output has been cleaned up a 
3100                bit. WAV file reading is there in a very rudimentary sense ie 
3101                the program will recognize the header and skip it, but not read 
3102                it. The WAV file is assumed to be 16bit stereo 44.1 kHz.
3103            </li>
3104        </ul>
3105        <h3>October 6 1998</h3>
3106        <ul>
3107            <li>
3108                Version 2.1 released with all tables now incorporated into
3109                the exe. Thanks to <b>Lars Magne Ingebrigtseni</b>
3110            </li>
3111        </ul>
3112        <h3>October 4 1998</h3>
3113        <ul>
3114            <li>
3115                In response to some concerns about the quality of the encoder, I
3116                have rebuilt the encoder from scratch and carefully compared output
3117                at all stages with the output of the unmodified ISO encoder.
3118            </li>
3119            <li>
3120                <a href="http://www.uq.net.au/%7Ezzmcheng/lame/download.html">
3121                Version 2.0</a> of LAME is built from the ISO source code (dist10),
3122                and incorporates modifications from myself and the 8hz effort. The
3123                output file from LAME v2.0 is <em>identical</em> to the output of
3124                the ISO encoder for my test file. Since I do not have heaps of time,
3125                I left the ISO AIFF file reader in the code, and did not incorporate
3126                a WAV file reader.
3127            </li>
3128            <li>
3129                Added section
3130                on <a href="http://www.uq.net.au/%7Ezzmcheng/lame/quality.html">
3131                quality</a>.
3132            </li>
3133        </ul>
3134        <h3> October 1 1998</h3>
3135        <ul>
3136            <li>Updated web page and released LAME v1.0</li>
3137        </ul>
3138        <hr>
3139        <h3>Up to September 1998</h3>
3140        <p>Working on the 8hz source code...</p>
3141        <ul>
3142            <li>
3143                Patched the <a href="http://www.8hz.com/">8hz</a> source
3144                code
3145            </li>
3146            <li>
3147                45% faster than original source (on my freebsd p166).
3148                <ul>
3149                    <li>
3150                        m1 - sped up the mdct.c and quantize() functions [MDCTD,
3151                        MDCTD2, LOOPD]
3152                    </li>
3153                    <li>
3154                        m2 - sped up the filter_subband routine using <b>Stephane
3155                        Tavenard</b>'s work from musicin [FILTST]
3156                    </li>
3157                    <li>m2 - minor cleanup of window_subband [WINDST2]</li>
3158                    <li>
3159                        m2 - Cleaned up a few bits in l3psy.c. Replaced a sparse
3160                        matrix multiply with a hand configured unrolling [PSYD]
3161                    </li>
3162                    <li>
3163                        m3 - (amiga only) Added in the asm FFT for m68k (based on
3164                        sources from <b>Henryk Richter</b> and <b>Stephane Tavenard</b>)
3165                    </li>
3166                    <li>m4 - raw pcm support back in</li>
3167                    <li>
3168                        m5 - put in a byte-ordering switch for raw PCM reading 
3169                        (just in case)
3170                    </li>
3171                    <li>
3172                        m6 - reworked the whole fft.c file. fft now 10-15%
3173                        faster.
3174                    </li>
3175                    <li>
3176                        m7 - totally new fft routine. exploits fact that this is 
3177                        a real-&gt;complex fft. About twice as fast as previous 
3178                        fastest fft (in m6). (C fft routine is faster than the 
3179                        asm one on an m68k!)
3180                    </li>
3181                    <li>
3182                        m8
3183                        <ul>
3184                            <li>
3185                                Now encodes from stdin. Use '-' as the input 
3186                                filename. Thanks to <b>Brad Threatt</b>
3187                            </li>
3188                            <li>
3189                                Worked out that the 1024point FFT only ever uses 
3190                                the first 6 phi values, and the first 465 energy 
3191                                values. Saves a bunch of calculations.
3192                            </li>
3193                            <li>
3194                                Added a speed-up/quality switch. Speed is 
3195                                increased but quality is decreased <i>slightly</i>.
3196                                My ears are bad enough not to be able to notice
3197                                the difference in quality at low settings :). 
3198                                Setting '-q 1' improves speed by about 10%. '-q
3199                                100' improves speed by about 26%. Enoding of my 
3200                                test track goes from 111s (at default '-q 0') 
3201                                to 82s (at -q 100). Thanks to <b>Jan Peman</b> 
3202                                for this tip.
3203                            </li>
3204                        </ul>
3205                    </li>
3206                    <li>
3207                        m9 - fixed an error in l3psy.c. numlines[] is overwritten 
3208                        with incorrect data. Added a new variable numlines_s[] 
3209                        to fix this. Thanks again to <b>Jan Peman</b>.
3210                    </li>
3211                    <li>
3212                        m10 - Down to 106 seconds by selecting a few more compiler
3213                        options. Also added a pow20() function in l3loop.c to 
3214                        speed up (ever so slightly) calls to pow(2.0, x)
3215                    </li>
3216                    <li>
3217                        m11
3218                        <ul>
3219                            <li>
3220                                No speedups. Just cleaned up some bits of the code.
3221                            </li>
3222                            <li>
3223                                Changed K&amp;R prototyping to 'normal' format. 
3224                                Thanks to <b>Steffan Haeuser</b> for his help here.
3225                            </li>
3226                            <li>
3227                                Changed some C++ style comments to normal C comments in
3228                                huffman.c
3229                            </li>
3230                            <li>
3231                                Removed the #warning from psy_data.h (it was getting
3232                                annoying!)
3233                            </li>
3234                            <li>
3235                                Removed reference in bitstream.c to malloc.h. Is there a
3236                                system left where malloc.h hasn't been superceded by
3237                                stdlib.h?
3238                            </li>
3239                        </ul>
3240                    </li>
3241                </ul>
3242            <li>
3243                In Progess:
3244                <ul>
3245                    <li>
3246                        my PSYD hack for the spreading functions is only valid for
3247                        44.1 kHz - Should really put in a "if freq = 44.1 kHz"
3248                        switch for it. Someone might want to extend the speedup for
3249                        48 and 32 kHz.
3250                    </li>
3251                    <li>
3252                        Putting in Jan Peman's quantanf_init speedup.
3253                    </li>
3254                </ul>
3255            </li>
3256        </ul>
3257        <hr>
3258        <center>
3259            <p>
3260                <a href="http://validator.w3.org/check?uri=referer">
3261                <img src="images/valid-html401.png" alt="Valid HTML 4.01 
3262                Transitional" height="31" width="88">
3263                </a>
3264            </p>
3265        </center>
3266    </body>
3267</html>
3268