4
- no functional changes
6
0.60-beta6 (Thomas Orgis)
9
- more use of ID3v2 tags, mpg123 now displays both (merged) info from ID3v2 and ID3v1; trying to support both ID3v2.3 and ID3v2.4, but ignoring encoding (UTF8 should still work if your terminal supports it, straight unicode should work except for parsing genre numbers and multiline strings)
11
0.60-beta5 (Thomas Orgis)
14
- more robust playlist support:
15
-> path/url length not limited to 1023 characters anymore
16
-> reading in of whole playlist at program start (old operation was not really safe with playlist from http)
17
-> fixed bug where reading of playlist form stdin caused segfault (introduced with the pls format support)
18
- smaller cleanups, screen output cosmetics
20
0.60-beta4 (Nicholas Humfrey & Thomas Orgis)
23
- proper seeking, also for VBR streams
24
- real two-way seeking in remote control mode at all
25
- better estimates of remaining frames (on vbr files), exact if Xing header is found
26
- Removed libao support (as it is GPL and we aren't - and we don't need it with native Alsa)
27
- Added ALSA 0.9/1.0 support by Clemens Ladisch (old alsa is in audio_alsa05.c but will most likely vanish soon)
28
- Added PortAudio audio-output support
29
- Added SDL audio-output support
30
- Fixed NAS audio-output support
31
- re-enabled MPEG 2.5, code just seems to work
32
- improved stream checking; being more willing in general (favor resync instead of bail out) but directly give up if free format stream is obvious
33
- Whee! Initial Relative Volume Adjustment (buzz) support with reading of ReplayGain values in lame/info tag, the RVA2 frames in ID3v2.4, ID3v2 TXXX tags from foobar2000 (please test, someone!) and custom ID3v2.3 comments entitled RVA / RVA_ALBUM / RVA_AUDIOPHILE / RVA_RADIO / RVA_MIX
34
- more persistence in trying to get http streams
36
0.60-beta3 (Thomas Orgis)
39
- fixed bug with segfault in http code on stream from live365.com - bug id 1529266
40
- made http request HTTP/1.0 compilant again (tested only without proxy) - bug id 1529319
41
- now using http content-type header to check for correct types mpg123 can understand
42
-> you can now always use -@ for a single http resource (direct stream or playlist) since a stream will be reopened based on MIME type,
43
though omitting it will save you one http request to the server in the direct stream case...
44
- now simple parsing of shoutcast pls playlists (how did you people use shoutcast before?)
45
- playlist mode enhanced with selective playback of one entry in list (--listentry parameter)
48
0.60-beta2 (Thomas Orgis)
51
- fixed bug in terminal control mode that caused the f key to quit program isntead of advance to next file (introduced by the first attempt to restore "normal" Ctrl+C behaviour in terminal control mode)
53
0.60-beta1 (Thomas Orgis & Nicholas Humfrey)
56
On the way to the first new offical realease since years!
58
- new license: all LGPL except the old audio_alsa.c
59
- merge with Nicholas' sourceforge package
60
- autooled configure/make system
61
- MacOSX, Jack, libao (alsa 0.9/1.x support through that)
62
- experimental gapless playback for layer 3
63
- merged in MMX and AltiVec optimizations
64
- security bug fix of GLSA 200607-01 and catching possible crashes found by fuzzing
65
- fixed many issues here and there
66
- polished help messages, updated man page...
68
UNDERGROUND 0.59r-thor7 (well, I'm going to release a _really_ official mpg123 in future) (Thomas Orgis <thomas@orgis.org>)
71
- applied relevant stuff from Debian's 22:
72
- fix for CVE-2006-1655 (buffer overflow in III_i_stereo())
73
- strict aliasing hack in WRITE_SAMPLE of decode_i386.c
74
- fixed http streaming through proxy by actually using the request url...
75
- buffer resync on Ctrl-C (cleaning, reducing pauses with multiple files)
76
- removed unused esdserver variable from mpg123.h
77
- did NOT apply the Debian Makefile/manpage changes (going to rewrite that stuff anyway)
78
- made the netbsd-i386 targets visible as netbsd-x86
80
UNOFFICIAL 0.59r-thor6 (Thomas Orgis <thomas@orgis.org>)
83
- split nedbsd targets for realtime priority selection code; since one needs -lpthread with it. standard netbsd target doesn't use realtime code -- I won't recommend running mpg123 as root anyway!
85
UNOFFICIAL 0.59r-thor5 (Thomas Orgis <thomas@orgis.org>)
88
- Separated the the use of char* equalfile as filename from the use as TRUE/FALSE flag by introducing int have_eq_settings. Compilers kept nagging about assigning and integer (TRUE) to char* ... and it feels more right this way.
90
- Made control_generic aware of real being possibly different than float (seq command used to raise an FPE on OSF1 when this assumption was not the case.
92
- Fixed the command line arg parsing to work properly on Alpha (32 and 64 bit mixup)
94
UNOFFICIAL 0.59r-thor4 (Thomas Orgis <thomas@orgis.org>)
97
- merged with 0.59r-19 from Debian project (Daniel Kobras <kobras@debian.org>), hopefully fixing all those security vulnerabilities
98
-> my dirty http_open and open_stream variants now replaced by more proper code
99
-> still my (rather workloaded) parsing/processing in control_generic, but now including the idea to watch out for \n, \r\n and \r (or \n\r, for that matter;-)
101
UNOFFICIAL 0.59r-thor3 (Thomas Orgis <thomas@orgis.org>)
104
- hacked additional variants of http_open and open_stream that return errors instead of exit()ing; makes more sense when used by a frontend
105
- further cleanup (and return to using continue instead of nested if(){}else{if()else{}}) in command processing, better error messages there
107
UNOFFICIAL 0.59r-ThOr(remote-err,eq,flushing) (Thomas Orgis <thomas@orgis.org>)
109
-added audio_flush() calls to various places in control_generic.c to make sure there is nothing left in there that hurts later (not sure if this has effects)
110
-(re?)enabled (?) code for stream info
111
-corrected answer of JUMP (now gives actual reached position, +/- 1 frame since I'll still have to figure out what frame 0 really is...)
113
UNOFFICIAL 0.59r-realeq-remoteerr: (Thomas Orgis <thomas@orgis.org>)
115
- applied patch from Cool Feet Audio project (nutcase@dtfm.org, see README.cfa) to use real-time equalizer in remote mode
116
- applied patch from AMF (amf.sourceforge.net) by Steve Grundell for remote communication not polluting the STDOUT where the audio data is read from (instead using STDERR) ... and faster seeking, maybe
117
The patches go not cleanly together, but rejects are trivial. Thus, a combined patch with both would makes sense.
118
- modified (IMHO improved) the control_generic command reading: now always making sure that the full command is read up to a mandatory \n; also reworked the application of the commands afterwards
119
- added SEQ command: simple eq with only 3 bands
120
- added SILENCE command: I don't want the playback messages when I don't read them (since my frontend is reading the STDOUT it knows what is going on)
121
- added SLJ command: SILENCE-LOAD-JUMP... a hack for my hacked mixplayd... maybe one should remove that again.
125
- applied audio_alib changes from Ralf Hildebrandt <R.Hildebrandt@TU-BS.DE>
126
- some 'paetsches' from DK
127
- minor optimizations in layer3 (dequantize/huffman)
128
- BSDOS 4.0 with gcc added to Makefile (<sms@moe.2bsd.com>)
129
- Solaris-ESD patch from Ryan Prosser <prosser@wam.umd.edu>
130
- Added Frontend changes from Bertrand Petit <elrond@phoe.netdev.net>
131
- more DK 'paetsches' (final dk7-clubhaus edition), includes extended term
133
- SGI audio fix for non RAD machines from Erik Mouw <J.A.K.Mouw@its.tudelft.nl>
134
- fixed ugly bug in layer3 dequant for bt==2 (may cause high frequency clitchs)
135
- AMD-3DNow optimizations in decode and dct64
136
- OS/2 reworked from Samuel Audet (see audio_os2.c for more)
137
- added freebsd-esd make-entry from Daniel O'Connor (darius@guppy.dons.net.au)
138
- added enhanced head_check from D. Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>
139
- applied 'xterm-title-patch' from "Wilson, Jeff D" <jeff.wilson@wilcom.com>
140
- more esd changes from Robert Bihlmeyer <robbe@orcus.priv.at>
141
- applied Hannu Napari's <Hannu.Napari@hut.fi> SGI audio patches
142
- minor changes in httpget.c and mpg123.c
143
- added native AIX support from Juergen.Schoew@unix-ag.uni-siegen.de
144
- applied playlist patch from <psst@euskalnet.net>
145
- more SGI audio patches from Gilles Zunino <Gilles.Zunino@hei.fupl.asso.fr>
146
- applied esdserver patch from Matthew Parslow <roy@alpha.alphalink.com.au>
147
- added some fixes for control_generic
152
- minor bugfixes (DK patch ;)
153
- au and cdr 'support' (it's a hack)
154
- Fixed 'VBR' Bug in get_scale_fac1(). Thanx to <ssonique@hotmail.com> for
155
this. (Wasn't really a VBR Bug. The new encoders just triggered it.)
156
- Added equalizer patch from <dlux@dlux.sch.bme.hu>
160
- Added mpglib (see mpglib directory)
161
- 'make generic' is more generic now
162
- Added HPUX/ALib support from Ducroquet Erwan (ducroque@ufr-info-p7.ibp.fr)
163
- Added EsoundD support from <fill it in>
164
- Added exp. relatime support (compile with -DSET_RT)
165
- Added linux-sparc patch from <hmm lost email)
166
- Added genrepatch from Shane Wegner <shane@CM.NU>
167
- Added wav-File patch Samuel Audet <guardia@cam.org>
168
- Added SGI-RAD support from "J. Dean Brederson" <jdb@cs.utah.edu>
169
- Added sajberplay/FreeBSD patch from Chou Ye-chi <is84002@cis.nctu.edu.tw>
170
- Added 486 optimizations from Fabrice Bellard <bellard@email.enst.fr>
171
- Added combined output devices on SUN (ie Speaker and headphones together)
172
- Added audio_alsa.c (under GPL license) for the ALSA sound system from
173
A. Hermansen <ahermans@vf.telia.no> and J. Kysela <perex@jcu.cz>
174
- Added K6-3DNow patches from KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp>
175
- Added MINT patches from Petr Stehlik <stehlik@cas3.zlin.vutbr.cz>
176
- Fixed minor bug for linux-i486 and mono
180
- fixed Bug with stereo streams on mono audio hardware for OSS
181
- fixed a bug with mono output and 1:1 (no) rate conversion
182
- again changes in the probe code
183
- fix in the buffer code for the case, that audio parameters are changing
184
- more changes to the flexibel rate converter, should now work when
186
- Added Andy's (<andy@snoogie.demon.co.uk>) float2int speed up proposal
187
(check WRITE_SAMPLE in decode_i386.c) .. Maybe someone wanna take the
188
idea and put it into the decode_i586.s part?
189
- Added TK3Play support from Brian Foutz <foutz@anise.ee.cornell.edu>
190
(compiles but untested)
191
- RIFF Header fix (according to Thomas Niederreiter's
192
<tn@tarantel.rz.fh-muenchen.de> patch)
193
- m68k patch from Stefan Gybas <cab@studbox.uni-stuttgart.de> applied
194
- minor additional PPC changes applied
195
- resync and EOF hang fixed
196
- resync and bitrate correction relaxed
197
- Slightly change verbose output; added countdown
203
- added memory mapped IO for file reading
204
- added MPEG 2.5 12kHz and 8kHz table entry
205
- started flexibel rate conversion ..
206
- new '-Z' / '--random' option
208
- splitted audio file in audio system dependend smaller parts
209
- started system stream support (external program: system.c)
210
- unsigned 8 bit (instead of ulaw) is now default for 8bit operation
211
- Linux PPC patch from Grant Erickson <eric0139@tc.umn.edu> applied
212
- added BSDi patch from Peter Berger <peterb@hoopoe.psc.edu>, who reported
213
a failure when catching signals
214
- minor bug fix in the control interface for sajber jukebox
215
- fixed the ugly 'Ctrl-Z in buffer mode' bug .. YES ;)
216
- added buffer preload when underrun occurs (preload = 1/8 buffer size)
217
- minor SUN audio clean up
221
- Bug with RIFF header streams fixed.
222
- HTTP auth option patch from Henrik P Johnson <king@one.se>
223
- NetBSD patch(s) added from <mycroft@NetBSD.ORG> and <augustss@cs.chalmers.se>
224
- Added advanced shuffle support from Steven Tiger Lang <tiger@tyger.org>
225
- fixed bug with too large big_value field
226
- fixed (hopefully) the bug with the '-a' option
227
- work-around for some pedantic compilers in fr->synth init
228
- some changes for the 'generic' version
229
- applied NAS bug-fix patch
230
- new (good) MPEG 2.5 tables (from Niklas Beisert)
231
- added WIN32 support from Tony Million
232
- added some bug fixes from Niklas Beisert
233
- fixed another ugly bug in layer3 dequantize (wrote over the border
235
- a minor HPUX clean up
236
- added BSD patch from Kevin Brintnall <kbrint@visi.com>
237
- added Makefile.win32
238
- added NAS big endian fix
243
- simple equalizer support (to be continued)
244
- added NAS patch from Martin Denn <mdenn@unix-ag.uni-kl.de>
246
- added pentium optimized decode_i586 from Stefan Bieschewski <stb@acm.org>
247
- fixed a bug in MS dequantize function
252
- fixed "Accept" header in httpget.c
253
- fixed buffer overflow (causing core dumps) in httpget.c
254
- fixed display of song length
255
- fixed -b (buffer) problem on SGI / IRIX -- it definitely works now
256
- fixed problem when files with different sample rates where played,
257
it now works with -b (buffer), too
258
- fixed order of local variables in decode.c to work around a
259
compiler bug in ultrix
260
- fixed Makefile for ultrix
261
- reverted to old getbits.s (the new one could cause coredumps)
262
- more compact MPEG header display in non-verbose mode
263
- small fixes in buffer code and elsewhere
268
- added sajber jukebox control interface (it's currently a big hack)
269
(see 'JUKEBOX' file for more)
270
- added simple rewind facility .. (only used by sajber interface at the moment)
275
- added front-end (remote) patch from "Brian J. Swetland" <swetland@uiuc.edu>
276
- added OS2 patches from Niclas Lindstrom <nil@wineasy.se>
278
- added patches from Leo Broukhis <leo@zycad.com>
279
- added shuffle patch from Tillmann Steinbrecher <tst@gmx.de>
280
- added i386-getbits from M.Stekelenburg <m.stekelenburg@student.utwente.nl>
281
- added fallback to 8bit if no 16bit samples support (currently linux only)
282
- added (slightly changed) outburst patch
283
from Antti Andreimann <anttix@cyberix.edu.ee>
284
- added 'http accept' patch from Hur TaeSung <saturn@arari.snu.ac.kr>
285
- fixed buffer mode bug
290
- added '--8bit' option to force 'ULAW 8 BIT' playing
291
- pcm buffer type changed to 'unsigned char *'
292
- plays 2:1 and 4:1 with the real frequency (ie 11025/22050 instead
294
- program (re)sets (changed) frequency for every frame
295
- buffer mode is broken
300
- added support for MPEG 2.5 (it's a HACK!) .. mpg123 understands and plays
301
2.5 but it does it wrong. (you will hear this!)
302
- Fixed wrong values in BandInfo struct for 32kHz mode
303
- Some performance improvements and minor changes and bug-fixes.
304
- Tried the new imdct from the maplay1.2+ (version 1.81) package. (but
305
it was slightly slower on my system, currently disabled)
310
- HP-UX audio fix (provided by Damien Clermonte)
311
- Buffering (-b option) hopefully fixed. Please test!
316
- added Audio MPEG 2.0 support (but near untested) (MH)
321
- minor modifications to dct64_i386.c
322
- removed duplicated dependency 'dct64.o' in Makefile
327
Another complete rework of the buffer system (-b option)
328
(normally uses mmap(), but it can also use SYSV-ShMem because
329
mmap() is broken on linux).
333
extracted dct64() from decode*.c files.
334
some changes to dct64() and decode*.c to allow auto-increment/decrement
335
removed bit-counter in getbit-functions. Layer3 part2 now counts it itself.
339
Bugfix: not closing the audio device caused a few samples to be lost.
340
Bugfix: audio_set_rate() was not called (!?!).
341
Additional command line options "--doublespeed" and "--halfspeed"
342
(couldn't find better names). See the manpage.
343
Complete redesign of command line options. See the manpage.
344
Changed the buffer algorithm (-b). I'm not sure whether it's better
346
Supports multiple files on the command line. Pressing Ctrl-C will
347
skip to the next MPEG file, pressing it twice within one second
348
will abort mpg123 completely. See the "INTERRUPT" section in the
350
Support for http URLs. See also the -p option in the manpage.
351
Support for list files. See also the -@ option in the manpage.
355
Put the downsampling code together with the full
356
quality decode into one binary. (new options -2to1,-4to1)
357
Optimizations in the dct12.
358
Removed the 'int' version.
362
Additional command line option "-rs" to try to resync on
363
"broken" MPEG streams (now called "--resync" or "-y").
364
Additional command line option "-b" to use audio output buffering.
365
See the manpage for additional information.
366
Changed a few variable names and some other minor fixes, so the
367
source compiles more cleanly (without warnings) on most
368
platforms (for example, the FreeBSD port compiles without
369
warnings using "-Wall -ansi -pedantic").
370
Makefile changes: moved "solaris" to "solaris-gcc", new target
371
"solaris" (using Sun's SparcWorks cc, faster tha gcc!), new
372
targets "aix" and "generic".
376
removed some obsolete code from layer3.c (MH)
377
changed scalefac stoing in layer3 (MH)
378
decode_4to1.c added again. Renamed decode_lp.c to decode_2to1.c (MH)
379
(both not optimized .. still expterimental)
380
Minor cleanups and optimizations in layer3. (MH)
381
Removed some (probable) minor bugs. (MH)
382
Changed 2**(...) scaling (and omitted a few muls) (MH)
383
Changed Makefile (OF)
384
Changed dequantize to reorder with a mapping table
385
(you can disable this by undefining MAP in layer3.c) (MH)
386
removed the 'dummy' scale step for mixed mode (MH)
387
Changed copy policy (MH)
388
Modified dequant-reorder-mapping (MH)
392
Minor changes in the documents ..
393
huffman.c: x->len,y->len removed .. always '15' for the important cases
394
audio.c: some additions to the SOLARIS audio code
400
Renamed SPARC10 to SUNOS (which is more appropriate).
401
Tested with SunOS 4.1.4 on a SPARCstation SLC, 20 MHz
402
(322% CPU, so no realtime decoding).
403
Added SOLARIS. Tested with Solaris 2.5.1 on an Ultra 1,
404
167 MHz (14% CPU), a SPARCstation 5, 110 MHz (47% CPU),
405
and a SPARCstation 10, 33 MHz (68% CPU).
406
Added FreeBSD. Tested with 2.1.7 on a Pentium-90 (38% CPU)
407
and 2.2 on a Pentium-166 (20% CPU).
408
Added Digital Unix. Tested with DU 3.2 on a DEC 3000/500
409
(Alpha AXP 150 MHz, 33% CPU). Does not support DEC's
410
audio interface ("AudioFile"), decodes to stdout only.
411
Improved "clean" target to remove core files and editor
413
Added "install" target.
414
Added "dist" target to create a .tar.gz file of the source
417
In the distributed Makefile, all system sections are
418
commented out. When you type "make" without uncommenting
419
one of the sections, an appropriate error message will
424
Fixed problem when opening /dev/audio on Solaris:
425
I had to remove O_NDELAY, because writing to /dev/audio
426
didn't block until the requested number of samples
427
could be written, but instead it wrote only as much
428
samples as it was able too. Sounded funny. Removing
429
O_NDELAY fixed the problem. I don't think that it
430
hurts SunOS either, so I didn't make another #ifdef.
434
Fixed bug by adding function finish_output():
435
The decoder writes the audio samples into a buffer, and
436
each time the buffer is full, it is written to the
437
audio device (or to stdout). But when the decoding is
438
done, there are some samples left in the buffer which
439
aren't written yet -- they were just discarded.
440
This additional function fixes the problem by writing
441
the remaining samples from the buffer. It is called
442
immediately after the main frame loop in mpg123.c.
446
Fixed compiler warning on symbol "div":
447
Some compilers issue warnings because the symbol div is
448
already used for something else (see "man div"), so I
449
changed it to "divv".
454
Moved the declaration for audio_play_samples into
455
mpg123.h. Makes the code cleaner.
457
I moved the variables pcm_samples and pcm_point to
458
common.c, so they are shared between all modules. This
459
was necessary because the finish_output() function
460
(see common.c above) needs to access them.
462
Renamed loop variables "i" and "j" to "k" in order to
463
fix compiler warnings for duplicate/hidden symbols
464
(similar to "div" in decode*.c, see above).
466
Changed the preprocessor symbol AUDIOBUFSIZE into a
467
global variable "audiobufsize". This makes it possible
468
to change it by a command line option.
472
Fixed error in function I_step_one, second parameter:
473
unsigned int scale_index[2][] --> ...[2][SBLIMIT]
474
This caused an error with the DU compiler (which is ok,
475
because [2][] is incorrect according to ANSI). I don't
476
know whether [2][SBLIMIT] actually works correctly (I
477
have no layer-1 streams to test it), but at least it
478
compiles without error, and it appears to be correct
479
(looking at the rest of the source). Heaven knows why
480
gcc doesn't issue an error, and what it actually makes
485
A simple manual page. Type "nroff -man mpg123.1 | more"
486
to view it, or install it in /usr/local/man/man1 (this is
487
done automatically by "make install").
491
New boolean variable "quiet":
492
If this variable is set to TRUE (command line option
493
-q), no messages are printed.