11.25.6 2------ 3- Hotfix for bug 255: Overflow reading frame data bits in layer II decoding. 4 Now, all-zero data is returned if the frame data is exhausted. This might 5 have a slight impact on performance, but not easily measurable so far. 6 71.25.5 8------ 9- Avoid another buffer read overflow in the ID3 parser on 32 bit platforms 10 (bug 254). 11 121.25.4 13------ 14- Better configure checks for i?86-apple-darwin (bug 253). 15- libmpg123: 16-- Prevent harmless call to memcpy(NULL, NULL, 0). 17-- More early checking of ID3v2 encoding values to avoid bogus text being 18 stored. 19 201.25.3 21------ 22- libmpg123: 23-- Better checks for xrpnt overflow in III_dequantize_sample() before each 24 use, avoiding false positives and catching cases that were rendered 25 harmless by alignment-enlarged buffers. 26 271.25.2 28------ 29- libmpg123: 30-- Extend pow tables for layer III to properly handle files with i-stereo and 31 5-bit scalefactors. Never observed them for real, just as fuzzed input to 32 trigger the read overflow. Note: This one goes on record as CVE-2017-11126, 33 calling remote denial of service. While the accesses are out of bounds for 34 the pow tables, they still are safely within libmpg123's memory (other 35 static tables). Just wrong values are used for computation, no actual crash 36 unless you use something like GCC's AddressSanitizer, nor any information 37 disclosure. 38-- Avoid left-shifts of negative integers in layer I decoding. 39 401.25.1: Hot Fuzz 41------- 42- libmpg123: 43-- Avoid memset(NULL, 0, 0) to calm down the paranoid. 44-- Fix bug 252, invalid read of size 1 in ID3v2 parser due to forgotten 45 offset from the frame flag bytes (unnoticed in practice for a long 46 time). Fuzzers are in the house again. This one got CVE-2017-10683. 47-- Avoid a mostly harmless conditional jump depending on uninitialised 48 fr->lay in compute_bpf() (mpg123_position()) when track is not ready yet. 49-- Fix undefined shifts on signed long mask in layer3.c (worked in practice, 50 never right in theory). Code might be a bit faster now, even. 51 Thanks to Agostino Sarubbo for reporting. 52 531.25.0: MP3 now patent-free worldwide! 54------- 55- Silence test for artsc-config if it is not there. 56- Make sure -static-libgcc from LDFLAGS gets through libtool, 57 fixing 32 bit Windows builds (depend on libgcc DLL otherwise). 58- Fix build with non-GNU make by using plain rm -f instead of silly $(RM) 59 in libout123/modules makefile fragment. 60- Make build work on iOS, including coreaudio backend. 61- libmpg123: 62-- Finally provide position-independent code for x86 with assembly 63 optimisations.The textrels are gone thanks to Won Kyu Park and Taihei Momma. 64-- Clarify some license language in files descending from the original MMX 65 optimisation. 66-- Fix return value overflow check for MPG123_BUFFERFILL. 67-- Introduced mpg123_getformat2() to enable the FORMAT command 68 for the generic control not stealing MPG123_NEW_FORMAT from the main 69 playback loop. The sequence LOADPAUSED-FORMAT-PAUSE (play) is supposed 70 to work now. 71-- Enable aarch64 optimisations on *BSD by default, too. You can always 72 override that stupid OS whitelist using --with-optimization, anyway. 73-- Use of the i486 decoder is now discouraged more prominently, in configure 74 output. 75- out123: Fix stupid crash with verbose mode and tone generation (print 76 the string if the pointer is non-null, not if it is null). 77- libout123: More consistent error messages for dynamic and legacy 78 (built-in) modules. Namely, you get a hint how if you choose a different 79 module than the built-in ones for a static libout123. 80 811.24.0: 82------- 83- Avoid repeating genre in metadata printout for specifications like 84 (144)Thrash Metal. 85- In remote control mode, only enforce --quiet if no verbosity was required. 86- Prevent --loop and --shuffle or --random from messing with the remote 87 control LOADLIST command (printout of the list would loop without reason). 88- Fix the mpg123 command (esp. our provided binaries on Windows) to now find 89 modules again relative to the executable directory, not the current working 90 directory. This was a regression in 1.23 and might be security-relevant if 91 you called mpg123 in working directories with untrusted content. 92 Note that mpg123 1.23 looked for modules relative to the current working 93 directory only if the installation prefix for modules did not exist. 94 So, usage on an intact installation (with /usr/lib/mpg123 or the like) was 95 safe. Nevertheless this new version fixes the search to be relative to the 96 binary path as it was with 1.22 and before. 97- At least consistent behaviour of playlist code in the face of looping. 98 Looping is about individual tracks, always. They are looped also in random 99 mode. Jumping (prev/next keys) is between tracks and resets the loop counter. 100 The display of currently playing track in the playlist is fixed for random 101 and looped play now (bug 198). 102- Looping is now mentioned for a to-be-repeated track with --verbose. 103- Move some compiler nagging from --enable-debug to --enable-nagging, fix up 104 some new build failures by adding some pesky feature test macros. 105- Try not to pollute the terminal buffer with old progress bars in inverse 106 video. Only the currently live one shall be seen. That one is pretty. The 107 others are not. 108- Using plain dlopen()/LoadLibrary() for opening modules instead of libltdl. 109 This also means that --with-module-suffix is gone in configure. 110- Windows builds only work when Unicode support is there (older than Windows 111 2000/XP will definitely not work anymore). 112- The out123 tool now features tone generation, with a mix of differing 113 wave patterns. Makes sense to be able to test the audio output by itself, 114 and it's fun. See --wave-freq and related parameters. 115- libmpg123 version 43: 116-- Add flags MPG123_NO_PEEK_END and MPG123_FORCE_SEEKABLE, as suggested 117 by Bent Bisballe Nyeng. 118-- Build fix for MSVC (consistent definition of ssize_t, spotted by manx, 119 bug 243). 120-- Build fix for --with-cpu=ppc_nofpu (thanks to Michael Kostylev, bug 244). 121-- Add asm optimized MSVC++ Win32|x64 and UWP|x64 builds 122-- Remove old, broken MSVC++ builds 123- libout123 version 2: 124-- Added OUT123_BINDIR. 125-- New search order for output plugin directory: MPG123_MODDIR, or (relative 126 to executable directory OUT123_BINDIR) ../lib/mpg123, plugins 127 libout123/modules/.libs, libout123/modules, ../libout123/modules/.libs, 128 ../libout123/modules, and at last the installation prefix $libdir/mpg213/. 129 This shall ensure that a build inside a source tree does not try to use old 130 modules from the system prefix. The normal libtool wrapper deals with the 131 shared libout123 or libmpg123 only, not modules. 132 Note that if you set MPG123_MODDIR to a non-existing directory, no modules 133 will be found (earlier versions fell back to other choices). 134-- The OUT123_NAME parameter is now copied by out123_param_from(), as is 135 the newly added OUT123_BINDIR. 136-- Coreaudio: Use AudioComponents API on OSX >= 10.6 (thanks to Michael Weiser). 137-- Coreaudio: Fix behaviour of out123_drop(), not killing the output anymore 138 without re-opening the device (bug 236, thanks to Taihei for the fix). 139 1401.23.8 141------ 142- Fix long-standing bad memory read (via integer underflow) in ID3 parser 143 for crafted ID3v2 tags with tiny size information (bug 240). Thanks to 144 Han Lee & Jerold Hoong for the detailed report. 145 1461.23.7 147------ 148- Fix the bad RPM spec file (broken since out123 addition, thanks 149 to Srikanth Rao for noticing). 150- More out123_pause() in generic control mode, working around 151 bug 236. The coreaudio output needs to be more robust, though. 152- Do not undef MPG123_EXPORT in the headers, rather be prepared for it 153 being defined already. This fixes MSVC builds, broken since 1.23.0 154 (bug 239). 155 1561.23.6 157------ 158- call out123_pause() instead of out123_stop() in remote control STOP 159 command, fixing the regression in 1.23.x of not being able to resume 160 playback with another LOAD unless the new track has differing audio 161 format (bug 234) 162 1631.23.5 164------ 165- libout123: 166-- fix build of portaudio and SDL on win32 (too many parentheses, 167 thanks to Sandro Cumerlato for pointing it out) 168-- make out123_errcode() return OUT123_BAD_HANDLE as documented 169 (adding that value to the error enum, was documented but missing), 170 again thanks to Sandro 171- fix windows-builds.sh (shell quoting in copying stage) and add some 172 bits to shipped header to make it directly usable in MSVC (define ssize_t, 173 bug 232) 174- no overwriting of LIBS in Makefile (build system regression in 1.23, 175 thanks to Peter Korsgaard for reporting that one) 176- no printing of message in response to SIGPIPE, as that could trigger 177 a hang if stderr itself is the piped culprit (regression from 1.22, bug 233) 178 1791.23.4 180------ 181- mpg123: Fix logic of prebuffering small bits for glitch-free start of 182 playback. The logic as introduced in 1.23.0 actually introduced stuttering! 183 The fix for this is really minimal and I urge everyone to at least include 184 that one. It is the changeset of rev. 4041. 185- libout123: 186-- Actually make OUT123_KEEP_PLAYING on by default, as documented. 187-- Fix buffer logic with regard to draining, use common device writing 188 code to handle resuming from pause. This fixes sdl output with buffer, 189 possibly other sfifo-based outputs like CoreAudio (those were poorly 190 tested with buffer, as the combination is indeed unusual, see bug 230). 191-- Buffer pauses devices for prebuffering, to avoid underruns. 192-- More reliable playback with SDL, Portaudio and CoreAudio outputs. 193 This includes FIFO draining on close to avoid dropping of the end. 194 It should fix parts of bug 230. 195-- Fixed memory leaks with some outputs where a call to the deinit() 196 function is necessary during available/working module checking. 197- mpg123, out123: Use the default output flags to get OUT123_KEEP_PLAYING. 198 Without this, there is a good chance to abort on SIGSTOP/CONT while playing. 199 This is a regression from 1.22 . 200- Build fixes (bugs 227 and 228) and some build system hackery. 201 Gone are libc feature test macros in compat.h . This means always 202 using our own strdup() implementation. Simpler than being bugged by 203 feature test macros in strict compiler mode (when _DEFAULT_SOURCE is not 204 defined). 205- ./configure --enable-nagging does something also without --enable-debug, 206 explictly triggers -std=c89, too (hence the above). 207- Some fixup to make things work in pedantic C89 mode again. 208 It really might be time to swich on some serious C99 for the next release, 209 since there's a followup standard to _that_ which we can ignore now. 210- Update list of renamed internal symbols to reduce conflicts during static 211 linking of libmpg123 or libout123. 212- Internal compatibility functions now handled via libtool convenience 213 archives, avoiding the hackish code copies. 214 2151.23.3: 216------- 217- mpg123: Man page fixes by ESR. 218- Actually check for sys/select.h (again?) in configure so that it is used. 219 Fixes build on a Cygwin install, at least. 220- libmpg123: Always default to enabled IEEE 754 hack for rounding on all 221 platforms, use ./configure --disable-ieeefloat if you do not want it. 222 As a protection for the exotic machine that does not use IEEE floating 223 point storage format, mpg123_init() will error out early if the rounding 224 does not work out. 225 2261.23.2: 227------- 228- mpg123: Fix compact ID3 tag printing to take UTF-8 character count 229 into account again (thoughtless regression in 1.23.0). 230 2311.23.1: 232------- 233- libout123: 234-- Fix logic to prevent cases of output devices being closed more than once 235 (stop after pausing triggered multiple close calls, which broke sndio, for 236 example). 237-- Fix JACK output handling of port wishlist, was simply broken for more than 238 two ports (-o jack -a port1,port2,port3). Now, it is ensured that each 239 output ports gets some connection to an out123 channel, possibly splitting 240 one to multiple ports or mixing multiple channels into one port (cyclic 241 connection scheme). Note that this does only apply for an explicitly given 242 list of ports. You can still use --stereo to ensure that two output ports 243 (if found) are used also for mono tracks. 244-- Also use jack_free() in JACK output for ports list. 245-- And finally, ensure that pthread library is linked to JACK module (would need 246 hacking to work on non-POSIX, replacing sem_t with equivalent). 247 248- mpg123: 249-- Hide networking-related command-line parameters when disabled. 250 2511.23.0: 252------- 253- libmpg123 version 42 254-- This adds mpg123_framelength() and makes mpg123_position() truly obsolete. 255-- Equalizer optional now (./configure --disable-equalizer) to save precious 256 memory 257-- Clip decode tables for large amplification with fixed-point decoders. 258 Without that, high-pitched distortion enters really quickly when 259 trying to increase volume even if output samples would not be clipped, 260 weren't it for fixed-point math. 261- libout123 version 1: First incarnation of libout123, a basic library to 262 get audio data written to audio devices (or files) in simple blocking 263 manner as opposed to callback APIs (which it wraps over). This collects 264 the output modules of mpg123 and makes them available to the wider 265 masses. Also, the separate shared memory buffer process (contained 266 in libout123) got a lot of reworking which should be noticable in the 267 interaction with terminal control. 268-- Some tuning of several output drivers (modules) regarding flexible 269 buffer size, client names, supported formats. 270-- Notably the JACK output got a major overhaul and now does not swallow 271 audio at the end anymore. Huge latency also reduced and tunable. Encoding 272 fixed to floating point, so that libmpg123 actually chooses what is 273 sensible. 274- Added mpg123 --no-infoframe. 275- Detect terminal on input side and enable control keys automatically. 276 There is --no-control now to disable terminal control anyway. 277- Display stuff: 278-- Avoid spillover of status line that caused unwanted terminal scrolling. 279 If the terminal width is smaller than the full status string, a cut is 280 made to make it fit. 281-- Draw a progress bar on the terminal by inversing colors behind status 282 line. 283-- Rework the format of the status line to be more compact and consistent. 284-- Rework smart tag printout for adapting to terminal width. 285-- Warning messages also start with a line break now to better fit in with 286 verbose playback. 287-- Doubly-verbose mode now needed for long MPEG header print out. 288 It is a higher level of verbosity than printing the current position. 289 The compact header is a better fit. 290-- Compact header printout also compacted, example: 291 MPEG 1.0 L III cbr128 44100 j-s 292-- Reporting of clipped samples also includes a line break now. 293-- Keep ID3v2 data around for terminal control to be able to print on 294 demand. That was broken for some time. 295- Default for --preload now is 0.2 instead of 1 (fill whole buffer before 296 playback). The maximum is 0.5 . This is mandated by corrected buffer 297 interaction in libout123. 298- Improved interaction with buffer process in terminal control mode. 299 Seeking is more transparent now, taking dropped samples from buffer into 300 account to avoid unintended jumps. Direct seeks with number row do not 301 pause playback anymore. 302- Silently skip APE tags (thanks to Hans de Goede). 303- Some reduction in bitrot on AIX (typos in output module, build with 304 --disable-largefile --with-audio=aix, real test welcome). 305- Added '[' and ']' keys to skip to previous/next directory in playlist. 306- Added support for Haiku to configure script (thanks to Jerome Duval). 307- Remove spurious Frankenstein warning when scanning files that have no 308 gapless info (the reported value of -1152 gapless sample length should be 309 a giveaway anyway). 310- Fix a bug in the command line parser that was present from the beginning, 311 apparently, causing certain parameters (--au, --cdr) to kill off parsing 312 of following ones. Nobody complained in all these years. Astounding. 313- Forget content type from HTTP redirects (relate to error pages, not the 314 stream redirected to), fixes web radio streams that do not send any 315 content type for the actual stream. 316- Accept application/pls+xml for PLS playlists. It happens. Don't ask 317 mpg123 to actually parse any XML! 318- Ignore whitespace after HTTP MIME types (esp. before a ";"). 319- Added --name to mpg123 and out123 for providing client name p.ex. for JACK. 320 There is no default of appending the PID to "mpg123" as client name anymore, 321 just plain "mpg123" or "out123". 322- Added --devbuffer to mpg123 and out123 for influencing device buffer and 323 possible latency a bit (perhaps more so in future when drivers are adapted 324 to pay more attention to that). 325- Added out123 --channels <n>, --list-encodings, --test-format, 326 --test-encodings, --query-format. 327- Calling ./configure --enable-nagging does not include --enable-debug anymore, 328 you specify that separately. 329- Fix for newer glibc that wants higher POSIX feature test for getaddrinfo() 330 stuff. 331 3321.22.4: 333------- 334- Fix stupid regression introduced with a bugfix in 1.14.1 to make 335 free format streams work again. It took 3 years for someone to notice. 336 I added a regression test for that now! 337 3381.22.3: 339------- 340- Fix UTF-16 surrogate detection because that used to falsely detect 341 characters above 0xDFFF as surrogates (bug 216). 342 3431.22.2: 344------- 345- Fix buffering for funny sample formats (namely, 24 bit), that do not 346 fit nicely into 32768 bytes. Effect was a nasty endless loop where 347 mpg123 needs to be externally killed. 348 3491.22.1: 350------- 351- Fix mpg123-id3dump when writing images with funny (manipulated) MIME type. 352 Stupid mistake in length computation of the fallback file extension caused 353 junk from memory being appended to the filename if the pointer size 354 is less than 64 bit. For 64 bit pointers (or longer) it was correct by 355 accident. 356- Fix pedantic build by cleaning up out123 source, also now really showing 357 the encoding list in --longhelp instead of possibly, again, writing junk 358 from memory in there. 359- Not linking libmpg123 against libltdl anymore (bug 215). 360- Update MSVC++ ports a bit to make them work again. 361 3621.22.0: 363------- 364- libmpg123 version 41 365- Build fix: Avoid name clash on OSX SDK with "normal" being defined in 366 an enum already. 367- More resilience against folks who do not check errors and rather pass 368 NULL pointers around (see NEWS.libmpg123). 369 This changes some return values to MPG123_BAD_HANDLE instead of MPG123_ERR 370 (always check for != MPG123_OK). 371- Fix WAV writing to stdout on Windows (bug 214). 372- Rework Xing/Info/Lame tag parsing, also detecting short ones without 373 the TOC now. 374 In addition, the warning about file size being off is a _lot_ more 375 accurate now. 376 3771.21.0: 378------- 379- Use LL as shortcut for LOADLIST remote command, L is taken already (bug 210). 380- Less namespace pollution (MPG123_EXPORT in header instead of EXPORT, bug 212). 381 3821.20.1: 383------- 384- Make feed reader more efficient when skipping junk by early discarding 385 of data from buffers to avoid re-parsing. 386 3871.20.0: 388------- 389- Added NEON optimized decoder for AArch64 (ARM 64bit environment) 390-- enabled for --with-cpu=neon64 (NEON only) or --with-cpu=aarch64 (runtime 391 switch between neon and generic_fpu, like arm_fpu) configuration 392-- compatible with aarch64-linux-gnu toolchains (from Ubuntu, debian) 393 and Xcode 5 394- Added new binary out123 only with the audio output part of mpg123. 395 This is a precursor to separating out said code into a simple audio 396 output library. It also allows plugging in some processing in a pipe 397 before feeding to output. 398- Prevent opendir(NULL) for unknown module directory when listing modules. 399- some build fixes, among those fixing mpg123-id3dump on Windows 400 4011.19.0: 402------- 403- libmpg123 version 40 404- Support float and 32/24 bit integer output also with fixed-point decoders 405 (conversion from 16 bit precision). 406- A-Law output encoding is actually implemented now (Michael introduced 407 the encoding back in the old days without ever implementing theconversion 408 table, apparently). 409- Added --with-cpu=arm_fpu as decoder choice for runtime switch between 410 plain fpu code and NEON. 411- Fix ARM builds to work properly on debian systems without special CFLAGS 412 (NEON decoder, specifically). 413- Make scripts/benchmark-cpu.pl check the return value instead of delivering 414 crazy timings for crashed mpg123. 415- Trigger track initialization in mpg123_info() to avoid use of uninitialized 416 variables (watch out for MPG123_NEED_MORE return value!). 417- Fix integer code to 32 bit numbers where it would waste 64 bit on 418 modern systems. 419- Add non-executable stack marking also to ARM assembly. 420 4211.18.1: 422------- 423- Do not close buffer twice with mpg123 -R (delete outdated code in 424 control_generic(), fixing bug 207. 425- Do not mess around with first command line argument to extract program 426 name, use a copy instead, fixing bug 205. 427- Prevent premature exit on timing of failure to open a track in the 428 playlist and the user wanting to skip over it (bug 206). 429- Fixup of HTTP socket mess, also avoiding unnecessary FILE objects (bug 430 204, patch by Rajeev V. Pillai). 431- Fix playlist behaviour on slow HTTP streams, jumping back ('d' key) 432 from first track stays at first track (thanks to Rajeev again, sub-bug of 433 bug 206). 434- Fix Frankenstein check not to stumble over ID3v1 tags. My apologies. As 435 a bonus, the position of the concerned code in the parser is now far 436 more logical. 437 4381.18.0: 439------- 440- libmpg123 version 39 441- Big version increase for clear distinction regarding the 1.14.x regression 442 fixes in libmpg123. 443- Regression fix: Ensure decoder reinitialization on combination of seek 444 and resync (buffer overflow bug 201, introduced in 1.14.1). 445- Regression fix: Make parsing really end on reaching of junk limit 446 (introduced in 1.14.4). 447- Add check for bad bit allocation value in layer I decoder (removes 448 audible glitch in bug 201 test file). 449- Avoid wrong error message about Frankenstein streams when gapless 450 decoding disabled. 451- Be verbose about big header changes (Frankenstein streams). Note that 452 changes in samples per frame will confuse the seeking code, but decoding 453 can get through. 454- Actually use the full routine to close tracks. Avoids socket leak when 455 playing multiple HTTP streams from a playlist (bug 203). 456- Send correct host header when connecting through HTTP proxy (bug 202, 457 figured out by Rajeev V. Pillai). 458- The console application now informs about changed major stream properties 459 (prints out another header line). 460 4611.17.0: 462------- 463- mpg123-id3dump --no-scan; for speedup 464- hide -C parameter from mpg123 --help when it is not supported 465- added tinyalsa Output (by Jarno Lehtinen) 466- build system tweaking 467- some care for fixing Cygwin builds 468 4691.16.0: 470------- 471- Taihei strikes again: 472-- New Huffman decoding scheme (configurable, on by default) brings nice 473 boost to mpg123 to make it the fastest decoder on modern CPUs again. 474-- new AVX decoder 475-- assembly-optimized DCT36 for SSE and AVX 476- added configs for vintage 3DNow(ext) CPUs (AMD K6) utilizing assembly DCT36 477- added configs for vintage SSE CPUs (Pentium M), utilizing C DCT36 478- added FORMAT command to generic control 479- added support for ID3v2 APIC frames 480- added mpg123-id3dump as official companion to extract meta data 481 (including writing of album art from APIC to files) 482- added mpg123-strip as official companion to strip dirt out of MPEG streams 483 (including meta data) 484- not deleting ID3 data right after printing in generic control 485- module loader a bit more flexible with relative MPG123_MODDIR 486- Fix chopped-off playback with pulseaudio output: draining the output 487 now on closing. 488- SDL output fixup, a) not chopping off end and b) non-fatal underrun 489- Fix obvious errors in win32 output ... does it now play the end of 490 tracks? Need someone to test this. 491- added support for screen and iris-ansi terminals with --title (as prompted 492 by patch from sf.net user canavan) 493- fixes/enhancements for sgi audio output 494- libmpg123: proper largefile aliases for proper systems (FreeBSD with 495 one one-and-only off_t 496 This enables client software that insists on defining pointless 497 _FILE_OFFSET_BITS. 498- wrapper script src/mpg123-with-modules to ease the pain of running mpg123 499 with modules without installation (setting MPG123_MODDIR) 500- removed ALSA 0.5 code (unused for longtime, last GPL-only bit) 501 5021.15.4: 503------- 504- Writing CDDA data via --cdr works again; had also been broken by attempts 505 to catch failing writes because of full disk. 506- Also, the return values of WAV/CDR writing routines now properly indicate 507 error to avoid stupid endless loop of "smart" audio writing code that wants 508 to handle interruptions. Really, --cdr could just go and nobody would miss 509 it ... 510- Fix stupid bug in mpg123_chomp_string() (introduced in 1.15.1), empty 511 lines were badly treated. Only usage in mpg123 is for parsing HTTP redirect 512 headers; malicious HTTP servers might exploit that (possibility to zero 513 bytes in memory). 514- some cleanup for nagging mode 515- more resync strictness to really catch (all) cases with changing decoder 516 structure; in practice badly needed when disabling seekbuffer (so it's 517 your fault, somehow ...) for non-seekable streams, otherwise not really 518 an issue because of readahead checking 519 I repeat: This fixes possibly fatal behaviour in the parser when readahead 520 checking is explicitly disabled (p.ex. via mpg123 --no-seekbuffer on 521 http streams). By default, readahead checking is _always_ active! 522- build system fixed for automake 1.13 (thanks to Nix) 523 5241.15.3 525--- 526- Fix WAV writing. AGAIN. People love to decode WAV to stdout in various 527 ways that started to get broken with me starting to care for people who 528 like to write to full disks. I frikkin' HATE this rat race! I'm even 529 starting to SHOUT. Now, the code prefers to write no header at all (when 530 there is no actual output) instead of possibly writing too many misleading 531 ones. Getting the blame for breaking dir2ogg repeatedly while trying to 532 cope with one fatal situation that you cannot really cope with sucks. Big 533 time. I hope that's it now! 534 5351.15.2: 536------- 537- build fix with older shells (== in configure) 538 5391.15.1: 540------- 541- libmpg123 API version 37 542- Fix corner case in HTTP communication with missing path in Location header 543 (bug 187). 544- Prevent nasty alignment issues by not guessing about assembler alignment 545 when .balign is available (bug 188). 546 5471.15.0: 548------- 549- Added --continue (also see scripts/conplay). 550- Added number row to terminal control keys for 10% jump points (for 551 navigating long tracks). 552- Set xterm title always if asked, disregarding the -q switch (if you want 553 fully quiet, don't specify --title). 554- Enable terminal mode in OS/2 by explicitly checking for and using 555 os2term library. 556- Getting WAV/AU/CDR writing back to a sane state while still catching 557 out-of-disk when writing headers (none in case of CDR) but removing 558 that initial test that prevented writing on any non-seekable file (like, 559 /dev/stdout to a pipe). 560- Added native audio output for QNX (thanks to Mike Gorchak), also improving 561 portability of configure script while at that. 562- more robust recovery from ALSA issues (device suspend) 563- Fix crash in module loader on *BSD. 564- Extend time display to switch to hours above 60 minutes (hh:mm:ss, 565 ditching the sub-second precision) 566- really include dithering in default x86-64 build. 567- Fix mpg123_scan() not properly seeking back for all types of files (bug 568 3582628 ... it got a different number on sf.net now ... brilliant, folks!). 569- Prevent false positives for "Frankenstein!" when using mpg123_scan(). 570- Fix printing of negative positions with buffer (bug 186). 571- Accept application/x-scpls as additional MIME type. 572- Try to handle certain Windows toolchains that miss EOVERFLOW. 573 5741.14.4: 575------- 576Who reworks a parsing and data mangling without really making sure that 577things still work like before? I hope I won't do so in future. Not again. 578 579- Fix resync logic to properly work again (used to prematurely end stream 580 on bad headers). A regression again, this sucks, but at least we got a 581 regression test for that now. 582- Fix aeon-old regression (since 1.11.0) about short seeks: Bit reservoir 583 was reset also for short seeks that did not break continuity. 584- Another damned regression got fixed: Sample-accurate seek for files 585 without full gapless info. 586 5871.14.3: 588------- 589- Fix regression from 1.14.1 in parsing of bad free format streams, 590 avoiding apparently endless loops (just very slow reading, in fact). 591 5921.14.2: 593------- 594- Fix writing of WAV to stdout. 595 It is still not the best of ideas to do so, though. At least make sure 596 to fix rate and channels. 597 5981.14.1: 599------- 600- Fix subtle bug that could trigger failure to detect a format change on 601 resync when using libmpg123's feeder API. 602 That bug has been there since ages but was neutralized by other (buggy) 603 behaviour of the parser before the little overhaul. The Law of an Even 604 Number of Bugs. 605 6061.14.0: 607------- 608- libmpg123 API version 36 (see NEWS.libmpg123) 609- Add --ignore-streamlength. 610- But also deal with concatenated (Frankenstein) streams: Not applying 611 gapless cutting once we're over the announced number of frames. 612- Also, gapless cutting is only applied if relevant information is 613 present. Previously, at least the decoder delay has been cut. 614- Add --lyrics for printout of lyrics (from USLT in ID3v2). 615- Added handling of SIGUSR1 and SIGUSER2 to terminal control code, 616 configurable via --ctrlusr1 and --ctrlusr2. 617- Some low-level API added (mpg123_framedata(), mpg123_framepos(), buffering 618 and resampling control). 619- Added info about input buffer fill to mpg123_getstate(). 620- ReplayGain: Try to detect LAME below 3.95 for the different reference 621 level of 83 dB (adding preamp of 6 dB). Version 3.95 itself (not 3.95.1) 622 I cannot detect. User-set gain values are not touched. 623- Keep silent about missing bit reservoir when ignoring frames. That is 624 the whole point (mostly;-). 625- Add the new/old WRITE_SAMPLE variant from MPlayer that makes the generic 626 decoder faster on older CPUs (x86 at least). Not on x86-64, though (it's 627 not enabled per default there). 628- disable 3DNow and 3DNowExt DCT36, which is slow on modern CPUs 629- Handle out-of-disk in the file writers (a bit, see 630 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259) 631- Added Xcode project files to build libmpg123 on Mac OS and iOS 632- 32 bit output for sndio output (patch by Brad Smith). 633- Remote control interface knows LOADLIST command now. 634- Now freeing meta data memory after printout. 635- Some documentation cleanup, including manpage fixes by quadrispro. 636- Re-enabled wildcard expansion on Windows (been broken by unicode file 637 name support). 638- Fix MMX tabinit syntax (thanks to Marcel Müller for pointing that out). 639- Fix SGI audio output (been broken since change to modules). 640- Fix some fringe behaviour (mpg123_getformat() triggering needless reading 641 of next frame, possibly hitting bogus MPG123_NEED_MORE). 642- Resync limit now also serves to increase amount of skipped junk on 643 beginning. 644- Better separation of stream end and read error (in case there is no 645 stream opened, even). 646- Don't always complain about failed free format header search (only with 647 verbosity level 3). 648 6491.13.8: 650------- 651- Fix build for ARM Thumb (incompatible assembly in some macros). 652 6531.13.7: 654------- 655- Fix endless loop in module loader when starting mpg123 in a directory 656 that does not exist. 657 6581.13.6: 659------- 660- Fix output of one random character in -vvv mode for ID3v2.2 frames 661 (no buffer overflow, move along, folks;-). 662 6631.13.5: 664------- 665- Fix reading of ReplayGain values from Lame tag (nobody seen this before?!) 666 (both actual values and the distinction between audiophile / radio). 667- Accept application/octet-stream as input from HTTP. 668- Update man page with encodings. 669- Build fixes. 670 6711.13.4: 672------- 673- Fix bogus error on resync with big offsets (hits systems that have bigger 674 off_t than int), bug 3393801. 675- Fix windows binary package build script again with plugdir. 676 6771.13.3: 678------- 679- Fix an endless loop on bad headers, bug 3267863. 680- Prevent compiler warnings about unused variables with gcc 4.6 . 681- Fix return value handling of getaddrinfo(), bug 3288333. 682- Make decwin size computation work for OPT_ARM and sizeof(long) != 4 683 (bug 3288360). 684 6851.13.2: 686------- 687- Updated .NET wrapper (MPG123_SKIP_ID3V2, encsize and mpg123_strlen 688 functions) by Malcolm Boczek. 689- Fix crash when calling mpg123_decoder() before opening a track -- a rare 690 use case since one can choose a decoder with mpg123_new() already. 691- Fix format change detection for certain (artificial) concatenated streams 692 (p.ex. MPEG 1 frames following MPEG 2 frames). 693- Prevent the nasty of bug 3154889: No change of pitch without a current 694 audio format. No proper solution, but more like earlier behaviour. 695- Fix some compiler warnings. 696- Fix a memory leak in the module loader, also some in the examples, 697 for being pedantic. 698- More use of AC_LANG_SOURCE to silence autoconf. 699 7001.13.1: 701------- 702- Fix --float and --8bit (MPG123_FORCE_FLOAT, MPG123_FORCE_8BIT) regression, 703 caused by introduction of 24 bit formats. (bug 3151597). 704 Btw: The use of specific format choice via `mpg123 -e f32` and friends 705 is encouraged (meaning mpg123_format_none() / mpg123_format() calls in 706 libmpg123 API). 707- Loosen the parser restrictions: Allow the private header bit to vary. It 708 is not mpg123's business anyway (finally suggested by Marcel). 709 7101.13.0: 711------- 712- libmpg123 API version 29 (see NEWS.libmpg123) 713- New optimization: ARM NEON (Cortex A series) -- kudos to Taihei, again! 714- Added 24 bit integer output (truncation of 32 bit integer). 715- Cleanup of symbols for the static library: Only have global symbols that 716 are actually needed, prefix them with INT123_ to avoid conflicts. 717- Added --streamdump to get a copy of the data libmpg123 used. 718- Added --icy-interval and tweaked libmpg123 to make playback of ICY stream 719 dumps possible. 720- Added possibility to set module file suffix at build -- to be able to 721 avoid .la files for plugins. 722- Removed compiler directives for alignment and disable associated tests. 723 The tests don't work on a wide range of compilers anyway, and newer gccs 724 do have force_align_arg_pointer to fix bad stacks. 725- There is no ChangeLog file anymore... it was autogenerated from subversion 726 log anyway, so look there if interested. 727 7281.12.5: 729------- 730- Fix bug with the new meta data printout of the mpg123 app; embedded 731 null bytes in UTF-8 strings in non-UTF-8 environment would trigger buffer 732 overflow. 733 Thanks to Jakub Bogusz of PLD Linux for the tip. And yes, shame on Thomas 734 for changing working string handling code. At all. 735 7361.12.4: 737------- 738- Fix formatting of meta data printout in UTF-8 (string length computing). 739 As a collorary, ID3v1 data is reduced to ASCII in UTF-8 environment, 740 as we do never know what specific encoding that has. 741 7421.12.3: 743------- 744- Fix a long-standing bug that subtly broke http streaming with ICY meta 745 data when reading a bit more quickly, like when using the buffer. 746 I was a very simple and embarrassing bug, actually ... and it made 747 me wonder how normal streaming still worked rather well, generally:-/ 748 Thanks to Lint for staying with us and reporting bug 3022850, to finally 749 get a grip on streaming reliability. 750 7511.12.2: 752------- 753- Fix for nasty memory corruption on configurations that hand out addresses 754 in the upper half of the memory space (the poiner alignment function broke 755 in that case, bug 2996045). 756- Various build and portability fixes (including making some exotic 757 configure switches work (again)). 758- Add dump_seekindex example 759- Sync mpg123_clr to 1.12 feature set, patch provided by Malcolm Boczek 760 And actually include it in release tarball! 761- Rework mpg123.h logic for large file stuff a bit, clients can control 762 it by defining MPG123_NO_LARGENAME or MPG123_LARGESUFFIX. 763- Include dumb wrappers to provide names suffixed with _64 on 64 bit 764 machines and _32 on 32 bit machines, respectively, to help clients that 765 insist on defining _FILE_OFFSET_BITS where it is not needed (or with a 766 non-large value). 767- Tuning of the internal buffer code for feeder mode to minimize its 768 performance impact (works in 4K blocks now). 769- Workaround for compiler bugs in Open64/PathScale/SunStudio (bug 3004396, 770 suggestion by Doug Gilmore). 771 Note that Sun Studio is still a tricky fellow, at least when it comes 772 to our preprocessed assembly. 773 Also, x86-Open64 recently produced another segfault in layer3.c on my 774 box... GNU and intel compilers are what one can use as something stable. 775- Make mpg123_getformat() return more error codes (like MPG123_NEED_MORE). 776- Fix handle I/O for clients with small file offset (32 bit when libmpg123 777 has 64 bit). 778- Fix 3DNow(Ext) standalone builds. 779 7801.12.1: 781------- 782- Update INSTALL for the dual-mode library. No code changes. 783 7841.12.0: 785------- 786Attention: This reverts the big bad libray name change. People did not 787like libmpg123_64.so at all ... so Thomas went along with proving that 788being responsible for a open source library package sucks for your life -- 789he coded large file dual-mode into libmpg123. One library with both APIs, 790like glibc. 791 792- libmpg123 25.0.25: 793-- The separate libraries are gone again, this one is dual-mode (using 794 ca. 750 lines of not very funny code). 795-- The library even translates callbacks between large file support modes. 796-- Introduce handle-based custom I/O in libmpg123. 797-- The header now defines MPG123_API_VERSION to help compile-time detection 798 of available functions (lib is version 25.0.25 now... MPG123_API_VERSION 799 is 25). 800- Make the usage of AI_ADDRCONFIG dependend on a configure check. This 801 flag is not available everywhere. 802 803 8041.11.0: 805------- 806Attention: There was a re-release of the source archive, because the 807initial one missed the actual changes for the library name. 808Sorry for the inconvenience:-/ 809 810- Big bad libray name change for builds with enabled large file support. 811 That will break libmpg123 binary compatibility on Linux/x86 when upgrading 812 from mpg123>=1.5.0 with enabled large file support. You need to relink 813 with the new library called libmpg123_64. 814 If you do not enable large file support, or it is implicit on your 815 platform (x86-64), the library keeps the old name of libmpg123 and 816 everything is fine. 817- Assembler cleanup: 818-- no use of compiler-based stack alignment (for SSE), helping portability 819-- mostly performance neutral, hint at faster decoding for the dynamic 820 build and slower for static, but small change in any case 821- Windows networking (access http streams in mingw builds). 822- Do not ask for addresses that do not have matching interfaces configured 823 (IPv6 on a IPv4-only host, for example). That can help with broken DNS 824 servers that choke on IPv6 addresses (T-Online Speedport W502V, for example). 825- Fix a potential ICY reading problem were ICY metadata could be read as 826 mp3 data (basically for MPEG frames bigger than the ICY interval). 827 8281.10.1: 829------- 830- Help multilib setups that boldly assume that headers are invariant 831 by removing the consistency check in mpg123.h and instead just adding a 832 suffix to relevant functions when _FILE_OFFSET_BITS is defined. Invalid 833 setups will now fail at the linking stage instead of the preprocessing stage. 834 That should cover bug 2934488. 835- Fixes for gapless decoding: 836-- Correctly skip padding larger than one MPEG frame (strange, but occurs). 837-- Bug 2950218 (proper gapless cuts for seeking near the end). 838- Make sure the search for the first header aborts after 64K of one-byte 839 reads, as always intended (bug 2951334). 840 Certain files (or even random data) were able to fool mpg123 sufficiently 841 enough that it basically reads through the whole file in 1-byte steps 842 in search for MPEG data. 843 The limit of 64K will very likely be configurable in a future mpg123 844 version. 845- Fix subtle bug with seeking in feeder mode: A seek close to the current 846 position (meaning: the needed data offset is already in mpg123's buffer 847 chain) resulted in skipped bytes. 848- Improve the feeder mode for handling large amounts of junk at the 849 beginning, including proper passing of the request for more data when trying 850 to determine free format frame size. This also fixes endless looping as 851 reported in bug 2951334. 852- The parser code still needs overhaul. It is not pretty. 853- Compile fix for OpenAL. 854 8551.10.0: 856------- 857- Confirmed/fixed on OS/2 platform. 858 At least a static build works with native audio output and generic decoder. 859- Make modules work with libtool-2.2.6b . 860- Added pitch command to control interface. 861- HTTP header field and MIME type parsing now case-insensitive (fixes 862 bug 2904736). 863 Also, the MIME-parsing for non-playlist URLs is done the same way as 864 from playlists now. 865 And, we interpret MIME types only to before a ";" (see bug 2836904). 866- There is a build-time option to enable unicode file names on windows 867 now. UNIX (Linux) does not need that, UTF-8 works natively. 868 An unicode-enabled build of libmpg123 expects file names as UTF-8 strings, 869 opening of non-utf8 strings (by old applications) still works via fallback 870 when the conversion of the string or opening of the file failed. 871- Also, on Windows, --realtime now works, along with added granularity of 872 the new --priority parameter. Note that you get the latter functionality 873 through nice/renice on UNIX, no need to add that to mpg123. 874- Added experimental framebyframe API. 875- Added a new Microsoft common language runtime wrapper (aka .NET wrapper) 876 written by Malcolm Boczek. See ports\MSVC++\2008clr\mpg123clr\ReadMe.txt 877 for further information 878- Added Visual Studio 2010 Beta 2 project files for libmpg123 879- Updated autotools machinery, autogen.sh is gone, use `autoreconf -iv`. 880 8811.9.2: 882------ 883- Fix logic failure in gapless code: The trailing silence was only cut on 884 the first decode. So, seek-back and decode again never was gapless:-( 885- Fix linker flags on MacOS 10.6 . 886- Improve portability (mainly for Solaris/x86, possibly others). 887- Fix reading from standard input in Windows (use binary mode). 888 8891.9.1: 890------ 891- Fix OpenAL output issue (bug 2840085) 892- Fix theoretically possible discarding of some audio samples when getting 893 a new format. 894- Fix unwanted verboseness (some error messages from library even when 895 MPG123_QUIET was specified). 896- Fix back-to-beginning for feed_skip (fixes bug 2859531). 897- Fix the CPU creep bug with NtoM decoding. 898 That one has been nasty on you with large files since bad frame fillup 899 has been introduced. 900- Fix regression (since 1.9.0) in ID3 parsing: Now Foobar2000 RVA fields 901 are interpreted again (among others). 902- Fix some compiler warnings, minor cleanup. 903 9041.9.0: 905------ 906- Free format support. 907- ARM assembly optimizations (yay Taihei again!). 908- Dither noise now runtime-generated, thus less bloated binary (thanks 909 Taihei...). 910 This means that dithered decoding is now included per default. 911 Please note that work is ongoing to improve the dithering quality, 912 more to come. 913 For example: Accurate rounding to 16bits is now always used for generic 914 dithered decoder, there are plans to adapt the noise for different 915 sampling frequencies. 916- Buffer plays any audio type now. 917- New output module: OpenAL 918- Bug fixes: 919-- Broken frame fillup for non-signed 8 bit formats with correct zero 920 (bug 2805665) 921-- Crash on invalid UTF-16 in ID3 tags fixed (thanks to Andy Hefner) 922-- Bad detection of separated UTF-16 strings in ID3 tags (bug 2834636). 923- Topic ID3 and UTF: Now we are more tolerant with UTF16, even accepting 924 those broken tags that id3v2 produces (multiple conflicing BOMs). 925- Build system allows AltiVec on non-Macs now (don't enforce unsupported 926 gcc flags). 927- Terminal control mode is more verbose (gives hint about pressing 'h'). 928- The library now offers a switch and small API to defer translation of 929 ID3 text data until client app wants to do it (or not). 930 9311.8.1: 932------ 933- Include improvements to integer decoder from SVN trunk. 934 They have been accidentally promised on 1.8.0 release announcements, 935 though they were not there. Here it is: ISO compliant fixed point decoding 936 (speed optimizations are still reserved for next release). 937- Fixed build with ./configure --enable-modules (bug in configure script). 938- Fix name of binary in help screen when called with path. 939- Build fix for old gcc with AltiVec code. 940- Update of Sony PSP build files. 941 9421.8.0: (The Taihei Monmament) 943------ 944- New and improved SSE optimizations! For x86-64, too! Also AltiVec! Fast 945 float output! Faster stereo! 946 Finally, this should put mpg123 into the efficiency-leading position on 947 current hardware! Thanks go out to Taihei Monma for pushing lots of new 948 assembler code. 949- Added proper rounding modes to 16bit integer. 950-- Use ./configure --enable-int-quality to prefer accuracy over speed. 951-- Accurate code (generic, SSE, 3dnow -- i586 has always been good) 952 delivers ISO compliant quality with 16bit output. 953-- Uses fast rounding for IEEE754 floats. 954-- Mpg123 can do fully ISO compliant MPEG audio decoding to 16bits (of 955 course to 32bit float/int, too). 956- subtle performance enhancements via broader data alignment 957- Prefer SSE code over 3DNowExt. 958-- It can be tight, but generally our new SSE code is better on CPUs that 959 can do both. 960- Remove HF cutoff (SFB21), has been introduced in 0.59r . 961- Fix layer 1 regression (been there since version 1.x). 962-- Layer 1 ISO compliance test is positive now. 963- Fix layer 2 regression (false positives header change). 964-- Layer 2 ISO compliance test is positive now. 965- more sample-accurateness 966-- Clear frame buffers before seek. 967-- Decode 4 frames in advance for layer 3 (2 for layer 1 and 2) per default. 968-- Number of layer 3 frames to decoded in advance (and fill bit reservoir) is 969 runtime tunable (--preframes). 970- Do not stop decoding after stray ID3v1 tags in streams (bug 2793677). 971- Fix handling of negative RVA2 values in ID3v2 (bug 2792417). 972- Discard bitreservoir of previous frames if a resync is needed. 973- improve perceived randomness of --random (do not repeat too early) 974- Fix special crash case in UTF16 conversion for ID3v2. 975- MPG123_MODDIR environment variable for changing module directory at runtime 976- arts output fixes (bug 2715128) 977- win32 output swallowing less buffers at end (but still some audio is lost, 978 bug 2722991) 979- tested mpg123 on OS/2; it works, but not the native audio output 980 (SDL works) 981- WAV output announces supported output formats correctly 982- fix buffer startup to make sure the first bits of audio are not discarded 983 (bug 2796802) 984- re-enable the --gain parameter (the move to modules disabled that), 985 untested 986- Libltdl is _not_ included anymore. 987-- The host system is expected to provide it, otherwise plugins are not used. 988-- Our copy does not get in the way anymore. 989- enhancements of the MSVC++ builds, including optimizations using yasm 990- general build system fixes 991- Legacy build system is gone. 992- code cleanup 993-- signed/unsigned integer usage, make compilers more happy) 994-- simplified synth selection code (it is _less_ code now, and does more) 995- Fixed behaviour of MPG123_NEW_FORMAT: Now it does not stop you from 996 just continuing decoding without querying the (new) output format, this 997 behaviour regression had been there since somewhen after 1.4.3 . 998 9991.7.3: 1000------ 1001- Fix a regression introduced with the --doublespeed fix. Now seeking should 1002 be a lot smoother again. 1003 10041.7.2: 1005------ 1006- Fix a possible vulnerability in the ID3 code (negative encoding values). 1007 10081.7.1: 1009------ 1010- Just one fix for making the RVA switch in terminal and generic control mode 1011 work again (instead of plain silence). 1012 10131.7.0: 1014------ 1015- Lots of output format fun! 1016-- now supporting 8, 16, 32 bit signed/unsigned integers, 1017 32bit float (64bit float can be hacked in quickly) 1018-- optimized decoders use fallback routines for non-optimized 1019 formats transparently 1020-- flexible resampling is automatically chosen when output does 1021 not support standard rates (like a JACK server) 1022-- That meant quite some restructuring in the decoder code... 1023- Lots of core functionality now optional, enabling small-footprint 1024 builds of libmpg123. 1025-- choosing among the MPEG layer codes 1026-- NtoM resampling 1027-- downsampling 1028-- feeder API (mpg123_open_feed()) 1029-- ID3v2 1030-- String API 1031-- ICY 1032-- output formats 1033-- error/warning message printouts 1034-- ... a layer3-only shared libmpg123 can be just 107K on x86-64 1035 or 94K on x86 1036- --preload (tune prefill before playback for buffered mode) 1037- win64 support (one report at least;-), modules working on Windows 1038- Windows/MSVC++: fixed handling of unicode file names, 1039 mpg123_topen() now actually working there 1040-- You are obliged to use mpg123_tclose() now! 1041- using "plugins" subdir relative to mpg123 binary 1042 (in addition to ../lib/mpg123) 1043- switch to libtool 2.2 and automake 1.10 for the build scripts 1044-- though no update to new libtool 2 API, yet 1045- some portability fixes 1046- prevent user from creating non-working I/O setups 1047 (replacing timeout reader, ICY with feeding) 1048- JACK output accepts port names for -a, stereo gets mixed down 1049 when only one port is chosen 1050- added sndio output, contributed by Christian Weisgerber 1051- Make --doublespeed paramter work, porting of which has been 1052 forgotten in the 1.x series! 1053 Along with that, a regression in decoding has been fixed 1054 (concerning skipping of frames in general). 1055 10561.6.4: 1057------ 1058- Fix for consistent NtoM resampled decoding and broken frames fillup. 1059 10601.6.3: 1061------ 1062- Fix sf.net bug #2413608: Make sure a new format does not slip through 1063 after early close. 1064- Include equalizer example file and a piece of wrapper code for MSVC++ 1065 in the distribution. 1066- Do not claim to support unsigned 16 bit encoding (never been the case). 1067- Fix default fifo detection, now it actally activates fifo support! 1068 10691.6.2: 1070------ 1071- Fix default IPv6 detection in configure.ac (a typo has been introduced 1072 before). 1073 10741.6.1: 1075------ 1076- Fix printing of largefile offsets in remote control interface. 1077- Some portability fixes (reduced compiler warnings on Solaris, p.ex.). 1078 10791.6.0: 1080------ 1081- small things inside that I forgot to mention 1082- some new commands for remote control interface: 1083-- SCAN 1084-- SAMPLE 1085-- EQFILE 1086-- SHOWEQ 1087- added --keep-open command line flag (for remote control) 1088- fixed equalizer file parsing to really handle comment lines as example file 1089 suggests 1090- more elaborate detection of UTF-8 locale, also --utf8 switch to force it 1091- added --fuzzy to enable inexact seeking (see below) 1092- added --index-size parameter for tuning accurate frame seek index 1093- enabling largefile support via configure 1094- libmpg123 11.0.11: 1095-- added mpg123_geteq(), mpg123_tell_stream() and mpg123_getstate() 1096-- API cleanup (take const char* for mpg123_open()) 1097-- calm down complainling (C++) compilers by completing the mpg123_channels 1098 enum 1099-- fixed several possible crashes when user provides NULLs where it isn't 1100 appropriate 1101-- workaround for frames that fail decoding (bad frame body, missing bit 1102 reservoir): fill up with silence 1103 That also fixes seeking issues related to bad frames since now the 1104 fixed relation between frame and sample offsets is restored. 1105-- Finally realized what that the resampling code for integer math 1106 (generic_nofpu) was just incomplete! 1107 Now it works, using the defined integer multiplication. 1108-- Detect UTF-8 in ICY conversion (instead of just assuming CP-1252, 1109 provided by Torsten Glaser). 1110-- Prevent ugly noise when the bit reservoir is not fully there 1111 (p.ex. ignorantly cut mp3 files). 1112 Concerned frames are silenced, but reservoir for following frames 1113 is kept. 1114 Thanks to Patrick Dehne for the investigation and patch! 1115-- New option for fuzzy seeking; trading sample accuracy for speed. 1116 With that option, seeks positions are guessed using mean framesize or 1117 the Xing VBR TOC is used. 1118-- Feeder streams work with seek index now. 1119-- Seek frame index is runtime tunable. 1120-- more caution with alignment issues for varying library users 1121- new project files to build/use libmpg123 with MSVC++ 2005 and 2008, 1122 provided by Patrick Dehne 1123- fixed a regression that made the pause/loop mode in terminal control 1124 slowly go backwards 1125 1126Big note for libmpg123 users: Make sure your application is compiled 1127with the same largefile setting as libmpg123! If that does not match, 1128you will get unresolved symbols (which is better than weird errors when 1129using a nonmatching off_t in arguments;-). 1130 11311.5.1: 1132------ 1133- fix wav/au/cdr writing to stdout (bug #2044423) 1134- add more sensible --no-resync to replace --resync (bug #2044404) 1135- libmpg123 7.0.7 1136-- fix thread safety of SSE decoder (bug #2053181) 1137-- fix robustness of length handling, added mpg123_set_filesize() (bug #2064322) 1138 11391.5.0: 1140------ 1141- libmpg123 6.0.6 1142-- Floating point decoding back again, (build time choice for now; 1143 --with-cpu=generic_float). 1144-- More robust string handling; extended string API. 1145-- fixed an (so far) unnoticed ID3 bug that may have obscured comment fields 1146-- added mpg123_feed() as shortcut; using const input buffer now 1147-- resync is enabled again for ICY streams (the trouble in the past was 1148 due to a reader bug, not the streams) 1149-- decode ICY text data to UTF-8 (thanks, Thorsten) 1150-- preserve file flags for timeout mode 1151- More elaborate (helpful?) error message for output format problems. 1152- Reworked HTTP code... and added IPv6 support! 1153- Fix the --proxy parameter (has been accidentally ignored before). 1154- Added --ignore-mime to work with web streams with funny playlist MIME 1155 types like "audio/megurl". 1156- Know MIME audio/mpegurl. 1157- --timeout is now also used for the connection itself (not just reading). 1158- Now trying to resume ALSA device after suspend. 1159- subtle build changes (your CFLAGS rule now) 1160 11611.4.3: 1162------ 1163- Fix mpg123_tell() and mpg123_seek() return values with respect to the 1164 samples in decoding buffer (bug 1947373). 1165- Fix (bogus) 3DNow detection on IDT C6 (bug 1947982). 1166- Fix mono playback of win32 output (bug 1955157). 1167- Fix ABI compatibility with compilers that don't align the stack like 1168 gcc does (fixing SSE crashes on win32). 1169 11701.4.2: 1171------ 1172- Fix build problems (for Cygwin and Win32, perhaps others, too). 1173 11741.4.1: 1175------ 1176- Fix a serious regression of terminal control mode (forgot to remove a 1177 term_restore(), bug 1936548). 1178 11791.4.0: 1180------ 1181- Enable runtime check for available and working output modules. 1182 Now mpg123 tries all built modules (or a list specified in 1183 mpg123 -o moda,modb,modc) in turn to find a working output. This minimizes the 1184 situation of having to specify a device when default output doesn't work for 1185 some reason. See bug 1910500. 1186- libmpg123 2.2.2 1187-- Fixing an endless loop for ICY streams that suddenly end without error 1188 (just EOF). 1189-- Further fixes around EOF handling in (buffered/ICY) streams. 1190- Enable user to interrupt mpg123 when stuck in a loop of failing to open a 1191 track (with --loop). 1192- This time with correct RPM spec (hopefully... sorry, Michael!). 1193 11941.3.1: 1195------ 1196- Enable snd_pcm_sw_params_set_xfer_align() for alsa-lib < 1.0.16 (bug 1908603). 1197- libmpg123 2.1.2 (no-op change) 1198 11991.3.0: 1200------ 1201This is a _major_ fix release for http streaming! 1202Much more usable than earlier mpg123 1.x versions. 1203 1204- libmpg123 libtool-version 2.0.2 1205-- Fix nasty bug in ICY reader that failed to account for partial reads 1206 from slower network. 1207-- Now non-seekable streams can get peek-ahead for MPEG sync, too, triggered 1208 by the MPG123_SEEKBUFFER flag. 1209-- Do not try to resync on streams with ICY metadata, that won't work. 1210 Consequently, if there's unreliable network, use --loop -1 to make 1211 mpg123 reconnect to the server on errors. 1212-- Applying a few layer 3 decoder fixes from old mhipp CVS (hail to the 1213 creator;-) That includes the fix for bug 1895025. 1214-- Fix ID3v2 parser with very invalid claimed ID3v2 frame sizes (could 1215 have triggered DOS before). 1216-- Oh, and fixed a steady memory leak in ID3 handling. Should mention that;-) 1217- Print ICY-NAME and ICY-URL again, as mpg123-0.6x did. 1218- Added --smooth option for not flusing buffer between tracks but at program 1219 end only. 1220- Included some contributed ports/bindings of libmpg123 under ports/ . 1221 12221.2.1: 1223------ 1224- libmpg123 libtool-version 1.2.1 (coincidence!) 1225-- Earlier check for free format headers to prevent them from screwing up 1226 resync (free format still not supported) 1227-- bug 1889051: more flexible resync, not insisting on the format of the 1228 first frame (which could have been bogus) 1229- Add an output write loop to handle SIGSTOP/CONT operation (bug 1890563). 1230- Fixed a bug where playback status for some http streams was not shown. 1231 12321.2.0: 1233------ 1234- libmpg123 libtool-version 1.0.1 1235-- See NEWS.libmpg123 for details. 1236-- This adds --resync-limit parameter to mpg123. 1237- Some build system work, including: 1238-- It is now possible to build a mpg123 rpm from the source tarball via 1239 rpmbuild -tb . 1240-- configure: Accept --with-audio=foo,bar,bla (comma-separated list) in addition 1241 to --with-audio="foo bar bla". 1242-- autogen.sh included in distribution. 1243-- Include the forgotten i486 files in the distribution (now that's embarrasing...). 1244 Also a little fix for wrong --list-cpu on i486 build. 1245-- Fix build with MinGW32. 1246- Fix -v stat output (time display) for MinGW32 build. 1247 12481.1.0: 1249------ 1250- Added arts output. 1251- More verbosity on lame/xing/info tags (on demand) instead of compile-time 1252 debugging switch. 1253- XMMS2 plugin cleanup (submitted to XMMS2 for inclusion) 1254- Improved ID3v2 robustness (let bad tags not affect playback of the important 1255 part). 1256- Terminal control: 1257-- Key for going to previous track ([d], because it's left of [f] usually... 1258 no config file yet for that). 1259-- Key for printing current playlist, [l]. 1260-- Now possible to switch on verbosity also for mpg123 -q -C 1261-- Key for (re)printing ID3 tag info ([t]). 1262-- Key for (re)printing MPEG frame header info ([m]). 1263- Soften the -q option: Now you are able to increase verbosity after -q 1264 again, like mpg123 -q -v (this fixes cplay's progress display). 1265 12661.0.1: 1267------ 1268- Fix module loader to prevent crash in working paths with more than 49 1269 characters length (bug 1859413). 1270 12711.0.0: 1272------ 1273- Fixed Pulseaudio. 1274- Cleaned up configure. 1275- Pushed remote control version to v3. 1276- Updated documentation. 1277- Fix VPATH build for generated mpg123.h . 1278 12791.0rc3: 1280------- 1281- Fixed JACK output. 1282- Disable buffer when statically building CoreAudio in (MacOSX); with 1283 CoreAudio module the buffer works, with static output it doesn't. 1284 This is the situation because of fork() discrimination by Apple Inc. . 1285- Added verbosity to tell about ID3v2 text encodings (level 4). 1286- minor cleanup 1287 12881.0rc2: 1289------- 1290- Fixed some bugs, the ID3v2 interface of libmpg123 is safer now (there 1291 were possibly stale pointers in there). 1292- Buffer mode got vital improvements (yeah, that is sort of feature creep 1293 during release process, but worth it) 1294 The improved communication makes it possible to skip tracks in terminal 1295 control mode without the hack to immediately restart playback. 1296 To be able to do seeking in terminal mode with buffer properly, buffered 1297 playback stops on seek keys. You restart playback after you are done 1298 with seeking. 1299- Support either portaudio v18 or v19 API (v18 works for me, v19 works 1300 according to user report). 1301- Audio output handling got safer and more clean, a byproduct of implementing 1302 the above. I stumbled over some things and had to fix it (yeah, feature 1303 creep in parts again, but still: Worth it!;-) 1304 Any audio access is now restricted to either that standalone mpg123 1305 process or the buffer process, the output being opened _after_ the fork(). 1306 There is hope that this fixes buffered output on MacOSX. 1307- More feature creep, this time because of something like that was already 1308 included in the Debian mpg123: 1309 --delay parameter to issue a pause before each track (does not make 1310 sense for file writing outputs, though). 1311- Even more feature creep: remote control can now give ID3v2 data, also 1312 in more raw form via new "tag" command. 1313 This sort of qualifies as bugfix, actually, since it's item 1786430 on 1314 the tracker;-) 1315- Make flexible rate computations more safe (especially on 32bit platforms) 1316 by switching to the looping code instead of direct multiplication/division 1317 (which blows up with integers). A possible effect was premature track 1318 ending with a forced rate. 1319- Flexible rate mode works _at_all_ again with fixed output support 1320 detection code (comparison of -1 with a size_t ended a loop all too early). 1321- check for error in flushing output (this ends mpg123 for a broken pipe, 1322 for example) 1323 13241.0rc1: 1325------- 1326- In one word: LOTS! 1327- Many small things that happened while migrating to the new setup. 1328- The decoder is now a library (libmpg123) which can be installed also 1329 for other programs to use. This finally provides a heavily improved 1330 replacement for the aged mpglib. We have doxygen API doc, example codes. 1331 You can still choose to compile the decoder statically into the mpg123 1332 binary, though. 1333- We have a plugin system for audio output! This should be relieving to 1334 package maintainers for binary distributions, drastically reducing the 1335 number of builds they have to provide. 1336 Here, too, you can choose to build one audio output into the binary 1337 like before; you can have your old-school one-piece mpg123 or the hip 1338 I-am-legion shared-lib-and-plugin flexible mpg123;-) 1339 One exception: For now, you have to compile without modules in 1340 MinGW32/MSYS. 1341- ID3v2 support has been enhanced and, in the case of specific comments 1342 (those with a description), fixed. 1343 The ID3 parsing is part of libmpg123, offering support for virtually 1344 all textual information in ID3v2.2, ID3v2.3 and ID3v2.4 tags (along with 1345 the usual 128 bytes of ID3v1 or ID3v1.1 in a block). 1346 All tag texts are converted to UTF-8, allowing mpg123 to properly display 1347 special chars in an Unicode terminal without fuzz (for non-UTF locales, 1348 there is still the ASCII reduction). 1349- Gapless decoding (of layer 3 streams) is now considered to be a standard 1350 feature and is enabled per default both at build- and runtime. 1351- ... 1352 13530.68: 1354----- 1355- Fix bug 1807964: distorted playback of MPEG 2.5 files 1356 13570.67: 1358----- 1359Thanks go out to the ROM 106.5FM team (http://www.rom.lu/) for supporting 1360this release with a donation on sf.net and a bottle of finest Gewuerztraminer 1361wine from Luxembourg! 1362 1363- verified that it builds on SGI IRIX 6.5 for MIPS32 and MIPS64 1364- enable flexible rate for stdout decoding, too 1365- UTF8 filtering to ASCII finally works thanks to Mika Tiainen, see bug 1745847 1366- corrected frame offset; -k was off by one 1367 This means now that -k disagrees with mpg123 0.59r on many files because 1368 the old version does play a frame of silence when encountering LAME tag 1369 instead of dropping it for audio. 1370- added --timeout <n>: Possibility to end playback on a stream that doesn't give 1371 data for <n> seconds. 1372- added --loop <n>: for ... well... looping playback of a track; motivation was 1373 persistent internet streaming with unreliable connection (together with --timeout) 1374- build fixes 1375- use movap instruction in SSE assembly when compiler supports the needed 1376 alignment (idea from MPlayer) 1377- show decoder options in their priority order in --list-cpu/--test-cpu 1378- added Perl script to benchmark each of mpg123's CPU optimizations 1379- portability enhancements and cleanups along with testing on SunOS 4.1.2 1380 with gcc-2.7.0 1381- workaround for ugly flexible rate for MMX/SSE/3DNowExt code: 1382 --with-cpu=mmx also includes i586 code as fallback; similar with the others 1383 13840.66: 1385----- 1386- support for a combined build of x86 optimizations and runtime selection 1387 among these The (supposedly) "highest" CPU-supported optimization is chosen 1388 by default, --cpu, --list-cpu and --test-cpu parameters are there for you to 1389 take control. 1390- default build for x86 systems is combined "x86" with generic, i386, 1391 i586, MMX, 3DNow, SSE, 3DNowExt; "x86_dither" also includes the dithering 1392 i586 decoder 1393- no automatic -march compiler flags anymore; the --with-cpu configure option 1394 selects specific assembler code but special CFLAGS are up to you 1395- extended 3DNow and SSE optmizations from MPlayer's mp3lib 1396- x86 assembler optimizations adapted for MacOS X/Intel 1397- straight support for Windows using MinGW32, reactivated the native 1398 WinMM output. Core functionality including assembler optmimizations 1399 and WAV writing is there. 1400- assembler optimizations also for cygwin 1401- set remote-err automatically when putting audio to stdout 1402- a bit more general portability in the new build system 1403- fix file creation mode for -O 1404- experimental decoding to 32bit float (raw and WAV file): ./configure 1405 --with-cpu=generic_float 1406- generic control interface (-R) can create and read from a named pipe, 1407 parameter --fifo <path> 1408- audio bugfix: playback of mono file on stereo-only hardware, better 1409 error reporting there 1410- ALSA output handling underruns 1411- MMX, SSE and 3DNowExt fallback to i586 and below or 3Dnow for forced 1412 sample rate 1413- more terminal control: volume, RVA and verbosity controls 1414 14150.65: 1416----- 1417- now allow crc bit to vary over stream (fixes files with bad lame tag 1418 and some internet streams) 1419- do not try to parse id3v2.2 (as opposed to 2.3 and 2.4) 1420- correct id3v2.3 parsing for not expecting syncsafe integers for framesize, 1421 2.4 introduced that 1422- omit gcc specific compiler flags when gcc is not there 1423- initital attempt to support sgi/irix with configure (please test) 1424 14250.64: 1426----- 1427- fixing a potential denial of service problem; broken connection to server 1428 could trigger an endless loop 1429 14300.63: 1431----- 1432- build fixes, only relevant to developers and people who had problems building 1433 14340.62: 1435----- 1436- JUMP command in generic frontend accepts offsets/positions in seconds 1437 (JUMP 4s vs. JUMP 4) 1438- initial support for ICY meta data in SHOUTcast streams 1439- a bit of fixing with rva code, added rva and general volume control to 1440 generic frontend 1441- accepting more MIME types for http streaming (application/pls and 1442 audio/x-mpeg) 1443- ID3v2 info output taking less space per default - more resembling the 1444 old ID3v1 view for short tags, full view with always one line per item 1445 via extra --long-tag switch 1446- generally less verbosity (i.e. noise on console) per default 1447- ID3v2 now having some kind of support for unicode; trying to print what's 1448 latin1-compatible and prevent messing up of terminal with unknown bytes 1449- several bug fixes and small improvements 1450 14510.61: 1452----- 1453- improved AltiVec code from Taihei Monma 1454- an i486 optimization by Petr Salinger 1455- improving interactive experience (terminal, frontends) 1456-- prevent/lessen bad effect after seeking while paused 1457-- show targeted position while seeking in terminal mode while paused 1458-- not messing up terminal on unexpected errors 1459- decoder robustness - better file sync (weird junk at beginning, some vbr 1460 frames) 1461- build system improvements: 1462-- fixing configure isses on some platforms 1463-- adding cygwin, kfreebsd 1464- extended fix for CVE-2006-1655 1465- generic code should compiling again... 1466 14670.60 final: (The Team!) 1468----------- 1469- no functional changes 1470 14710.60-beta6: (Thomas Orgis) 1472----------- 1473- more use of ID3v2 tags, mpg123 now displays both (merged) info from 1474 ID3v2 and ID3v1; trying to support both ID3v2.3 and ID3v2.4, but ignoring 1475 encoding (UTF8 should still work if your terminal supports it, straight 1476 unicode should work except for parsing genre numbers and multiline strings) 1477 14780.60-beta5: (Thomas Orgis) 1479----------- 1480- more robust playlist support: 1481-- path/url length not limited to 1023 characters anymore 1482-- reading in of whole playlist at program start (old operation was not 1483 really safe with playlist from http) 1484-- fixed bug where reading of playlist form stdin caused segfault (introduced 1485 with the pls format support) 1486- smaller cleanups, screen output cosmetics 1487 14880.60-beta4: (Nicholas Humfrey & Thomas Orgis) 1489----------- 1490- proper seeking, also for VBR streams 1491- real two-way seeking in remote control mode at all 1492- better estimates of remaining frames (on vbr files), exact if Xing header 1493 is found 1494- Removed libao support (as it is GPL and we aren't - and we don't need 1495 it with native Alsa) 1496- Added ALSA 0.9/1.0 support by Clemens Ladisch (old alsa is in 1497 audio_alsa05.c but will most likely vanish soon) 1498- Added PortAudio audio-output support 1499- Added SDL audio-output support 1500- Fixed NAS audio-output support 1501- re-enabled MPEG 2.5, code just seems to work 1502- improved stream checking; being more willing in general (favor resync 1503 instead of bail out) but directly give up if free format stream is obvious 1504- Whee! Initial Relative Volume Adjustment (buzz) support with reading of 1505 ReplayGain values in lame/info tag, the RVA2 frames in ID3v2.4, ID3v2 TXXX 1506 tags from foobar2000 (please test, someone!) and custom ID3v2.3 comments 1507 entitled RVA / RVA_ALBUM / RVA_AUDIOPHILE / RVA_RADIO / RVA_MIX 1508- more persistence in trying to get http streams 1509 15100.60-beta3: (Thomas Orgis) 1511----------- 1512- fixed bug with segfault in http code on stream from live365.com - 1513 bug id 1529266 1514- made http request HTTP/1.0 compilant again (tested only without proxy) - 1515 bug id 1529319 1516- now using http content-type header to check for correct types mpg123 can 1517 understand 1518-- you can now always use -@ for a single http resource (direct stream or 1519 playlist) since a stream will be reopened based on MIME type, 1520 though omitting it will save you one http request to the server in the 1521 direct stream case... 1522- now simple parsing of shoutcast pls playlists (how did you people use 1523 shoutcast before?) 1524- playlist mode enhanced with selective playback of one entry in list 1525 (--listentry parameter) 1526 15270.60-beta2: (Thomas Orgis) 1528----------- 1529- fixed bug in terminal control mode that caused the f key to quit program 1530 isntead of advance to next file (introduced by the first attempt to restore 1531 "normal" Ctrl+C behaviour in terminal control mode) 1532 15330.60-beta1: (Thomas Orgis & Nicholas Humfrey) 1534----------- 1535On the way to the first new offical realease since years! 1536 1537- new license: all LGPL except the old audio_alsa.c 1538- merge with Nicholas' sourceforge package 1539-- autooled configure/make system 1540-- MacOSX, Jack, libao (alsa 0.9/1.x support through that) 1541- experimental gapless playback for layer 3 1542- merged in MMX and AltiVec optimizations 1543- security bug fix of GLSA 200607-01 and catching possible crashes found by fuzzing 1544- fixed many issues here and there 1545- polished help messages, updated man page... 1546 1547UNDERGROUND 0.59r-thor7: (Thomas Orgis <thomas@orgis.org>) (well, I'm going to 1548------------------------ release a _really_ official mpg123 in future) 1549- applied relevant stuff from Debian's 22: 1550-- fix for CVE-2006-1655 (buffer overflow in III_i_stereo()) 1551-- strict aliasing hack in WRITE_SAMPLE of decode_i386.c 1552-- fixed http streaming through proxy by actually using the request url... 1553-- buffer resync on Ctrl-C (cleaning, reducing pauses with multiple files) 1554-- removed unused esdserver variable from mpg123.h 1555-- did NOT apply the Debian Makefile/manpage changes (going to rewrite that 1556 stuff anyway) 1557- made the netbsd-i386 targets visible as netbsd-x86 1558 1559UNOFFICIAL 0.59r-thor6 (Thomas Orgis <thomas@orgis.org>) 1560---------------------- 1561- split nedbsd targets for realtime priority selection code; since one 1562 needs -lpthread with it. standard netbsd target doesn't use realtime code -- 1563 I won't recommend running mpg123 as root anyway! 1564 1565UNOFFICIAL 0.59r-thor5 (Thomas Orgis <thomas@orgis.org>) 1566---------------------- 1567- Separated the the use of char* equalfile as filename from the use as 1568 TRUE/FALSE flag by introducing int have_eq_settings. Compilers kept nagging 1569 about assigning and integer (TRUE) to char* ... and it feels more right 1570 this way. 1571- Made control_generic aware of real being possibly different than float (seq 1572 command used to raise an FPE on OSF1 when this assumption was not the case. 1573- Fixed the command line arg parsing to work properly on Alpha (32 and 64 1574 bit mixup) 1575 1576UNOFFICIAL 0.59r-thor4 (Thomas Orgis <thomas@orgis.org>) 1577---------------------- 1578- merged with 0.59r-19 from Debian project (Daniel Kobras 1579 <kobras@debian.org>), hopefully fixing all those security vulnerabilities 1580 -> my dirty http_open and open_stream variants now replaced by more 1581 proper code 1582 -> still my (rather workloaded) parsing/processing in control_generic, 1583 but now including the idea to watch out for \n, \r\n and \r (or \n\r, 1584 for that matter;-) 1585 1586UNOFFICIAL 0.59r-thor3: (Thomas Orgis <thomas@orgis.org>) 1587----------------------- 1588- hacked additional variants of http_open and open_stream that return 1589 errors instead of exit()ing; makes more sense when used by a frontend 1590- further cleanup (and return to using continue instead of nested 1591 if(){}else{if()else{}}) in command processing, better error messages there 1592 1593UNOFFICIAL 0.59r-ThOr(remote-err,eq,flushing): (Thomas Orgis <thomas@orgis.org>) 1594---------------------------------------------- 1595- added audio_flush() calls to various places in control_generic.c to 1596 make sure there is nothing left in there that hurts later (not sure if 1597 this has effects) 1598- (re?)enabled (?) code for stream info 1599- corrected answer of JUMP (now gives actual reached position, +/- 1 frame 1600 since I'll still have to figure out what frame 0 really is...) 1601 1602UNOFFICIAL 0.59r-realeq-remoteerr: (Thomas Orgis <thomas@orgis.org>) 1603---------------------------------- 1604- applied patch from Cool Feet Audio project (nutcase@dtfm.org, see 1605 README.cfa) to use real-time equalizer in remote mode 1606- applied patch from AMF (amf.sourceforge.net) by Steve Grundell for remote 1607 communication not polluting the STDOUT where the audio data is read from 1608 (instead using STDERR) ... and faster seeking, maybe 1609 The patches go not cleanly together, but rejects are trivial. Thus, 1610 a combined patch with both would makes sense. 1611- modified (IMHO improved) the control_generic command reading: now 1612 always making sure that the full command is read up to a mandatory \n; 1613 also reworked the application of the commands afterwards 1614- added SEQ command: simple eq with only 3 bands 1615- added SILENCE command: I don't want the playback messages when I don't 1616 read them (since my frontend is reading the STDOUT it knows what is going on) 1617- added SLJ command: SILENCE-LOAD-JUMP... a hack for my hacked 1618 mixplayd... maybe one should remove that again. 1619 16200.59r: (MH) 1621------ 1622- applied audio_alib changes from Ralf Hildebrandt <R.Hildebrandt@TU-BS.DE> 1623- some 'paetsches' from DK 1624- minor optimizations in layer3 (dequantize/huffman) 1625- BSDOS 4.0 with gcc added to Makefile (<sms@moe.2bsd.com>) 1626- Solaris-ESD patch from Ryan Prosser <prosser@wam.umd.edu> 1627- Added Frontend changes from Bertrand Petit <elrond@phoe.netdev.net> 1628- more DK 'paetsches' (final dk7-clubhaus edition), includes extended term 1629 control 1630- SGI audio fix for non RAD machines from Erik Mouw <J.A.K.Mouw@its.tudelft.nl> 1631- fixed ugly bug in layer3 dequant for bt==2 (may cause high frequency clitchs) 1632- AMD-3DNow optimizations in decode and dct64 1633- OS/2 reworked from Samuel Audet (see audio_os2.c for more) 1634- added freebsd-esd make-entry from Daniel O'Connor (darius@guppy.dons.net.au) 1635- added enhanced head_check from D. Skarda <0rfelyus@atrey.karlin.mff.cuni.cz> 1636- applied 'xterm-title-patch' from "Wilson, Jeff D" <jeff.wilson@wilcom.com> 1637- more esd changes from Robert Bihlmeyer <robbe@orcus.priv.at> 1638- applied Hannu Napari's <Hannu.Napari@hut.fi> SGI audio patches 1639- minor changes in httpget.c and mpg123.c 1640- added native AIX support from Juergen.Schoew@unix-ag.uni-siegen.de 1641- applied playlist patch from <psst@euskalnet.net> 1642- more SGI audio patches from Gilles Zunino <Gilles.Zunino@hei.fupl.asso.fr> 1643- applied esdserver patch from Matthew Parslow <roy@alpha.alphalink.com.au> 1644- added some fixes for control_generic 1645 16460.59q: (MH) 1647------ 1648- ESD fixes 1649- minor bugfixes (DK patch ;) 1650- au and cdr 'support' (it's a hack) 1651- Fixed 'VBR' Bug in get_scale_fac1(). Thanx to <ssonique@hotmail.com> for 1652 this. (Wasn't really a VBR Bug. The new encoders just triggered it.) 1653- Added equalizer patch from <dlux@dlux.sch.bme.hu> 1654 16550.59p: (MH) 1656------ 1657- Added mpglib (see mpglib directory) 1658- 'make generic' is more generic now 1659- Added HPUX/ALib support from Ducroquet Erwan (ducroque@ufr-info-p7.ibp.fr) 1660- Added EsoundD support from <fill it in> 1661- Added exp. relatime support (compile with -DSET_RT) 1662- Added linux-sparc patch from <hmm lost email) 1663- Added genrepatch from Shane Wegner <shane@CM.NU> 1664- Added wav-File patch Samuel Audet <guardia@cam.org> 1665- Added SGI-RAD support from "J. Dean Brederson" <jdb@cs.utah.edu> 1666- Added sajberplay/FreeBSD patch from Chou Ye-chi <is84002@cis.nctu.edu.tw> 1667- Added 486 optimizations from Fabrice Bellard <bellard@email.enst.fr> 1668- Added combined output devices on SUN (ie Speaker and headphones together) 1669- Added audio_alsa.c (under GPL license) for the ALSA sound system from 1670 A. Hermansen <ahermans@vf.telia.no> and J. Kysela <perex@jcu.cz> 1671- Added K6-3DNow patches from KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp> 1672- Added MINT patches from Petr Stehlik <stehlik@cas3.zlin.vutbr.cz> 1673- Fixed minor bug for linux-i486 and mono 1674 16750.59o: (MH) 1676------ 1677- fixed Bug with stereo streams on mono audio hardware for OSS 1678- fixed a bug with mono output and 1:1 (no) rate conversion 1679- again changes in the probe code 1680- fix in the buffer code for the case, that audio parameters are changing 1681- more changes to the flexibel rate converter, should now work when 1682 writing to STDOUT. 1683- Added Andy's (<andy@snoogie.demon.co.uk>) float2int speed up proposal 1684 (check WRITE_SAMPLE in decode_i386.c) .. Maybe someone wanna take the 1685 idea and put it into the decode_i586.s part? 1686- Added TK3Play support from Brian Foutz <foutz@anise.ee.cornell.edu> 1687 (compiles but untested) 1688- RIFF Header fix (according to Thomas Niederreiter's 1689 <tn@tarantel.rz.fh-muenchen.de> patch) 1690- m68k patch from Stefan Gybas <cab@studbox.uni-stuttgart.de> applied 1691- minor additional PPC changes applied 1692- resync and EOF hang fixed 1693- resync and bitrate correction relaxed 1694- Slightly change verbose output; added countdown 1695 16960.59n: (MH) 1697------ 1698- fixed shuffle bug 1699- added memory mapped IO for file reading 1700- added MPEG 2.5 12kHz and 8kHz table entry 1701- started flexibel rate conversion .. 1702- new '-Z' / '--random' option 1703- minor clean-up 1704- splitted audio file in audio system dependend smaller parts 1705- started system stream support (external program: system.c) 1706- unsigned 8 bit (instead of ulaw) is now default for 8bit operation 1707- Linux PPC patch from Grant Erickson <eric0139@tc.umn.edu> applied 1708- added BSDi patch from Peter Berger <peterb@hoopoe.psc.edu>, who reported 1709 a failure when catching signals 1710- minor bug fix in the control interface for sajber jukebox 1711- fixed the ugly 'Ctrl-Z in buffer mode' bug .. YES ;) 1712- added buffer preload when underrun occurs (preload = 1/8 buffer size) 1713- minor SUN audio clean up 1714 17150.59m: (MH) 1716------ 1717- Bug with RIFF header streams fixed. 1718- HTTP auth option patch from Henrik P Johnson <king@one.se> 1719- NetBSD patch(s) added from <mycroft@NetBSD.ORG> and <augustss@cs.chalmers.se> 1720- Added advanced shuffle support from Steven Tiger Lang <tiger@tyger.org> 1721- fixed bug with too large big_value field 1722- fixed (hopefully) the bug with the '-a' option 1723- work-around for some pedantic compilers in fr->synth init 1724- some changes for the 'generic' version 1725- applied NAS bug-fix patch 1726- new (good) MPEG 2.5 tables (from Niklas Beisert) 1727- added WIN32 support from Tony Million 1728- added some bug fixes from Niklas Beisert 1729- fixed another ugly bug in layer3 dequantize (wrote over the border 1730 of the 'xr' field) 1731- a minor HPUX clean up 1732- added BSD patch from Kevin Brintnall <kbrint@visi.com> 1733- added Makefile.win32 1734- added NAS big endian fix 1735 17360.59l: (MH) 1737------ 1738- simple equalizer support (to be continued) 1739- added NAS patch from Martin Denn <mdenn@unix-ag.uni-kl.de> 1740- real mono support 1741- added pentium optimized decode_i586 from Stefan Bieschewski <stb@acm.org> 1742- fixed a bug in MS dequantize function 1743 17440.59k: (OF) 1745------ 1746- fixed "Accept" header in httpget.c 1747- fixed buffer overflow (causing core dumps) in httpget.c 1748- fixed display of song length 1749- fixed -b (buffer) problem on SGI / IRIX -- it definitely works now 1750- fixed problem when files with different sample rates where played, 1751 it now works with -b (buffer), too 1752- fixed order of local variables in decode.c to work around a 1753 compiler bug in ultrix 1754- fixed Makefile for ultrix 1755- reverted to old getbits.s (the new one could cause coredumps) 1756- more compact MPEG header display in non-verbose mode 1757- small fixes in buffer code and elsewhere 1758 17590.59j: (MH) 1760------ 1761- added sajber jukebox control interface (it's currently a big hack) 1762 (see 'JUKEBOX' file for more) 1763- added simple rewind facility .. (only used by sajber interface at the moment) 1764 17650.59i: (MH) 1766----------- 1767- added front-end (remote) patch from "Brian J. Swetland" <swetland@uiuc.edu> 1768- added OS2 patches from Niclas Lindstrom <nil@wineasy.se> 1769- fixed 'rewind bug' 1770- added patches from Leo Broukhis <leo@zycad.com> 1771- added shuffle patch from Tillmann Steinbrecher <tst@gmx.de> 1772- added i386-getbits from M.Stekelenburg <m.stekelenburg@student.utwente.nl> 1773- added fallback to 8bit if no 16bit samples support (currently linux only) 1774- added (slightly changed) outburst patch 1775 from Antti Andreimann <anttix@cyberix.edu.ee> 1776- added 'http accept' patch from Hur TaeSung <saturn@arari.snu.ac.kr> 1777- fixed buffer mode bug 1778 17790.59h: (MH) 1780------ 1781- added '--8bit' option to force 'ULAW 8 BIT' playing 1782- pcm buffer type changed to 'unsigned char *' 1783- plays 2:1 and 4:1 with the real frequency (ie 11025/22050 instead of 44100) 1784- program (re)sets (changed) frequency for every frame 1785- buffer mode is broken 1786 17870.59g: (MH) 1788------ 1789- added support for MPEG 2.5 (it's a HACK!) .. mpg123 understands and plays 1790 2.5 but it does it wrong. (you will hear this!) 1791- Fixed wrong values in BandInfo struct for 32kHz mode 1792- Some performance improvements and minor changes and bug-fixes. 1793- Tried the new imdct from the maplay1.2+ (version 1.81) package. (but 1794 it was slightly slower on my system, currently disabled) 1795 17960.59f: (OF) 1797------ 1798- HP-UX audio fix (provided by Damien Clermonte) 1799- Buffering (-b option) hopefully fixed. Please test! 1800 18010.59e: 1802------ 1803- added Audio MPEG 2.0 support (but near untested) (MH) 1804 18050.59d: (MH) 1806------ 1807- minor modifications to dct64_i386.c 1808- removed duplicated dependency 'dct64.o' in Makefile 1809 18100.59c: (OF) 1811------ 1812- Another complete rework of the buffer system (-b option) (normally uses 1813 mmap(), but it can also use SYSV-ShMem because mmap() is broken on linux). 1814 18150.59: (MH) 1816----- 1817- extracted dct64() from decode*.c files. 1818- some changes to dct64() and decode*.c to allow auto-increment/decrement 1819- removed bit-counter in getbit-functions. Layer3 part2 now counts it itself. 1820 18210.58: (OF) 1822----- 1823- Bugfix: not closing the audio device caused a few samples to be lost. 1824- Bugfix: audio_set_rate() was not called (!?!). 1825- Additional command line options "--doublespeed" and "--halfspeed" (couldn't 1826 find better names). See the manpage. 1827- Complete redesign of command line options. See the manpage. 1828- Changed the buffer algorithm (-b). I'm not sure whether it's better or worse 1829 now. 1830- Supports multiple files on the command line. Pressing Ctrl-C will skip to the 1831 next MPEG file, pressing it twice within one second will abort mpg123 1832 completely. See the "INTERRUPT" section in the manpage. 1833- Support for http URLs. See also the -p option in the manpage. 1834- Support for list files. See also the -@ option in the manpage. 1835 18360.57: (MH) 1837----- 1838- Put the downsampling code together with the full quality decode into one 1839 binary. (new options -2to1,-4to1) 1840- Optimizations in the dct12. 1841- Removed the 'int' version. 1842 18430.56: (OF) 1844----- 1845- Additional command line option "-rs" to try to resync on "broken" MPEG streams 1846 (now called "--resync" or "-y"). 1847- Additional command line option "-b" to use audio output buffering. See the 1848 manpage for additional information. 1849- Changed a few variable names and some other minor fixes, so the 1850 source compiles more cleanly (without warnings) on most platforms (for 1851 example, the FreeBSD port compiles without warnings using "-Wall -ansi 1852 -pedantic"). 1853- Makefile changes: moved "solaris" to "solaris-gcc", new target 1854 "solaris" (using Sun's SparcWorks cc, faster tha gcc!), new targets 1855 "aix" and "generic". 1856 18570.55: 1858----- 1859- removed some obsolete code from layer3.c (MH) 1860- changed scalefac stoing in layer3 (MH) 1861- decode_4to1.c added again. Renamed decode_lp.c to decode_2to1.c (MH) 1862 (both not optimized .. still expterimental) 1863- Minor cleanups and optimizations in layer3. (MH) 1864- Removed some (probable) minor bugs. (MH) 1865- Changed 2**(...) scaling (and omitted a few muls) (MH) 1866- Changed Makefile (OF) 1867- Changed dequantize to reorder with a mapping table 1868 (you can disable this by undefining MAP in layer3.c) (MH) 1869- removed the 'dummy' scale step for mixed mode (MH) 1870- Changed copy policy (MH) 1871- Modified dequant-reorder-mapping (MH) 1872 18730.54: (MH) 1874----- 1875- Minor changes in the documents .. 1876- huffman.c: x->len,y->len removed .. always '15' for the important cases 1877- audio.c: some additions to the SOLARIS audio code 1878 18790.53b: (OF) 1880------ 1881- Makefile: 1882-- Renamed SPARC10 to SUNOS (which is more appropriate). 1883 Tested with SunOS 4.1.4 on a SPARCstation SLC, 20 MHz (322% CPU, 1884 so no realtime decoding). 1885-- Added SOLARIS. Tested with Solaris 2.5.1 on an Ultra 1, 167 MHz (14% 1886 CPU), a SPARCstation 5, 110 MHz (47% CPU), and a SPARCstation 10, 33 MHz 1887 (68% CPU). 1888-- Added FreeBSD. Tested with 2.1.7 on a Pentium-90 (38% CPU) and 2.2 on a 1889 Pentium-166 (20% CPU). 1890-- Added Digital Unix. Tested with DU 3.2 on a DEC 3000/500 (Alpha AXP 1891 150 MHz, 33% CPU). Does not support DEC's audio interface ("AudioFile"), 1892 decodes to stdout only. 1893-- Improved "clean" target to remove core files and editor backup files. 1894-- Added "install" target. 1895-- Added "dist" target to create a .tar.gz file of the source directory. 1896-- In the distributed Makefile, all system sections are commented out. When 1897 you type "make" without uncommenting one of the sections, an appropriate 1898 error message will be displayed. 1899- audio.c 1900 Fixed problem when opening /dev/audio on Solaris: I had to remove O_NDELAY, 1901 because writing to /dev/audio didn't block until the requested number of 1902 samples could be written, but instead it wrote only as much samples as 1903 it was able too. Sounded funny. Removing O_NDELAY fixed the problem. 1904 I don't think that it hurts SunOS either, so I didn't make another #ifdef. 1905- common.c 1906 Fixed bug by adding function finish_output(): The decoder writes the audio 1907 samples into a buffer, and each time the buffer is full, it is written 1908 to the audio device (or to stdout). But when the decoding is done, 1909 there are some samples left in the buffer which aren't written yet -- 1910 they were just discarded. This additional function fixes the problem by 1911 writing the remaining samples from the buffer. It is called immediately 1912 after the main frame loop in mpg123.c. 1913- decode*.c 1914 Fixed compiler warning on symbol "div": Some compilers issue warnings 1915 because the symbol div is already used for something else (see "man div"), 1916 so I changed it to "divv". 1917- layer*.c Functions do_layer*: 1918-- Moved the declaration for audio_play_samples into mpg123.h. Makes the 1919 code cleaner. 1920-- I moved the variables pcm_samples and pcm_point to common.c, so they are 1921 shared between all modules. This was necessary because the finish_output() 1922 function (see common.c above) needs to access them. 1923-- Renamed loop variables "i" and "j" to "k" in order to fix compiler warnings 1924 for duplicate/hidden symbols (similar to "div" in decode*.c, see above). 1925 Changed the preprocessor symbol AUDIOBUFSIZE into a global variable 1926 "audiobufsize". This makes it possible to change it by a command 1927 line option. 1928- layer1.c 1929 Fixed error in function I_step_one, second parameter: unsigned int 1930 scale_index[2][] --> ...[2][SBLIMIT] This caused an error with the DU 1931 compiler (which is ok, because [2][] is incorrect according to ANSI). 1932 I don't know whether [2][SBLIMIT] actually works correctly (I have no 1933 layer-1 streams to test it), but at least it compiles without error, and 1934 it appears to be correct (looking at the rest of the source). Heaven knows 1935 why gcc doesn't issue an error, and what it actually makes from it. 1936- mpg123.1 1937 A simple manual page. Type "nroff -man mpg123.1 | more" to view it, or 1938 install it in /usr/local/man/man1 (this is done automatically by "make 1939 install"). 1940- mpg123.c 1941 New boolean variable "quiet": If this variable is set to TRUE (command line 1942 option -q), no messages are printed. 1943