Blame NEWS

Packit c32a2d
1.25.10
Packit c32a2d
-------
Packit c32a2d
Packit c32a2d
- libout123: Fix error messages beginning from OUT123_ARG_ERROR (bug 261).
Packit c32a2d
Packit c32a2d
1.25.9
Packit c32a2d
------
Packit c32a2d
- mpg123: Fix --icy-interval handling to work with stream from stdin.
Packit c32a2d
  (curl | mpg123 --icy-interval=n -)
Packit c32a2d
- libmpg123: Fix another invalid read and segfault on damaged (fuzzed)
Packit c32a2d
  files with part2_3_length == 0 (set maxband=1, pulled from upcoming 1.26.0).
Packit c32a2d
Packit c32a2d
1.25.8
Packit c32a2d
------
Packit c32a2d
- mpg123:
Packit c32a2d
-- Also disable cursor/video games for empty TERM (not just unset and dumb).
Packit c32a2d
- libmpg123:
Packit c32a2d
-- Accept changing mode extension bits when looking for next header for
Packit c32a2d
   detecting free-format streams (bug 257).
Packit c32a2d
-- Fix compute_bpf() for free format streams (needed to estimate track
Packit c32a2d
   length and working fuzzy seeking in absence of an Info tag).
Packit c32a2d
Packit c32a2d
1.25.7
Packit c32a2d
------
Packit c32a2d
- mpg123:
Packit c32a2d
-- Do not play with cursor and inverse video for progress bar
Packit c32a2d
   when TERM=dumb.
Packit c32a2d
-- Fix parsing of host port for numerical IPv6 addresses (just did
Packit c32a2d
   not work before, only for textual host names).
Packit c32a2d
- libmpg123:
Packit c32a2d
-- Proper fix for the xrpnt overflow problems by correctly
Packit c32a2d
   initialising certain tables for MPEG 2.x layer III. The checks that
Packit c32a2d
   catch the resulting overflow are still in place, but likely superfluous
Packit c32a2d
   now. Note that this means certain valid files would have been misdecoded
Packit c32a2d
   before, if anyone actually produced them. Thanks to Robert Hegemann for
Packit c32a2d
   the fix!
Packit c32a2d
-- Silently handle granules with part2_3_length == 0, but
Packit c32a2d
   scalefac_compress != 0 (ignore the latter).
Packit c32a2d
Packit c32a2d
1.25.6
Packit c32a2d
------
Packit c32a2d
- Hotfix for bug 255: Overflow reading frame data bits in layer II decoding.
Packit c32a2d
  Now, all-zero data is returned if the frame data is exhausted. This might
Packit c32a2d
  have a slight impact on performance, but not easily measurable so far.
Packit c32a2d
Packit c32a2d
1.25.5
Packit c32a2d
------
Packit c32a2d
- Avoid another buffer read overflow in the ID3 parser on 32 bit platforms
Packit c32a2d
  (bug 254).
Packit c32a2d
Packit c32a2d
1.25.4
Packit c32a2d
------
Packit c32a2d
- Better configure checks for i?86-apple-darwin (bug 253).
Packit c32a2d
- libmpg123:
Packit c32a2d
-- Prevent harmless call to memcpy(NULL, NULL, 0).
Packit c32a2d
-- More early checking of ID3v2 encoding values to avoid bogus text being
Packit c32a2d
   stored.
Packit c32a2d
Packit c32a2d
1.25.3
Packit c32a2d
------
Packit c32a2d
- libmpg123:
Packit c32a2d
-- Better checks for xrpnt overflow in III_dequantize_sample() before each
Packit c32a2d
   use, avoiding false positives and catching cases that were rendered
Packit c32a2d
   harmless by alignment-enlarged buffers.
Packit c32a2d
Packit c32a2d
1.25.2
Packit c32a2d
------
Packit c32a2d
- libmpg123:
Packit c32a2d
-- Extend pow tables for layer III to properly handle files with i-stereo and
Packit c32a2d
   5-bit scalefactors. Never observed them for real, just as fuzzed input to
Packit c32a2d
   trigger the read overflow. Note: This one goes on record as CVE-2017-11126,
Packit c32a2d
   calling remote denial of service. While the accesses are out of bounds for
Packit c32a2d
   the pow tables, they still are safely within libmpg123's memory (other
Packit c32a2d
   static tables). Just wrong values are used for computation, no actual crash
Packit c32a2d
   unless you use something like GCC's AddressSanitizer, nor any information
Packit c32a2d
   disclosure.
Packit c32a2d
-- Avoid left-shifts of negative integers in layer I decoding.
Packit c32a2d
Packit c32a2d
1.25.1: Hot Fuzz
Packit c32a2d
-------
Packit c32a2d
- libmpg123:
Packit c32a2d
-- Avoid memset(NULL, 0, 0) to calm down the paranoid.
Packit c32a2d
-- Fix bug 252, invalid read of size 1 in ID3v2 parser due to forgotten
Packit c32a2d
   offset from the frame flag bytes (unnoticed in practice for a long
Packit c32a2d
   time). Fuzzers are in the house again. This one got CVE-2017-10683.
Packit c32a2d
-- Avoid a mostly harmless conditional jump depending on uninitialised
Packit c32a2d
   fr->lay in compute_bpf() (mpg123_position()) when track is not ready yet.
Packit c32a2d
-- Fix undefined shifts on signed long mask in layer3.c (worked in practice,
Packit c32a2d
   never right in theory). Code might be a bit faster now, even.
Packit c32a2d
   Thanks to Agostino Sarubbo for reporting.
Packit c32a2d
Packit c32a2d
1.25.0: MP3 now patent-free worldwide!
Packit c32a2d
-------
Packit c32a2d
- Silence test for artsc-config if it is not there.
Packit c32a2d
- Make sure -static-libgcc from LDFLAGS gets through libtool,
Packit c32a2d
  fixing 32 bit Windows builds (depend on libgcc DLL otherwise).
Packit c32a2d
- Fix build with non-GNU make by using plain rm -f instead of silly $(RM)
Packit c32a2d
  in libout123/modules makefile fragment.
Packit c32a2d
- Make build work on iOS, including coreaudio backend.
Packit c32a2d
- libmpg123:
Packit c32a2d
-- Finally provide position-independent code for x86 with assembly
Packit c32a2d
   optimisations.The textrels are gone thanks to Won Kyu Park and Taihei Momma.
Packit c32a2d
-- Clarify some license language in files descending from the original MMX
Packit c32a2d
   optimisation.
Packit c32a2d
-- Fix return value overflow check for MPG123_BUFFERFILL.
Packit c32a2d
-- Introduced mpg123_getformat2() to enable the FORMAT command
Packit c32a2d
   for the generic control not stealing MPG123_NEW_FORMAT from the main
Packit c32a2d
   playback loop. The sequence LOADPAUSED-FORMAT-PAUSE (play) is supposed
Packit c32a2d
   to work now.
Packit c32a2d
-- Enable aarch64 optimisations on *BSD by default, too. You can always
Packit c32a2d
   override that stupid OS whitelist using --with-optimization, anyway.
Packit c32a2d
-- Use of the i486 decoder is now discouraged more prominently, in configure
Packit c32a2d
   output.
Packit c32a2d
- out123: Fix stupid crash with verbose mode and tone generation (print
Packit c32a2d
  the string if the pointer is non-null, not if it is null).
Packit c32a2d
- libout123: More consistent error messages for dynamic and legacy
Packit c32a2d
  (built-in) modules. Namely, you get a hint how if you choose a different
Packit c32a2d
  module than the built-in ones for a static libout123.
Packit c32a2d
Packit c32a2d
1.24.0:
Packit c32a2d
-------
Packit c32a2d
- Avoid repeating genre in metadata printout for specifications like
Packit c32a2d
  (144)Thrash Metal.
Packit c32a2d
- In remote control mode, only enforce --quiet if no verbosity was required.
Packit c32a2d
- Prevent --loop and --shuffle or --random from messing with the remote
Packit c32a2d
  control LOADLIST command (printout of the list would loop without reason).
Packit c32a2d
- Fix the mpg123 command (esp. our provided binaries on Windows) to now find
Packit c32a2d
  modules again relative to the executable directory, not the current working
Packit c32a2d
  directory. This was a regression in 1.23 and might be security-relevant if
Packit c32a2d
  you called mpg123 in working directories with untrusted content.
Packit c32a2d
  Note that mpg123 1.23 looked for modules relative to the current working
Packit c32a2d
  directory only if the installation prefix for modules did not exist.
Packit c32a2d
  So, usage on an intact installation (with /usr/lib/mpg123 or the like) was
Packit c32a2d
  safe. Nevertheless this new version fixes the search to be relative to the
Packit c32a2d
  binary path as it was with 1.22 and before.
Packit c32a2d
- At least consistent behaviour of playlist code in the face of looping.
Packit c32a2d
  Looping is about individual tracks, always. They are looped also in random
Packit c32a2d
  mode. Jumping (prev/next keys) is between tracks and resets the loop counter.
Packit c32a2d
  The display of currently playing track in the playlist is fixed for random
Packit c32a2d
  and looped play now (bug 198).
Packit c32a2d
- Looping is now mentioned for a to-be-repeated track with --verbose.
Packit c32a2d
- Move some compiler nagging from --enable-debug to --enable-nagging, fix up
Packit c32a2d
  some new build failures by adding some pesky feature test macros.
Packit c32a2d
- Try not to pollute the terminal buffer with old progress bars in inverse
Packit c32a2d
  video. Only the currently live one shall be seen. That one is pretty. The
Packit c32a2d
  others are not.
Packit c32a2d
- Using plain dlopen()/LoadLibrary() for opening modules instead of libltdl.
Packit c32a2d
  This also means that --with-module-suffix is gone in configure.
Packit c32a2d
- Windows builds only work when Unicode support is there (older than Windows
Packit c32a2d
  2000/XP will definitely not work anymore).
Packit c32a2d
- The out123 tool now features tone generation, with a mix of differing
Packit c32a2d
  wave patterns. Makes sense to be able to test the audio output by itself,
Packit c32a2d
  and it's fun. See --wave-freq and related parameters.
Packit c32a2d
- libmpg123 version 43:
Packit c32a2d
-- Add flags MPG123_NO_PEEK_END and MPG123_FORCE_SEEKABLE, as suggested
Packit c32a2d
   by Bent Bisballe Nyeng.
Packit c32a2d
-- Build fix for MSVC (consistent definition of ssize_t, spotted by manx,
Packit c32a2d
   bug 243).
Packit c32a2d
-- Build fix for --with-cpu=ppc_nofpu (thanks to Michael Kostylev, bug 244).
Packit c32a2d
-- Add asm optimized MSVC++ Win32|x64 and UWP|x64 builds
Packit c32a2d
-- Remove old, broken MSVC++ builds
Packit c32a2d
- libout123 version 2:
Packit c32a2d
-- Added OUT123_BINDIR.
Packit c32a2d
-- New search order for output plugin directory: MPG123_MODDIR, or (relative
Packit c32a2d
   to executable directory OUT123_BINDIR) ../lib/mpg123, plugins
Packit c32a2d
   libout123/modules/.libs, libout123/modules, ../libout123/modules/.libs,
Packit c32a2d
   ../libout123/modules, and at last the installation prefix $libdir/mpg213/.
Packit c32a2d
   This shall ensure that a build inside a source tree does not try to use old
Packit c32a2d
   modules from the system prefix. The normal libtool wrapper deals with the
Packit c32a2d
   shared libout123 or libmpg123 only, not modules.
Packit c32a2d
   Note that if you set MPG123_MODDIR to a non-existing directory, no modules
Packit c32a2d
   will be found (earlier versions fell back to other choices).
Packit c32a2d
-- The OUT123_NAME parameter is now copied by out123_param_from(), as is
Packit c32a2d
   the newly added OUT123_BINDIR.
Packit c32a2d
-- Coreaudio: Use AudioComponents API on OSX >= 10.6 (thanks to Michael Weiser).
Packit c32a2d
-- Coreaudio: Fix behaviour of out123_drop(), not killing the output anymore
Packit c32a2d
   without re-opening the device (bug 236, thanks to Taihei for the fix).
Packit c32a2d
Packit c32a2d
1.23.8
Packit c32a2d
------
Packit c32a2d
- Fix long-standing bad memory read (via integer underflow) in ID3 parser
Packit c32a2d
  for crafted ID3v2 tags with tiny size information (bug 240). Thanks to
Packit c32a2d
  Han Lee & Jerold Hoong for the detailed report.
Packit c32a2d
Packit c32a2d
1.23.7
Packit c32a2d
------
Packit c32a2d
- Fix the bad RPM spec file (broken since out123 addition, thanks
Packit c32a2d
  to Srikanth Rao for noticing).
Packit c32a2d
- More out123_pause() in generic control mode, working around
Packit c32a2d
  bug 236. The coreaudio output needs to be more robust, though.
Packit c32a2d
- Do not undef MPG123_EXPORT in the headers, rather be prepared for it
Packit c32a2d
  being defined already. This fixes MSVC builds, broken since 1.23.0
Packit c32a2d
  (bug 239).
Packit c32a2d
Packit c32a2d
1.23.6
Packit c32a2d
------
Packit c32a2d
- call out123_pause() instead of out123_stop() in remote control STOP
Packit c32a2d
  command, fixing the regression in 1.23.x of not being able to resume
Packit c32a2d
  playback with another LOAD unless the new track has differing audio
Packit c32a2d
  format (bug 234)
Packit c32a2d
Packit c32a2d
1.23.5
Packit c32a2d
------
Packit c32a2d
- libout123:
Packit c32a2d
-- fix build of portaudio and SDL on win32 (too many parentheses,
Packit c32a2d
   thanks to Sandro Cumerlato for pointing it out)
Packit c32a2d
-- make out123_errcode() return OUT123_BAD_HANDLE as documented
Packit c32a2d
   (adding that value to the error enum, was documented but missing),
Packit c32a2d
   again thanks to Sandro
Packit c32a2d
- fix windows-builds.sh (shell quoting in copying stage) and add some
Packit c32a2d
  bits to shipped header to make it directly usable in MSVC (define ssize_t,
Packit c32a2d
  bug 232)
Packit c32a2d
- no overwriting of LIBS in Makefile (build system regression in 1.23,
Packit c32a2d
  thanks to Peter Korsgaard for reporting that one)
Packit c32a2d
- no printing of message in response to SIGPIPE, as that could trigger
Packit c32a2d
  a hang if stderr itself is the piped culprit (regression from 1.22, bug 233)
Packit c32a2d
Packit c32a2d
1.23.4
Packit c32a2d
------
Packit c32a2d
- mpg123: Fix logic of prebuffering small bits for glitch-free start of
Packit c32a2d
  playback. The logic as introduced in 1.23.0 actually introduced stuttering!
Packit c32a2d
  The fix for this is really minimal and I urge everyone to at least include
Packit c32a2d
  that one. It is the changeset of rev. 4041.
Packit c32a2d
- libout123:
Packit c32a2d
-- Actually make OUT123_KEEP_PLAYING on by default, as documented.
Packit c32a2d
-- Fix buffer logic with regard to draining, use common device writing
Packit c32a2d
   code to handle resuming from pause. This fixes sdl output with buffer,
Packit c32a2d
   possibly other sfifo-based outputs like CoreAudio (those were poorly
Packit c32a2d
   tested with buffer, as the combination is indeed unusual, see bug 230).
Packit c32a2d
-- Buffer pauses devices for prebuffering, to avoid underruns.
Packit c32a2d
-- More reliable playback with SDL, Portaudio and CoreAudio outputs.
Packit c32a2d
   This includes FIFO draining on close to avoid dropping of the end.
Packit c32a2d
   It should fix parts of bug 230.
Packit c32a2d
-- Fixed memory leaks with some outputs where a call to the deinit()
Packit c32a2d
   function is necessary during available/working module checking.
Packit c32a2d
- mpg123, out123: Use the default output flags to get OUT123_KEEP_PLAYING.
Packit c32a2d
  Without this, there is a good chance to abort on SIGSTOP/CONT while playing.
Packit c32a2d
  This is a regression from 1.22 .
Packit c32a2d
- Build fixes (bugs 227 and 228) and some build system hackery.
Packit c32a2d
  Gone are libc feature test macros in compat.h . This means always
Packit c32a2d
  using our own strdup() implementation. Simpler than being bugged by
Packit c32a2d
  feature test macros in strict compiler mode (when _DEFAULT_SOURCE is not
Packit c32a2d
  defined).
Packit c32a2d
- ./configure --enable-nagging does something also without --enable-debug,
Packit c32a2d
  explictly triggers -std=c89, too (hence the above).
Packit c32a2d
- Some fixup to make things work in pedantic C89 mode again.
Packit c32a2d
  It really might be time to swich on some serious C99 for the next release,
Packit c32a2d
  since there's a followup standard to _that_ which we can ignore now.
Packit c32a2d
- Update list of renamed internal symbols to reduce conflicts during static
Packit c32a2d
  linking of libmpg123 or libout123.
Packit c32a2d
- Internal compatibility functions now handled via libtool convenience
Packit c32a2d
  archives, avoiding the hackish code copies.
Packit c32a2d
Packit c32a2d
1.23.3:
Packit c32a2d
-------
Packit c32a2d
- mpg123: Man page fixes by ESR.
Packit c32a2d
- Actually check for sys/select.h (again?) in configure so that it is used.
Packit c32a2d
  Fixes build on a Cygwin install, at least.
Packit c32a2d
- libmpg123: Always default to enabled IEEE 754 hack for rounding on all
Packit c32a2d
  platforms, use ./configure --disable-ieeefloat if you do not want it.
Packit c32a2d
  As a protection for the exotic machine that does not use IEEE floating
Packit c32a2d
  point storage format, mpg123_init() will error out early if the rounding
Packit c32a2d
  does not work out.
Packit c32a2d
Packit c32a2d
1.23.2:
Packit c32a2d
-------
Packit c32a2d
- mpg123: Fix compact ID3 tag printing to take UTF-8 character count
Packit c32a2d
  into account again (thoughtless regression in 1.23.0).
Packit c32a2d
Packit c32a2d
1.23.1:
Packit c32a2d
-------
Packit c32a2d
- libout123:
Packit c32a2d
-- Fix logic to prevent cases of output devices being closed more than once
Packit c32a2d
   (stop after pausing triggered multiple close calls, which broke sndio, for
Packit c32a2d
   example).
Packit c32a2d
-- Fix JACK output handling of port wishlist, was simply broken for more than
Packit c32a2d
   two ports (-o jack -a port1,port2,port3). Now, it is ensured that each
Packit c32a2d
   output ports gets some connection to an out123 channel, possibly splitting
Packit c32a2d
   one to multiple ports or mixing multiple channels into one port (cyclic
Packit c32a2d
   connection scheme). Note that this does only apply for an explicitly given
Packit c32a2d
   list of ports. You can still use --stereo to ensure that two output ports
Packit c32a2d
   (if found) are used also for mono tracks.
Packit c32a2d
-- Also use jack_free() in JACK output for ports list.
Packit c32a2d
-- And finally, ensure that pthread library is linked to JACK module (would need
Packit c32a2d
   hacking to work on non-POSIX, replacing sem_t with equivalent).
Packit c32a2d
Packit c32a2d
- mpg123:
Packit c32a2d
-- Hide networking-related command-line parameters when disabled.
Packit c32a2d
Packit c32a2d
1.23.0:
Packit c32a2d
-------
Packit c32a2d
- libmpg123 version 42
Packit c32a2d
-- This adds mpg123_framelength() and makes mpg123_position() truly obsolete.
Packit c32a2d
-- Equalizer optional now (./configure --disable-equalizer) to save precious
Packit c32a2d
   memory
Packit c32a2d
-- Clip decode tables for large amplification with fixed-point decoders.
Packit c32a2d
   Without that, high-pitched distortion enters really quickly when
Packit c32a2d
   trying to increase volume even if output samples would not be clipped,
Packit c32a2d
   weren't it for fixed-point math.
Packit c32a2d
- libout123 version 1: First incarnation of libout123, a basic library to
Packit c32a2d
  get audio data written to audio devices (or files) in simple blocking
Packit c32a2d
  manner as opposed to callback APIs (which it wraps over). This collects
Packit c32a2d
  the output modules of mpg123 and makes them available to the wider
Packit c32a2d
  masses. Also, the separate shared memory buffer process (contained
Packit c32a2d
  in libout123) got a lot of reworking which should be noticable in the
Packit c32a2d
  interaction with terminal control.
Packit c32a2d
-- Some tuning of several output drivers (modules) regarding flexible
Packit c32a2d
   buffer size, client names, supported formats.
Packit c32a2d
-- Notably the JACK output got a major overhaul and now does not swallow
Packit c32a2d
   audio at the end anymore. Huge latency also reduced and tunable. Encoding
Packit c32a2d
   fixed to floating point, so that libmpg123 actually chooses what is
Packit c32a2d
   sensible.
Packit c32a2d
- Added mpg123 --no-infoframe.
Packit c32a2d
- Detect terminal on input side and enable control keys automatically.
Packit c32a2d
  There is --no-control now to disable terminal control anyway.
Packit c32a2d
- Display stuff:
Packit c32a2d
-- Avoid spillover of status line that caused unwanted terminal scrolling.
Packit c32a2d
   If the terminal width is smaller than the full status string, a cut is
Packit c32a2d
   made to make it fit.
Packit c32a2d
-- Draw a progress bar on the terminal by inversing colors behind status
Packit c32a2d
   line.
Packit c32a2d
-- Rework the format of the status line to be more compact and consistent.
Packit c32a2d
-- Rework smart tag printout for adapting to terminal width.
Packit c32a2d
-- Warning messages also start with a line break now to better fit in with
Packit c32a2d
   verbose playback.
Packit c32a2d
-- Doubly-verbose mode now needed for long MPEG header print out.
Packit c32a2d
   It is a higher level of verbosity than printing the current position.
Packit c32a2d
   The compact header is a better fit.
Packit c32a2d
-- Compact header printout also compacted, example:
Packit c32a2d
   MPEG 1.0 L III cbr128 44100 j-s
Packit c32a2d
-- Reporting of clipped samples also includes a line break now.
Packit c32a2d
-- Keep ID3v2 data around for terminal control to be able to print on
Packit c32a2d
   demand. That was broken for some time.
Packit c32a2d
- Default for --preload now is 0.2 instead of 1 (fill whole buffer before
Packit c32a2d
  playback). The maximum is 0.5 . This is mandated by corrected buffer
Packit c32a2d
  interaction in libout123.
Packit c32a2d
- Improved interaction with buffer process in terminal control mode.
Packit c32a2d
  Seeking is more transparent now, taking dropped samples from buffer into
Packit c32a2d
  account to avoid unintended jumps. Direct seeks with number row do not
Packit c32a2d
  pause playback anymore.
Packit c32a2d
- Silently skip APE tags (thanks to Hans de Goede).
Packit c32a2d
- Some reduction in bitrot on AIX (typos in output module, build with
Packit c32a2d
  --disable-largefile --with-audio=aix, real test welcome).
Packit c32a2d
- Added '[' and ']' keys to skip to previous/next directory in playlist.
Packit c32a2d
- Added support for Haiku to configure script (thanks to Jerome Duval).
Packit c32a2d
- Remove spurious Frankenstein warning when scanning files that have no
Packit c32a2d
  gapless info (the reported value of -1152 gapless sample length should be
Packit c32a2d
  a giveaway anyway).
Packit c32a2d
- Fix a bug in the command line parser that was present from the beginning,
Packit c32a2d
  apparently, causing certain parameters (--au, --cdr) to kill off parsing
Packit c32a2d
  of following ones. Nobody complained in all these years. Astounding.
Packit c32a2d
- Forget content type from HTTP redirects (relate to error pages, not the
Packit c32a2d
  stream redirected to), fixes web radio streams that do not send any
Packit c32a2d
  content type for the actual stream.
Packit c32a2d
- Accept application/pls+xml for PLS playlists. It happens. Don't ask
Packit c32a2d
  mpg123 to actually parse any XML!
Packit c32a2d
- Ignore whitespace after HTTP MIME types (esp. before a ";").
Packit c32a2d
- Added --name to mpg123 and out123 for providing client name p.ex. for JACK.
Packit c32a2d
  There is no default of appending the PID to "mpg123" as client name anymore,
Packit c32a2d
  just plain "mpg123" or "out123".
Packit c32a2d
- Added --devbuffer to mpg123 and out123 for influencing device buffer and
Packit c32a2d
  possible latency a bit (perhaps more so in future when drivers are adapted
Packit c32a2d
  to pay more attention to that).
Packit c32a2d
- Added out123 --channels <n>, --list-encodings, --test-format,
Packit c32a2d
  --test-encodings, --query-format.
Packit c32a2d
- Calling ./configure --enable-nagging does not include --enable-debug anymore,
Packit c32a2d
  you specify that separately.
Packit c32a2d
- Fix for newer glibc that wants higher POSIX feature test for getaddrinfo()
Packit c32a2d
  stuff.
Packit c32a2d
Packit c32a2d
1.22.4:
Packit c32a2d
-------
Packit c32a2d
- Fix stupid regression introduced with a bugfix in 1.14.1 to make
Packit c32a2d
  free format streams work again. It took 3 years for someone to notice.
Packit c32a2d
  I added a regression test for that now!
Packit c32a2d
Packit c32a2d
1.22.3:
Packit c32a2d
-------
Packit c32a2d
- Fix UTF-16 surrogate detection because that used to falsely detect
Packit c32a2d
  characters above 0xDFFF as surrogates (bug 216).
Packit c32a2d
Packit c32a2d
1.22.2:
Packit c32a2d
-------
Packit c32a2d
- Fix buffering for funny sample formats (namely, 24 bit), that do not
Packit c32a2d
  fit nicely into 32768 bytes. Effect was a nasty endless loop where
Packit c32a2d
  mpg123 needs to be externally killed.
Packit c32a2d
Packit c32a2d
1.22.1:
Packit c32a2d
-------
Packit c32a2d
- Fix mpg123-id3dump when writing images with funny (manipulated) MIME type.
Packit c32a2d
  Stupid mistake in length computation of the fallback file extension caused
Packit c32a2d
  junk from memory being appended to the filename if the pointer size
Packit c32a2d
  is less than 64 bit. For 64 bit pointers (or longer) it was correct by
Packit c32a2d
  accident.
Packit c32a2d
- Fix pedantic build by cleaning up out123 source, also now really showing
Packit c32a2d
  the encoding list in --longhelp instead of possibly, again, writing junk
Packit c32a2d
  from memory in there.
Packit c32a2d
- Not linking libmpg123 against libltdl anymore (bug 215).
Packit c32a2d
- Update MSVC++ ports a bit to make them work again.
Packit c32a2d
Packit c32a2d
1.22.0:
Packit c32a2d
-------
Packit c32a2d
- libmpg123 version 41
Packit c32a2d
- Build fix: Avoid name clash on OSX SDK with "normal" being defined in
Packit c32a2d
  an enum already.
Packit c32a2d
- More resilience against folks who do not check errors and rather pass
Packit c32a2d
  NULL pointers around (see NEWS.libmpg123).
Packit c32a2d
  This changes some return values to MPG123_BAD_HANDLE instead of MPG123_ERR
Packit c32a2d
  (always check for != MPG123_OK).
Packit c32a2d
- Fix WAV writing to stdout on Windows (bug 214).
Packit c32a2d
- Rework Xing/Info/Lame tag parsing, also detecting short ones without
Packit c32a2d
  the TOC now.
Packit c32a2d
  In addition, the warning about file size being off is a _lot_ more
Packit c32a2d
  accurate now.
Packit c32a2d
Packit c32a2d
1.21.0:
Packit c32a2d
-------
Packit c32a2d
- Use LL as shortcut for LOADLIST remote command, L is taken already (bug 210).
Packit c32a2d
- Less namespace pollution (MPG123_EXPORT in header instead of EXPORT, bug 212).
Packit c32a2d
Packit c32a2d
1.20.1:
Packit c32a2d
-------
Packit c32a2d
- Make feed reader more efficient when skipping junk by early discarding
Packit c32a2d
  of data from buffers to avoid re-parsing.
Packit c32a2d
Packit c32a2d
1.20.0:
Packit c32a2d
-------
Packit c32a2d
- Added NEON optimized decoder for AArch64 (ARM 64bit environment)
Packit c32a2d
-- enabled for --with-cpu=neon64 (NEON only) or --with-cpu=aarch64 (runtime
Packit c32a2d
   switch between neon and generic_fpu, like arm_fpu) configuration
Packit c32a2d
-- compatible with aarch64-linux-gnu toolchains (from Ubuntu, debian)
Packit c32a2d
   and Xcode 5
Packit c32a2d
- Added new binary out123 only with the audio output part of mpg123.
Packit c32a2d
  This is a precursor to separating out said code into a simple audio
Packit c32a2d
  output library. It also allows plugging in some processing in a pipe
Packit c32a2d
  before feeding to output.
Packit c32a2d
- Prevent opendir(NULL) for unknown module directory when listing modules.
Packit c32a2d
- some build fixes, among those fixing mpg123-id3dump on Windows
Packit c32a2d
Packit c32a2d
1.19.0:
Packit c32a2d
-------
Packit c32a2d
- libmpg123 version 40
Packit c32a2d
- Support float and 32/24 bit integer output also with fixed-point decoders
Packit c32a2d
  (conversion from 16 bit precision).
Packit c32a2d
- A-Law output encoding is actually implemented now (Michael introduced
Packit c32a2d
  the encoding back in the old days without ever implementing theconversion
Packit c32a2d
  table, apparently).
Packit c32a2d
- Added --with-cpu=arm_fpu as decoder choice for runtime switch between
Packit c32a2d
  plain fpu code and NEON.
Packit c32a2d
- Fix ARM builds to work properly on debian systems without special CFLAGS
Packit c32a2d
  (NEON decoder, specifically).
Packit c32a2d
- Make scripts/benchmark-cpu.pl check the return value instead of delivering
Packit c32a2d
  crazy timings for crashed mpg123.
Packit c32a2d
- Trigger track initialization in mpg123_info() to avoid use of uninitialized
Packit c32a2d
  variables (watch out for MPG123_NEED_MORE return value!).
Packit c32a2d
- Fix integer code to 32 bit numbers where it would waste 64 bit on
Packit c32a2d
  modern systems.
Packit c32a2d
- Add non-executable stack marking also to ARM assembly.
Packit c32a2d
Packit c32a2d
1.18.1:
Packit c32a2d
-------
Packit c32a2d
- Do not close buffer twice with mpg123 -R (delete outdated code in
Packit c32a2d
  control_generic(), fixing bug 207.
Packit c32a2d
- Do not mess around with first command line argument to extract program
Packit c32a2d
  name, use a copy instead, fixing bug 205.
Packit c32a2d
- Prevent premature exit on timing of failure to open a track in the
Packit c32a2d
  playlist and the user wanting to skip over it (bug 206).
Packit c32a2d
- Fixup of HTTP socket mess, also avoiding unnecessary FILE objects (bug
Packit c32a2d
  204, patch by Rajeev V. Pillai).
Packit c32a2d
- Fix playlist behaviour on slow HTTP streams, jumping back ('d' key)
Packit c32a2d
  from first track stays at first track (thanks to Rajeev again, sub-bug of
Packit c32a2d
  bug 206).
Packit c32a2d
- Fix Frankenstein check not to stumble over ID3v1 tags. My apologies. As
Packit c32a2d
  a bonus, the position of the concerned code in the parser is now far
Packit c32a2d
  more logical.
Packit c32a2d
Packit c32a2d
1.18.0:
Packit c32a2d
-------
Packit c32a2d
- libmpg123 version 39
Packit c32a2d
- Big version increase for clear distinction regarding the 1.14.x regression
Packit c32a2d
  fixes in libmpg123.
Packit c32a2d
- Regression fix: Ensure decoder reinitialization on combination of seek
Packit c32a2d
  and resync (buffer overflow bug 201, introduced in 1.14.1).
Packit c32a2d
- Regression fix: Make parsing really end on reaching of junk limit
Packit c32a2d
  (introduced in 1.14.4).
Packit c32a2d
- Add check for bad bit allocation value in layer I decoder (removes
Packit c32a2d
  audible glitch in bug 201 test file).
Packit c32a2d
- Avoid wrong error message about Frankenstein streams when gapless
Packit c32a2d
  decoding disabled.
Packit c32a2d
- Be verbose about big header changes (Frankenstein streams). Note that
Packit c32a2d
  changes in samples per frame will confuse the seeking code, but decoding
Packit c32a2d
  can get through.
Packit c32a2d
- Actually use the full routine to close tracks. Avoids socket leak when
Packit c32a2d
  playing multiple HTTP streams from a playlist (bug 203).
Packit c32a2d
- Send correct host header when connecting through HTTP proxy (bug 202,
Packit c32a2d
  figured out by Rajeev V. Pillai).
Packit c32a2d
- The console application now informs about changed major stream properties
Packit c32a2d
  (prints out another header line).
Packit c32a2d
Packit c32a2d
1.17.0:
Packit c32a2d
-------
Packit c32a2d
- mpg123-id3dump --no-scan; for speedup
Packit c32a2d
- hide -C parameter from mpg123 --help when it is not supported
Packit c32a2d
- added tinyalsa Output (by Jarno Lehtinen)
Packit c32a2d
- build system tweaking
Packit c32a2d
- some care for fixing Cygwin builds
Packit c32a2d
Packit c32a2d
1.16.0:
Packit c32a2d
-------
Packit c32a2d
- Taihei strikes again:
Packit c32a2d
-- New Huffman decoding scheme (configurable, on by default) brings nice
Packit c32a2d
   boost to mpg123 to make it the fastest decoder on modern CPUs again.
Packit c32a2d
-- new AVX decoder
Packit c32a2d
-- assembly-optimized DCT36 for SSE and AVX
Packit c32a2d
- added configs for vintage 3DNow(ext) CPUs (AMD K6) utilizing assembly DCT36
Packit c32a2d
- added configs for vintage SSE CPUs (Pentium M), utilizing C DCT36
Packit c32a2d
- added FORMAT command to generic control
Packit c32a2d
- added support for ID3v2 APIC frames
Packit c32a2d
- added mpg123-id3dump as official companion to extract meta data
Packit c32a2d
  (including writing of album art from APIC to files)
Packit c32a2d
- added mpg123-strip as official companion to strip dirt out of MPEG streams
Packit c32a2d
  (including meta data)
Packit c32a2d
- not deleting ID3 data right after printing in generic control
Packit c32a2d
- module loader a bit more flexible with relative MPG123_MODDIR
Packit c32a2d
- Fix chopped-off playback with pulseaudio output: draining the output
Packit c32a2d
  now on closing.
Packit c32a2d
- SDL output fixup, a) not chopping off end and b) non-fatal underrun
Packit c32a2d
- Fix obvious errors in win32 output ... does it now play the end of
Packit c32a2d
  tracks? Need someone to test this.
Packit c32a2d
- added support for screen and iris-ansi terminals with --title (as prompted
Packit c32a2d
  by patch from sf.net user canavan)
Packit c32a2d
- fixes/enhancements for sgi audio output
Packit c32a2d
- libmpg123: proper largefile aliases for proper systems (FreeBSD with
Packit c32a2d
  one one-and-only off_t
Packit c32a2d
  This enables client software that insists on defining pointless
Packit c32a2d
  _FILE_OFFSET_BITS.
Packit c32a2d
- wrapper script src/mpg123-with-modules to ease the pain of running mpg123
Packit c32a2d
  with modules without installation (setting MPG123_MODDIR)
Packit c32a2d
- removed ALSA 0.5 code (unused for longtime, last GPL-only bit)
Packit c32a2d
Packit c32a2d
1.15.4:
Packit c32a2d
-------
Packit c32a2d
- Writing CDDA data via --cdr works again; had also been broken by attempts
Packit c32a2d
  to catch failing writes because of full disk.
Packit c32a2d
- Also, the return values of WAV/CDR writing routines now properly indicate
Packit c32a2d
  error to avoid stupid endless loop of "smart" audio writing code that wants
Packit c32a2d
  to handle interruptions. Really, --cdr could just go and nobody would miss
Packit c32a2d
  it ...
Packit c32a2d
- Fix stupid bug in mpg123_chomp_string() (introduced in 1.15.1), empty
Packit c32a2d
  lines were badly treated. Only usage in mpg123 is for parsing HTTP redirect
Packit c32a2d
  headers; malicious HTTP servers might exploit that (possibility to zero
Packit c32a2d
  bytes in memory).
Packit c32a2d
- some cleanup for nagging mode
Packit c32a2d
- more resync strictness to really catch (all) cases with changing decoder
Packit c32a2d
  structure; in practice badly needed when disabling seekbuffer (so it's
Packit c32a2d
  your fault, somehow ...) for non-seekable streams, otherwise not really
Packit c32a2d
  an issue because of readahead checking
Packit c32a2d
  I repeat: This fixes possibly fatal behaviour in the parser when readahead
Packit c32a2d
  checking is explicitly disabled (p.ex. via mpg123 --no-seekbuffer on
Packit c32a2d
  http streams). By default, readahead checking is _always_ active!
Packit c32a2d
- build system fixed for automake 1.13 (thanks to Nix)
Packit c32a2d
Packit c32a2d
1.15.3
Packit c32a2d
---
Packit c32a2d
- Fix WAV writing. AGAIN. People love to decode WAV to stdout in various
Packit c32a2d
  ways that started to get broken with me starting to care for people who
Packit c32a2d
  like to write to full disks. I frikkin' HATE this rat race! I'm even
Packit c32a2d
  starting to SHOUT. Now, the code prefers to write no header at all (when
Packit c32a2d
  there is no actual output) instead of possibly writing too many misleading
Packit c32a2d
  ones. Getting the blame for breaking dir2ogg repeatedly while trying to
Packit c32a2d
  cope with one fatal situation that you cannot really cope with sucks. Big
Packit c32a2d
  time. I hope that's it now!
Packit c32a2d
Packit c32a2d
1.15.2:
Packit c32a2d
-------
Packit c32a2d
- build fix with older shells (== in configure)
Packit c32a2d
Packit c32a2d
1.15.1:
Packit c32a2d
-------
Packit c32a2d
- libmpg123 API version 37
Packit c32a2d
- Fix corner case in HTTP communication with missing path in Location header
Packit c32a2d
  (bug 187).
Packit c32a2d
- Prevent nasty alignment issues by not guessing about assembler alignment
Packit c32a2d
  when .balign is available (bug 188).
Packit c32a2d
Packit c32a2d
1.15.0:
Packit c32a2d
-------
Packit c32a2d
- Added --continue (also see scripts/conplay).
Packit c32a2d
- Added number row to terminal control keys for 10% jump points (for
Packit c32a2d
  navigating long tracks).
Packit c32a2d
- Set xterm title always if asked, disregarding the -q switch (if you want
Packit c32a2d
  fully quiet, don't specify --title).
Packit c32a2d
- Enable terminal mode in OS/2 by explicitly checking for and using
Packit c32a2d
  os2term library.
Packit c32a2d
- Getting WAV/AU/CDR writing back to a sane state while still catching
Packit c32a2d
  out-of-disk when writing headers (none in case of CDR) but removing
Packit c32a2d
  that initial test that prevented writing on any non-seekable file (like,
Packit c32a2d
  /dev/stdout to a pipe).
Packit c32a2d
- Added native audio output for QNX (thanks to Mike Gorchak), also improving
Packit c32a2d
  portability of configure script while at that.
Packit c32a2d
- more robust recovery from ALSA issues (device suspend)
Packit c32a2d
- Fix crash in module loader on *BSD.
Packit c32a2d
- Extend time display to switch to hours above 60 minutes (hh:mm:ss,
Packit c32a2d
  ditching the sub-second precision)
Packit c32a2d
- really include dithering in default x86-64 build.
Packit c32a2d
- Fix mpg123_scan() not properly seeking back for all types of files (bug
Packit c32a2d
  3582628 ... it got a different number on sf.net now ... brilliant, folks!).
Packit c32a2d
- Prevent false positives for "Frankenstein!" when using mpg123_scan().
Packit c32a2d
- Fix printing of negative positions with buffer (bug 186).
Packit c32a2d
- Accept application/x-scpls as additional MIME type.
Packit c32a2d
- Try to handle certain Windows toolchains that miss EOVERFLOW.
Packit c32a2d
Packit c32a2d
1.14.4:
Packit c32a2d
-------
Packit c32a2d
Who reworks a parsing and data mangling without really making sure that
Packit c32a2d
things still work like before? I hope I won't do so in future. Not again.
Packit c32a2d
Packit c32a2d
- Fix resync logic to properly work again (used to prematurely end stream
Packit c32a2d
  on bad headers). A regression again, this sucks, but at least we got a
Packit c32a2d
  regression test for that now.
Packit c32a2d
- Fix aeon-old regression (since 1.11.0) about short seeks: Bit reservoir
Packit c32a2d
  was reset also for short seeks that did not break continuity.
Packit c32a2d
- Another damned regression got fixed: Sample-accurate seek for files
Packit c32a2d
  without full gapless info.
Packit c32a2d
Packit c32a2d
1.14.3:
Packit c32a2d
-------
Packit c32a2d
- Fix regression from 1.14.1 in parsing of bad free format streams,
Packit c32a2d
  avoiding apparently endless loops (just very slow reading, in fact).
Packit c32a2d
Packit c32a2d
1.14.2:
Packit c32a2d
-------
Packit c32a2d
- Fix writing of WAV to stdout.
Packit c32a2d
  It is still not the best of ideas to do so, though. At least make sure
Packit c32a2d
  to fix rate and channels.
Packit c32a2d
Packit c32a2d
1.14.1:
Packit c32a2d
-------
Packit c32a2d
- Fix subtle bug that could trigger failure to detect a format change on
Packit c32a2d
  resync when using libmpg123's feeder API.
Packit c32a2d
  That bug has been there since ages but was neutralized by other (buggy)
Packit c32a2d
  behaviour of the parser before the little overhaul. The Law of an Even
Packit c32a2d
  Number of Bugs.
Packit c32a2d
Packit c32a2d
1.14.0:
Packit c32a2d
-------
Packit c32a2d
- libmpg123 API version 36 (see NEWS.libmpg123)
Packit c32a2d
- Add --ignore-streamlength.
Packit c32a2d
- But also deal with concatenated (Frankenstein) streams: Not applying
Packit c32a2d
  gapless cutting once we're over the announced number of frames.
Packit c32a2d
- Also, gapless cutting is only applied if relevant information is
Packit c32a2d
  present. Previously, at least the decoder delay has been cut.
Packit c32a2d
- Add --lyrics for printout of lyrics (from USLT in ID3v2).
Packit c32a2d
- Added handling of SIGUSR1 and SIGUSER2 to terminal control code,
Packit c32a2d
  configurable via --ctrlusr1 and --ctrlusr2.
Packit c32a2d
- Some low-level API added (mpg123_framedata(), mpg123_framepos(), buffering
Packit c32a2d
  and resampling control).
Packit c32a2d
- Added info about input buffer fill to mpg123_getstate().
Packit c32a2d
- ReplayGain: Try to detect LAME below 3.95 for the different reference
Packit c32a2d
  level of 83 dB (adding preamp of 6 dB). Version 3.95 itself (not 3.95.1)
Packit c32a2d
  I cannot detect. User-set gain values are not touched.
Packit c32a2d
- Keep silent about missing bit reservoir when ignoring frames. That is
Packit c32a2d
  the whole point (mostly;-).
Packit c32a2d
- Add the new/old WRITE_SAMPLE variant from MPlayer that makes the generic
Packit c32a2d
  decoder faster on older CPUs (x86 at least). Not on x86-64, though (it's
Packit c32a2d
  not enabled per default there).
Packit c32a2d
- disable 3DNow and 3DNowExt DCT36, which is slow on modern CPUs
Packit c32a2d
- Handle out-of-disk in the file writers (a bit, see
Packit c32a2d
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
Packit c32a2d
- Added Xcode project files to build libmpg123 on Mac OS and iOS
Packit c32a2d
- 32 bit output for sndio output (patch by Brad Smith).
Packit c32a2d
- Remote control interface knows LOADLIST command now.
Packit c32a2d
- Now freeing meta data memory after printout.
Packit c32a2d
- Some documentation cleanup, including manpage fixes by quadrispro.
Packit c32a2d
- Re-enabled wildcard expansion on Windows (been broken by unicode file
Packit c32a2d
  name support).
Packit c32a2d
- Fix MMX tabinit syntax (thanks to Marcel Müller for pointing that out).
Packit c32a2d
- Fix SGI audio output (been broken since change to modules).
Packit c32a2d
- Fix some fringe behaviour (mpg123_getformat() triggering needless reading
Packit c32a2d
  of next frame, possibly hitting bogus MPG123_NEED_MORE).
Packit c32a2d
- Resync limit now also serves to increase amount of skipped junk on
Packit c32a2d
  beginning.
Packit c32a2d
- Better separation of stream end and read error (in case there is no
Packit c32a2d
  stream opened, even).
Packit c32a2d
- Don't always complain about failed free format header search (only with
Packit c32a2d
  verbosity level 3).
Packit c32a2d
Packit c32a2d
1.13.8:
Packit c32a2d
-------
Packit c32a2d
- Fix build for ARM Thumb (incompatible assembly in some macros).
Packit c32a2d
Packit c32a2d
1.13.7:
Packit c32a2d
-------
Packit c32a2d
- Fix endless loop in module loader when starting mpg123 in a directory
Packit c32a2d
  that does not exist.
Packit c32a2d
Packit c32a2d
1.13.6:
Packit c32a2d
-------
Packit c32a2d
- Fix output of one random character in -vvv mode for ID3v2.2 frames
Packit c32a2d
  (no buffer overflow, move along, folks;-).
Packit c32a2d
Packit c32a2d
1.13.5:
Packit c32a2d
-------
Packit c32a2d
- Fix reading of ReplayGain values from Lame tag (nobody seen this before?!)
Packit c32a2d
  (both actual values and the distinction between audiophile / radio).
Packit c32a2d
- Accept application/octet-stream as input from HTTP.
Packit c32a2d
- Update man page with encodings.
Packit c32a2d
- Build fixes.
Packit c32a2d
Packit c32a2d
1.13.4:
Packit c32a2d
-------
Packit c32a2d
- Fix bogus error on resync with big offsets (hits systems that have bigger
Packit c32a2d
  off_t than int), bug 3393801.
Packit c32a2d
- Fix windows binary package build script again with plugdir.
Packit c32a2d
Packit c32a2d
1.13.3:
Packit c32a2d
-------
Packit c32a2d
- Fix an endless loop on bad headers, bug 3267863.
Packit c32a2d
- Prevent compiler warnings about unused variables with gcc 4.6 .
Packit c32a2d
- Fix return value handling of getaddrinfo(), bug 3288333.
Packit c32a2d
- Make decwin size computation work for OPT_ARM and sizeof(long) != 4
Packit c32a2d
  (bug 3288360).
Packit c32a2d
Packit c32a2d
1.13.2:
Packit c32a2d
-------
Packit c32a2d
- Updated .NET wrapper (MPG123_SKIP_ID3V2, encsize and mpg123_strlen
Packit c32a2d
  functions) by Malcolm Boczek.
Packit c32a2d
- Fix crash when calling mpg123_decoder() before opening a track -- a rare
Packit c32a2d
  use case since one can choose a decoder with mpg123_new() already.
Packit c32a2d
- Fix format change detection for certain (artificial) concatenated streams
Packit c32a2d
  (p.ex. MPEG 1 frames following MPEG 2 frames).
Packit c32a2d
- Prevent the nasty of bug 3154889: No change of pitch without a current
Packit c32a2d
  audio format. No proper solution, but more like earlier behaviour.
Packit c32a2d
- Fix some compiler warnings.
Packit c32a2d
- Fix a memory leak in the module loader, also some in the examples,
Packit c32a2d
  for being pedantic.
Packit c32a2d
- More use of AC_LANG_SOURCE to silence autoconf.
Packit c32a2d
Packit c32a2d
1.13.1:
Packit c32a2d
-------
Packit c32a2d
- Fix --float and --8bit (MPG123_FORCE_FLOAT, MPG123_FORCE_8BIT) regression,
Packit c32a2d
  caused by introduction of 24 bit formats. (bug 3151597).
Packit c32a2d
  Btw: The use of specific format choice via `mpg123 -e f32` and friends
Packit c32a2d
  is encouraged (meaning mpg123_format_none() / mpg123_format() calls in
Packit c32a2d
  libmpg123 API).
Packit c32a2d
- Loosen the parser restrictions: Allow the private header bit to vary. It
Packit c32a2d
  is not mpg123's business anyway (finally suggested by Marcel).
Packit c32a2d
Packit c32a2d
1.13.0:
Packit c32a2d
-------
Packit c32a2d
- libmpg123 API version 29 (see NEWS.libmpg123)
Packit c32a2d
- New optimization: ARM NEON (Cortex A series) -- kudos to Taihei, again!
Packit c32a2d
- Added 24 bit integer output (truncation of 32 bit integer).
Packit c32a2d
- Cleanup of symbols for the static library: Only have global symbols that
Packit c32a2d
  are actually needed, prefix them with INT123_ to avoid conflicts.
Packit c32a2d
- Added --streamdump to get a copy of the data libmpg123 used.
Packit c32a2d
- Added --icy-interval and tweaked libmpg123 to make playback of ICY stream
Packit c32a2d
  dumps possible.
Packit c32a2d
- Added possibility to set module file suffix at build -- to be able to
Packit c32a2d
  avoid .la files for plugins.
Packit c32a2d
- Removed compiler directives for alignment and disable associated tests.
Packit c32a2d
  The tests don't work on a wide range of compilers anyway, and newer gccs
Packit c32a2d
  do have force_align_arg_pointer to fix bad stacks.
Packit c32a2d
- There is no ChangeLog file anymore... it was autogenerated from subversion
Packit c32a2d
  log anyway, so look there if interested.
Packit c32a2d
Packit c32a2d
1.12.5:
Packit c32a2d
-------
Packit c32a2d
- Fix bug with the new meta data printout of the mpg123 app; embedded
Packit c32a2d
  null bytes in UTF-8 strings in non-UTF-8 environment would trigger buffer
Packit c32a2d
  overflow.
Packit c32a2d
  Thanks to Jakub Bogusz of PLD Linux for the tip. And yes, shame on Thomas
Packit c32a2d
  for changing working string handling code. At all.
Packit c32a2d
Packit c32a2d
1.12.4:
Packit c32a2d
-------
Packit c32a2d
- Fix formatting of meta data printout in UTF-8 (string length computing).
Packit c32a2d
  As a collorary, ID3v1 data is reduced to ASCII in UTF-8 environment,
Packit c32a2d
  as we do never know what specific encoding that has.
Packit c32a2d
Packit c32a2d
1.12.3:
Packit c32a2d
-------
Packit c32a2d
- Fix a long-standing bug that subtly broke http streaming with ICY meta
Packit c32a2d
  data when reading a bit more quickly, like when using the buffer.
Packit c32a2d
  I was a very simple and embarrassing bug, actually ... and it made
Packit c32a2d
  me wonder how normal streaming still worked rather well, generally:-/
Packit c32a2d
  Thanks to Lint for staying with us and reporting bug 3022850, to finally
Packit c32a2d
  get a grip on streaming reliability.
Packit c32a2d
Packit c32a2d
1.12.2:
Packit c32a2d
-------
Packit c32a2d
- Fix for nasty memory corruption on configurations that hand out addresses
Packit c32a2d
  in the upper half of the memory space (the poiner alignment function broke
Packit c32a2d
  in that case, bug 2996045).
Packit c32a2d
- Various build and portability fixes (including making some exotic
Packit c32a2d
  configure switches work (again)).
Packit c32a2d
- Add dump_seekindex example
Packit c32a2d
- Sync mpg123_clr to 1.12 feature set, patch provided by Malcolm Boczek
Packit c32a2d
  And actually include it in release tarball!
Packit c32a2d
- Rework mpg123.h logic for large file stuff a bit, clients can control
Packit c32a2d
  it by defining MPG123_NO_LARGENAME or MPG123_LARGESUFFIX.
Packit c32a2d
- Include dumb wrappers to provide names suffixed with _64 on 64 bit
Packit c32a2d
  machines and _32 on 32 bit machines, respectively, to help clients that
Packit c32a2d
  insist on defining _FILE_OFFSET_BITS where it is not needed (or with a
Packit c32a2d
  non-large value).
Packit c32a2d
- Tuning of the internal buffer code for feeder mode to minimize its
Packit c32a2d
  performance impact (works in 4K blocks now).
Packit c32a2d
- Workaround for compiler bugs in Open64/PathScale/SunStudio (bug 3004396,
Packit c32a2d
  suggestion by Doug Gilmore).
Packit c32a2d
  Note that Sun Studio is still a tricky fellow, at least when it comes
Packit c32a2d
  to our preprocessed assembly.
Packit c32a2d
  Also, x86-Open64 recently produced another segfault in layer3.c on my
Packit c32a2d
  box... GNU and intel compilers are what one can use as something stable.
Packit c32a2d
- Make mpg123_getformat() return more error codes (like MPG123_NEED_MORE).
Packit c32a2d
- Fix handle I/O for clients with small file offset (32 bit when libmpg123
Packit c32a2d
  has 64 bit).
Packit c32a2d
- Fix 3DNow(Ext) standalone builds.
Packit c32a2d
Packit c32a2d
1.12.1:
Packit c32a2d
-------
Packit c32a2d
- Update INSTALL for the dual-mode library. No code changes.
Packit c32a2d
Packit c32a2d
1.12.0:
Packit c32a2d
-------
Packit c32a2d
Attention: This reverts the big bad libray name change. People did not
Packit c32a2d
like libmpg123_64.so at all ... so Thomas went along with proving that
Packit c32a2d
being responsible for a open source library package sucks for your life --
Packit c32a2d
he coded large file dual-mode into libmpg123. One library with both APIs,
Packit c32a2d
like glibc.
Packit c32a2d
Packit c32a2d
- libmpg123 25.0.25:
Packit c32a2d
-- The separate libraries are gone again, this one is dual-mode (using
Packit c32a2d
   ca. 750 lines of not very funny code).
Packit c32a2d
-- The library even translates callbacks between large file support modes.
Packit c32a2d
-- Introduce handle-based custom I/O in libmpg123.
Packit c32a2d
-- The header now defines MPG123_API_VERSION to help compile-time detection
Packit c32a2d
   of available functions (lib is version 25.0.25 now... MPG123_API_VERSION
Packit c32a2d
   is 25).
Packit c32a2d
- Make the usage of AI_ADDRCONFIG dependend on a configure check. This
Packit c32a2d
  flag is not available everywhere.
Packit c32a2d
Packit c32a2d
Packit c32a2d
1.11.0:
Packit c32a2d
-------
Packit c32a2d
Attention: There was a re-release of the source archive, because the
Packit c32a2d
initial one missed the actual changes for the library name.
Packit c32a2d
Sorry for the inconvenience:-/
Packit c32a2d
Packit c32a2d
- Big bad libray name change for builds with enabled large file support.
Packit c32a2d
  That will break libmpg123 binary compatibility on Linux/x86 when upgrading
Packit c32a2d
  from mpg123>=1.5.0 with enabled large file support. You need to relink
Packit c32a2d
  with the new library called libmpg123_64.
Packit c32a2d
  If you do not enable large file support, or it is implicit on your
Packit c32a2d
  platform (x86-64), the library keeps the old name of libmpg123 and
Packit c32a2d
  everything is fine.
Packit c32a2d
- Assembler cleanup:
Packit c32a2d
-- no use of compiler-based stack alignment (for SSE), helping portability
Packit c32a2d
-- mostly performance neutral, hint at faster decoding for the dynamic
Packit c32a2d
  build and slower for static, but small change in any case
Packit c32a2d
- Windows networking (access http streams in mingw builds).
Packit c32a2d
- Do not ask for addresses that do not have matching interfaces configured
Packit c32a2d
  (IPv6 on a IPv4-only host, for example). That can help with broken DNS
Packit c32a2d
  servers that choke on IPv6 addresses (T-Online Speedport W502V, for example). 
Packit c32a2d
- Fix a potential ICY reading problem were ICY metadata could be read as
Packit c32a2d
  mp3 data (basically for MPEG frames bigger than the ICY interval).
Packit c32a2d
Packit c32a2d
1.10.1:
Packit c32a2d
-------
Packit c32a2d
- Help multilib setups that boldly assume that headers are invariant
Packit c32a2d
  by removing the consistency check in mpg123.h and instead just adding a
Packit c32a2d
  suffix to relevant functions when _FILE_OFFSET_BITS is defined. Invalid
Packit c32a2d
  setups will now fail at the linking stage instead of the preprocessing stage.
Packit c32a2d
  That should cover bug 2934488.
Packit c32a2d
- Fixes for gapless decoding:
Packit c32a2d
-- Correctly skip padding larger than one MPEG frame (strange, but occurs).
Packit c32a2d
-- Bug 2950218 (proper gapless cuts for seeking near the end).
Packit c32a2d
- Make sure the search for the first header aborts after 64K of one-byte
Packit c32a2d
  reads, as always intended (bug 2951334).
Packit c32a2d
  Certain files (or even random data) were able to fool mpg123 sufficiently
Packit c32a2d
  enough that it basically reads through the whole file in 1-byte steps
Packit c32a2d
  in search for MPEG data.
Packit c32a2d
  The limit of 64K will very likely be configurable in a future mpg123
Packit c32a2d
  version.
Packit c32a2d
- Fix subtle bug with seeking in feeder mode: A seek close to the current
Packit c32a2d
  position (meaning: the needed data offset is already in mpg123's buffer
Packit c32a2d
  chain) resulted in skipped bytes.
Packit c32a2d
- Improve the feeder mode for handling large amounts of junk at the
Packit c32a2d
  beginning, including proper passing of the request for more data when trying
Packit c32a2d
  to determine free format frame size. This also fixes endless looping as
Packit c32a2d
  reported in bug 2951334.
Packit c32a2d
- The parser code still needs overhaul. It is not pretty.
Packit c32a2d
- Compile fix for OpenAL.
Packit c32a2d
Packit c32a2d
1.10.0:
Packit c32a2d
-------
Packit c32a2d
- Confirmed/fixed on OS/2 platform.
Packit c32a2d
  At least a static build works with native audio output and generic decoder.
Packit c32a2d
- Make modules work with libtool-2.2.6b .
Packit c32a2d
- Added pitch command to control interface.
Packit c32a2d
- HTTP header field and MIME type parsing now case-insensitive (fixes
Packit c32a2d
  bug 2904736).
Packit c32a2d
  Also, the MIME-parsing for non-playlist URLs is done the same way as
Packit c32a2d
  from playlists now.
Packit c32a2d
  And, we interpret MIME types only to before a ";" (see bug 2836904).
Packit c32a2d
- There is a build-time option to enable unicode file names on windows
Packit c32a2d
  now. UNIX (Linux) does not need that, UTF-8 works natively.
Packit c32a2d
  An unicode-enabled build of libmpg123 expects file names as UTF-8 strings,
Packit c32a2d
  opening of non-utf8 strings (by old applications) still works via fallback
Packit c32a2d
  when the conversion of the string or opening of the file failed.
Packit c32a2d
- Also, on Windows, --realtime now works, along with added granularity of
Packit c32a2d
  the new --priority parameter. Note that you get the latter functionality
Packit c32a2d
  through nice/renice on UNIX, no need to add that to mpg123.
Packit c32a2d
- Added experimental framebyframe API.
Packit c32a2d
- Added a new Microsoft common language runtime wrapper (aka .NET wrapper)
Packit c32a2d
  written by Malcolm Boczek. See ports\MSVC++\2008clr\mpg123clr\ReadMe.txt
Packit c32a2d
  for further information
Packit c32a2d
- Added Visual Studio 2010 Beta 2 project files for libmpg123
Packit c32a2d
- Updated autotools machinery, autogen.sh is gone, use `autoreconf -iv`.
Packit c32a2d
Packit c32a2d
1.9.2:
Packit c32a2d
------
Packit c32a2d
- Fix logic failure in gapless code: The trailing silence was only cut on
Packit c32a2d
  the first decode. So, seek-back and decode again never was gapless:-(
Packit c32a2d
- Fix linker flags on MacOS 10.6 .
Packit c32a2d
- Improve portability (mainly for Solaris/x86, possibly others).
Packit c32a2d
- Fix reading from standard input in Windows (use binary mode).
Packit c32a2d
Packit c32a2d
1.9.1:
Packit c32a2d
------
Packit c32a2d
- Fix OpenAL output issue (bug 2840085)
Packit c32a2d
- Fix theoretically possible discarding of some audio samples when getting
Packit c32a2d
  a new format.
Packit c32a2d
- Fix unwanted verboseness (some error messages from library even when
Packit c32a2d
  MPG123_QUIET was specified).
Packit c32a2d
- Fix back-to-beginning for feed_skip (fixes bug 2859531).
Packit c32a2d
- Fix the CPU creep bug with NtoM decoding.
Packit c32a2d
  That one has been nasty on you with large files since bad frame fillup
Packit c32a2d
  has been introduced.
Packit c32a2d
- Fix regression (since 1.9.0) in ID3 parsing: Now Foobar2000 RVA fields
Packit c32a2d
  are interpreted again (among others).
Packit c32a2d
- Fix some compiler warnings, minor cleanup.
Packit c32a2d
Packit c32a2d
1.9.0:
Packit c32a2d
------
Packit c32a2d
- Free format support.
Packit c32a2d
- ARM assembly optimizations (yay Taihei again!).
Packit c32a2d
- Dither noise now runtime-generated, thus less bloated binary (thanks
Packit c32a2d
  Taihei...).
Packit c32a2d
  This means that dithered decoding is now included per default.
Packit c32a2d
  Please note that work is ongoing to improve the dithering quality,
Packit c32a2d
  more to come.
Packit c32a2d
  For example: Accurate rounding to 16bits is now always used for generic
Packit c32a2d
  dithered decoder, there are plans to adapt the noise for different
Packit c32a2d
  sampling frequencies.
Packit c32a2d
- Buffer plays any audio type now.
Packit c32a2d
- New output module: OpenAL
Packit c32a2d
- Bug fixes:
Packit c32a2d
-- Broken frame fillup for non-signed 8 bit formats with correct zero
Packit c32a2d
   (bug 2805665)
Packit c32a2d
-- Crash on invalid UTF-16 in ID3 tags fixed (thanks to Andy Hefner)
Packit c32a2d
-- Bad detection of separated UTF-16 strings in ID3 tags (bug 2834636).
Packit c32a2d
- Topic ID3 and UTF: Now we are more tolerant with UTF16, even accepting
Packit c32a2d
  those broken tags that id3v2 produces (multiple conflicing BOMs).
Packit c32a2d
- Build system allows AltiVec on non-Macs now (don't enforce unsupported
Packit c32a2d
  gcc flags).
Packit c32a2d
- Terminal control mode is more verbose (gives hint about pressing 'h').
Packit c32a2d
- The library now offers a switch and small API to defer translation of
Packit c32a2d
  ID3 text data until client app wants to do it (or not).
Packit c32a2d
Packit c32a2d
1.8.1:
Packit c32a2d
------
Packit c32a2d
- Include improvements to integer decoder from SVN trunk.
Packit c32a2d
  They have been accidentally promised on 1.8.0 release announcements,
Packit c32a2d
  though they were not there. Here it is: ISO compliant fixed point decoding
Packit c32a2d
  (speed optimizations are still reserved for next release).
Packit c32a2d
- Fixed build with ./configure --enable-modules (bug in configure script).
Packit c32a2d
- Fix name of binary in help screen when called with path.
Packit c32a2d
- Build fix for old gcc with AltiVec code.
Packit c32a2d
- Update of Sony PSP build files.
Packit c32a2d
Packit c32a2d
1.8.0: (The Taihei Monmament)
Packit c32a2d
------
Packit c32a2d
- New and improved SSE optimizations! For x86-64, too! Also AltiVec! Fast
Packit c32a2d
  float output! Faster stereo!
Packit c32a2d
  Finally, this should put mpg123 into the efficiency-leading position on
Packit c32a2d
  current hardware! Thanks go out to Taihei Monma for pushing lots of new
Packit c32a2d
  assembler code.
Packit c32a2d
- Added proper rounding modes to 16bit integer.
Packit c32a2d
-- Use ./configure --enable-int-quality to prefer accuracy over speed.
Packit c32a2d
-- Accurate code (generic, SSE, 3dnow -- i586 has always been good)
Packit c32a2d
   delivers ISO compliant quality with 16bit output.
Packit c32a2d
-- Uses fast rounding for IEEE754 floats.
Packit c32a2d
-- Mpg123 can do fully ISO compliant MPEG audio decoding to 16bits (of
Packit c32a2d
   course to 32bit float/int, too).
Packit c32a2d
- subtle performance enhancements via broader data alignment
Packit c32a2d
- Prefer SSE code over 3DNowExt.
Packit c32a2d
-- It can be tight, but generally our new SSE code is better on CPUs that
Packit c32a2d
   can do both.
Packit c32a2d
- Remove HF cutoff (SFB21), has been introduced in 0.59r .
Packit c32a2d
- Fix layer 1 regression (been there since version 1.x).
Packit c32a2d
-- Layer 1 ISO compliance test is positive now.
Packit c32a2d
- Fix layer 2 regression (false positives header change).
Packit c32a2d
-- Layer 2 ISO compliance test is positive now.
Packit c32a2d
- more sample-accurateness
Packit c32a2d
-- Clear frame buffers before seek.
Packit c32a2d
-- Decode 4 frames in advance for layer 3 (2 for layer 1 and 2) per default.
Packit c32a2d
-- Number of layer 3 frames to decoded in advance (and fill bit reservoir) is
Packit c32a2d
   runtime tunable (--preframes).
Packit c32a2d
- Do not stop decoding after stray ID3v1 tags in streams (bug 2793677).
Packit c32a2d
- Fix handling of negative RVA2 values in ID3v2 (bug 2792417).
Packit c32a2d
- Discard bitreservoir of previous frames if a resync is needed.
Packit c32a2d
- improve perceived randomness of --random (do not repeat too early)
Packit c32a2d
- Fix special crash case in UTF16 conversion for ID3v2.
Packit c32a2d
- MPG123_MODDIR environment variable for changing module directory at runtime
Packit c32a2d
- arts output fixes (bug 2715128)
Packit c32a2d
- win32 output swallowing less buffers at end (but still some audio is lost,
Packit c32a2d
  bug 2722991)
Packit c32a2d
- tested mpg123 on OS/2; it works, but not the native audio output
Packit c32a2d
  (SDL works)
Packit c32a2d
- WAV output announces supported output formats correctly
Packit c32a2d
- fix buffer startup to make sure the first bits of audio are not discarded
Packit c32a2d
  (bug 2796802)
Packit c32a2d
- re-enable the --gain parameter (the move to modules disabled that),
Packit c32a2d
  untested
Packit c32a2d
- Libltdl is _not_ included anymore.
Packit c32a2d
-- The host system is expected to provide it, otherwise plugins are not used.
Packit c32a2d
-- Our copy does not get in the way anymore.
Packit c32a2d
- enhancements of the MSVC++ builds, including optimizations using yasm
Packit c32a2d
- general build system fixes
Packit c32a2d
- Legacy build system is gone.
Packit c32a2d
- code cleanup
Packit c32a2d
-- signed/unsigned integer usage, make compilers more happy)
Packit c32a2d
-- simplified synth selection code (it is _less_ code now, and does more)
Packit c32a2d
- Fixed behaviour of MPG123_NEW_FORMAT: Now it does not stop you from
Packit c32a2d
  just continuing decoding without querying the (new) output format, this
Packit c32a2d
  behaviour regression had been there since somewhen after 1.4.3 .
Packit c32a2d
Packit c32a2d
1.7.3:
Packit c32a2d
------
Packit c32a2d
- Fix a regression introduced with the --doublespeed fix. Now seeking should
Packit c32a2d
  be a lot smoother again.
Packit c32a2d
Packit c32a2d
1.7.2:
Packit c32a2d
------
Packit c32a2d
- Fix a possible vulnerability in the ID3 code (negative encoding values).
Packit c32a2d
Packit c32a2d
1.7.1:
Packit c32a2d
------
Packit c32a2d
- Just one fix for making the RVA switch in terminal and generic control mode
Packit c32a2d
  work again (instead of plain silence).
Packit c32a2d
Packit c32a2d
1.7.0:
Packit c32a2d
------
Packit c32a2d
- Lots of output format fun!
Packit c32a2d
-- now supporting 8, 16, 32 bit signed/unsigned integers,
Packit c32a2d
   32bit float (64bit float can be hacked in quickly)
Packit c32a2d
-- optimized decoders use fallback routines for non-optimized
Packit c32a2d
   formats transparently
Packit c32a2d
-- flexible resampling is automatically chosen when output does
Packit c32a2d
   not support standard rates (like a JACK server)
Packit c32a2d
-- That meant quite some restructuring in the decoder code...
Packit c32a2d
- Lots of core functionality now optional, enabling small-footprint
Packit c32a2d
  builds of libmpg123.
Packit c32a2d
-- choosing among the MPEG layer codes
Packit c32a2d
-- NtoM resampling
Packit c32a2d
-- downsampling
Packit c32a2d
-- feeder API (mpg123_open_feed())
Packit c32a2d
-- ID3v2
Packit c32a2d
-- String API
Packit c32a2d
-- ICY
Packit c32a2d
-- output formats
Packit c32a2d
-- error/warning message printouts
Packit c32a2d
-- ... a layer3-only shared libmpg123 can be just 107K on x86-64
Packit c32a2d
   or 94K on x86
Packit c32a2d
- --preload (tune prefill before playback for buffered mode)
Packit c32a2d
- win64 support (one report at least;-), modules working on Windows
Packit c32a2d
- Windows/MSVC++: fixed handling of unicode file names,
Packit c32a2d
  mpg123_topen() now actually working there
Packit c32a2d
-- You are obliged to use mpg123_tclose() now!
Packit c32a2d
- using "plugins" subdir relative to mpg123 binary
Packit c32a2d
  (in addition to ../lib/mpg123)
Packit c32a2d
- switch to libtool 2.2 and automake 1.10 for the build scripts
Packit c32a2d
-- though no update to new libtool 2 API, yet
Packit c32a2d
- some portability fixes
Packit c32a2d
- prevent user from creating non-working I/O setups
Packit c32a2d
  (replacing timeout reader, ICY with feeding)
Packit c32a2d
- JACK output accepts port names for -a, stereo gets mixed down
Packit c32a2d
  when only one port is chosen
Packit c32a2d
- added sndio output, contributed by Christian Weisgerber
Packit c32a2d
- Make --doublespeed paramter work, porting of which has been
Packit c32a2d
  forgotten in the 1.x series!
Packit c32a2d
  Along with that, a regression in decoding has been fixed
Packit c32a2d
  (concerning skipping of frames in general). 
Packit c32a2d
Packit c32a2d
1.6.4:
Packit c32a2d
------
Packit c32a2d
- Fix for consistent NtoM resampled decoding and broken frames fillup.
Packit c32a2d
Packit c32a2d
1.6.3:
Packit c32a2d
------
Packit c32a2d
- Fix sf.net bug #2413608: Make sure a new format does not slip through
Packit c32a2d
  after early close.
Packit c32a2d
- Include equalizer example file and a piece of wrapper code for MSVC++
Packit c32a2d
  in the distribution.
Packit c32a2d
- Do not claim to support unsigned 16 bit encoding (never been the case).
Packit c32a2d
- Fix default fifo detection, now it actally activates fifo support!
Packit c32a2d
Packit c32a2d
1.6.2:
Packit c32a2d
------
Packit c32a2d
- Fix default IPv6 detection in configure.ac (a typo has been introduced
Packit c32a2d
  before).
Packit c32a2d
Packit c32a2d
1.6.1:
Packit c32a2d
------
Packit c32a2d
- Fix printing of largefile offsets in remote control interface.
Packit c32a2d
- Some portability fixes (reduced compiler warnings on Solaris, p.ex.).
Packit c32a2d
Packit c32a2d
1.6.0:
Packit c32a2d
------
Packit c32a2d
- small things inside that I forgot to mention
Packit c32a2d
- some new commands for remote control interface:
Packit c32a2d
-- SCAN
Packit c32a2d
-- SAMPLE
Packit c32a2d
-- EQFILE
Packit c32a2d
-- SHOWEQ
Packit c32a2d
- added --keep-open command line flag (for remote control)
Packit c32a2d
- fixed equalizer file parsing to really handle comment lines as example file
Packit c32a2d
  suggests
Packit c32a2d
- more elaborate detection of UTF-8 locale, also --utf8 switch to force it
Packit c32a2d
- added --fuzzy to enable inexact seeking (see below)
Packit c32a2d
- added --index-size parameter for tuning accurate frame seek index
Packit c32a2d
- enabling largefile support via configure
Packit c32a2d
- libmpg123 11.0.11:
Packit c32a2d
-- added mpg123_geteq(), mpg123_tell_stream() and mpg123_getstate()
Packit c32a2d
-- API cleanup (take const char* for mpg123_open())
Packit c32a2d
-- calm down complainling (C++) compilers by completing the mpg123_channels
Packit c32a2d
   enum
Packit c32a2d
-- fixed several possible crashes when user provides NULLs where it isn't
Packit c32a2d
   appropriate
Packit c32a2d
-- workaround for frames that fail decoding (bad frame body, missing bit
Packit c32a2d
   reservoir): fill up with silence
Packit c32a2d
   That also fixes seeking issues related to bad frames since now the
Packit c32a2d
   fixed relation between frame and sample offsets is restored.
Packit c32a2d
-- Finally realized what that the resampling code for integer math
Packit c32a2d
   (generic_nofpu) was just incomplete!
Packit c32a2d
   Now it works, using the defined integer multiplication.
Packit c32a2d
-- Detect UTF-8 in ICY conversion (instead of just assuming CP-1252,
Packit c32a2d
   provided by Torsten Glaser).
Packit c32a2d
-- Prevent ugly noise when the bit reservoir is not fully there
Packit c32a2d
   (p.ex. ignorantly cut mp3 files).
Packit c32a2d
   Concerned frames are silenced, but reservoir for following frames
Packit c32a2d
   is kept.
Packit c32a2d
   Thanks to Patrick Dehne for the investigation and patch!
Packit c32a2d
-- New option for fuzzy seeking; trading sample accuracy for speed.
Packit c32a2d
   With that option, seeks positions are guessed using mean framesize or
Packit c32a2d
   the Xing VBR TOC is used.
Packit c32a2d
-- Feeder streams work with seek index now.
Packit c32a2d
-- Seek frame index is runtime tunable.
Packit c32a2d
-- more caution with alignment issues for varying library users
Packit c32a2d
- new project files to build/use libmpg123 with MSVC++ 2005 and 2008,
Packit c32a2d
  provided by Patrick Dehne
Packit c32a2d
- fixed a regression that made the pause/loop mode in terminal control
Packit c32a2d
  slowly go backwards
Packit c32a2d
Packit c32a2d
Big note for libmpg123 users: Make sure your application is compiled
Packit c32a2d
with the same largefile setting as libmpg123!  If that does not match,
Packit c32a2d
you will get unresolved symbols (which is better than weird errors when
Packit c32a2d
using a nonmatching off_t in arguments;-).
Packit c32a2d
Packit c32a2d
1.5.1:
Packit c32a2d
------
Packit c32a2d
- fix wav/au/cdr writing to stdout (bug #2044423)
Packit c32a2d
- add more sensible --no-resync to replace --resync (bug #2044404)
Packit c32a2d
- libmpg123 7.0.7
Packit c32a2d
-- fix thread safety of SSE decoder (bug #2053181)
Packit c32a2d
-- fix robustness of length handling, added mpg123_set_filesize() (bug #2064322)
Packit c32a2d
Packit c32a2d
1.5.0:
Packit c32a2d
------
Packit c32a2d
- libmpg123 6.0.6
Packit c32a2d
-- Floating point decoding back again, (build time choice for now;
Packit c32a2d
   --with-cpu=generic_float).
Packit c32a2d
-- More robust string handling; extended string API.
Packit c32a2d
-- fixed an (so far) unnoticed ID3 bug that may have obscured comment fields
Packit c32a2d
-- added mpg123_feed() as shortcut; using const input buffer now
Packit c32a2d
-- resync is enabled again for ICY streams (the trouble in the past was
Packit c32a2d
   due to a reader bug, not the streams)
Packit c32a2d
-- decode ICY text data to UTF-8 (thanks, Thorsten)
Packit c32a2d
-- preserve file flags for timeout mode
Packit c32a2d
- More elaborate (helpful?) error message for output format problems.
Packit c32a2d
- Reworked HTTP code... and added IPv6 support!
Packit c32a2d
- Fix the --proxy parameter (has been accidentally ignored before).
Packit c32a2d
- Added --ignore-mime to work with web streams with funny playlist MIME
Packit c32a2d
  types like "audio/megurl".
Packit c32a2d
- Know MIME audio/mpegurl.
Packit c32a2d
- --timeout is now also used for the connection itself (not just reading).
Packit c32a2d
- Now trying to resume ALSA device after suspend.
Packit c32a2d
- subtle build changes (your CFLAGS rule now)
Packit c32a2d
Packit c32a2d
1.4.3:
Packit c32a2d
------
Packit c32a2d
- Fix mpg123_tell() and mpg123_seek() return values with respect to the
Packit c32a2d
  samples in decoding buffer (bug 1947373).
Packit c32a2d
- Fix (bogus) 3DNow detection on IDT C6 (bug 1947982).
Packit c32a2d
- Fix mono playback of win32 output (bug 1955157).
Packit c32a2d
- Fix ABI compatibility with compilers that don't align the stack like
Packit c32a2d
  gcc does (fixing SSE crashes on win32).
Packit c32a2d
Packit c32a2d
1.4.2:
Packit c32a2d
------
Packit c32a2d
- Fix build problems (for Cygwin and Win32, perhaps others, too).
Packit c32a2d
Packit c32a2d
1.4.1:
Packit c32a2d
------
Packit c32a2d
- Fix a serious regression of terminal control mode (forgot to remove a
Packit c32a2d
  term_restore(), bug 1936548).
Packit c32a2d
Packit c32a2d
1.4.0:
Packit c32a2d
------
Packit c32a2d
- Enable runtime check for available and working output modules.
Packit c32a2d
  Now mpg123 tries all built modules (or a list specified in
Packit c32a2d
  mpg123 -o moda,modb,modc) in turn to find a working output. This minimizes the
Packit c32a2d
  situation of having to specify a device when default output doesn't work for
Packit c32a2d
  some reason.  See bug 1910500.
Packit c32a2d
- libmpg123 2.2.2
Packit c32a2d
-- Fixing an endless loop for ICY streams that suddenly end without error
Packit c32a2d
   (just EOF).
Packit c32a2d
-- Further fixes around EOF handling in (buffered/ICY) streams.
Packit c32a2d
- Enable user to interrupt mpg123 when stuck in a loop of failing to open a
Packit c32a2d
  track (with --loop).
Packit c32a2d
- This time with correct RPM spec (hopefully... sorry, Michael!).
Packit c32a2d
Packit c32a2d
1.3.1:
Packit c32a2d
------
Packit c32a2d
- Enable snd_pcm_sw_params_set_xfer_align() for alsa-lib < 1.0.16 (bug 1908603).
Packit c32a2d
- libmpg123 2.1.2 (no-op change)
Packit c32a2d
Packit c32a2d
1.3.0:
Packit c32a2d
------
Packit c32a2d
This is a _major_ fix release for http streaming!
Packit c32a2d
Much more usable than earlier mpg123 1.x versions.
Packit c32a2d
Packit c32a2d
- libmpg123 libtool-version 2.0.2
Packit c32a2d
-- Fix nasty bug in ICY reader that failed to account for partial reads
Packit c32a2d
   from slower network.
Packit c32a2d
-- Now non-seekable streams can get peek-ahead for MPEG sync, too, triggered
Packit c32a2d
   by the MPG123_SEEKBUFFER flag.
Packit c32a2d
-- Do not try to resync on streams with ICY metadata, that won't work.
Packit c32a2d
   Consequently, if there's unreliable network, use --loop -1 to make
Packit c32a2d
   mpg123 reconnect to the server on errors.
Packit c32a2d
-- Applying a few layer 3 decoder fixes from old mhipp CVS (hail to the
Packit c32a2d
   creator;-) That includes the fix for bug 1895025.
Packit c32a2d
-- Fix ID3v2 parser with very invalid claimed ID3v2 frame sizes (could
Packit c32a2d
   have triggered DOS before).
Packit c32a2d
-- Oh, and fixed a steady memory leak in ID3 handling. Should mention that;-)
Packit c32a2d
- Print ICY-NAME and ICY-URL again, as mpg123-0.6x did.
Packit c32a2d
- Added --smooth option for not flusing buffer between tracks but at program
Packit c32a2d
  end only.
Packit c32a2d
- Included some contributed ports/bindings of libmpg123 under ports/ .
Packit c32a2d
Packit c32a2d
1.2.1:
Packit c32a2d
------
Packit c32a2d
- libmpg123 libtool-version 1.2.1 (coincidence!)
Packit c32a2d
-- Earlier check for free format headers to prevent them from screwing up
Packit c32a2d
   resync (free format still not supported)
Packit c32a2d
-- bug 1889051: more flexible resync, not insisting on the format of the
Packit c32a2d
   first frame (which could have been bogus)
Packit c32a2d
- Add an output write loop to handle SIGSTOP/CONT operation (bug 1890563).
Packit c32a2d
- Fixed a bug where playback status for some http streams was not shown.
Packit c32a2d
Packit c32a2d
1.2.0:
Packit c32a2d
------
Packit c32a2d
- libmpg123 libtool-version 1.0.1
Packit c32a2d
-- See NEWS.libmpg123 for details.
Packit c32a2d
-- This adds --resync-limit parameter to mpg123.
Packit c32a2d
- Some build system work, including:
Packit c32a2d
-- It is now possible to build a mpg123 rpm from the source tarball via
Packit c32a2d
   rpmbuild -tb .
Packit c32a2d
-- configure: Accept --with-audio=foo,bar,bla (comma-separated list) in addition
Packit c32a2d
   to --with-audio="foo bar bla".
Packit c32a2d
-- autogen.sh included in distribution.
Packit c32a2d
-- Include the forgotten i486 files in the distribution (now that's embarrasing...).
Packit c32a2d
   Also a little fix for wrong --list-cpu on i486 build.
Packit c32a2d
-- Fix build with MinGW32.
Packit c32a2d
- Fix -v stat output (time display) for MinGW32 build.
Packit c32a2d
Packit c32a2d
1.1.0:
Packit c32a2d
------
Packit c32a2d
- Added arts output.
Packit c32a2d
- More verbosity on lame/xing/info tags (on demand) instead of compile-time
Packit c32a2d
  debugging switch.
Packit c32a2d
- XMMS2 plugin cleanup (submitted to XMMS2 for inclusion)
Packit c32a2d
- Improved ID3v2 robustness (let bad tags not affect playback of the important
Packit c32a2d
  part).
Packit c32a2d
- Terminal control:
Packit c32a2d
-- Key for going to previous track ([d], because it's left of [f] usually...
Packit c32a2d
   no config file yet for that).
Packit c32a2d
-- Key for printing current playlist, [l].
Packit c32a2d
-- Now possible to switch on verbosity also for mpg123 -q -C
Packit c32a2d
-- Key for (re)printing ID3 tag info ([t]).
Packit c32a2d
-- Key for (re)printing MPEG frame header info ([m]).
Packit c32a2d
- Soften the -q option: Now you are able to increase verbosity after -q
Packit c32a2d
  again, like mpg123 -q -v (this fixes cplay's progress display).
Packit c32a2d
Packit c32a2d
1.0.1:
Packit c32a2d
------
Packit c32a2d
- Fix module loader to prevent crash in working paths with more than 49
Packit c32a2d
  characters length (bug 1859413).
Packit c32a2d
Packit c32a2d
1.0.0:
Packit c32a2d
------
Packit c32a2d
- Fixed Pulseaudio.
Packit c32a2d
- Cleaned up configure.
Packit c32a2d
- Pushed remote control version to v3.
Packit c32a2d
- Updated documentation.
Packit c32a2d
- Fix VPATH build for generated mpg123.h .
Packit c32a2d
Packit c32a2d
1.0rc3:
Packit c32a2d
-------
Packit c32a2d
- Fixed JACK output.
Packit c32a2d
- Disable buffer when statically building CoreAudio in (MacOSX); with
Packit c32a2d
  CoreAudio module the buffer works, with static output it doesn't.
Packit c32a2d
  This is the situation because of fork() discrimination by Apple Inc. .
Packit c32a2d
- Added verbosity to tell about ID3v2 text encodings (level 4).
Packit c32a2d
- minor cleanup
Packit c32a2d
Packit c32a2d
1.0rc2:
Packit c32a2d
-------
Packit c32a2d
- Fixed some bugs, the ID3v2 interface of libmpg123 is safer now (there
Packit c32a2d
  were possibly stale pointers in there).
Packit c32a2d
- Buffer mode got vital improvements (yeah, that is sort of feature creep
Packit c32a2d
  during release process, but worth it)
Packit c32a2d
  The improved communication makes it possible to skip tracks in terminal
Packit c32a2d
  control mode without the hack to immediately restart playback.
Packit c32a2d
  To be able to do seeking in terminal mode with buffer properly, buffered
Packit c32a2d
  playback stops on seek keys. You restart playback after you are done
Packit c32a2d
  with seeking.
Packit c32a2d
- Support either portaudio v18 or v19 API (v18 works for me, v19 works
Packit c32a2d
  according to user report).
Packit c32a2d
- Audio output handling got safer and more clean, a byproduct of implementing
Packit c32a2d
  the above. I stumbled over some things and had to fix it (yeah, feature
Packit c32a2d
  creep in parts again, but still: Worth it!;-)
Packit c32a2d
  Any audio access is now restricted to either that standalone mpg123
Packit c32a2d
  process or the buffer process, the output being opened _after_ the fork().
Packit c32a2d
  There is hope that this fixes buffered output on MacOSX.
Packit c32a2d
- More feature creep, this time because of something like that was already
Packit c32a2d
  included in the Debian mpg123:
Packit c32a2d
  --delay parameter to issue a pause before each track (does not make
Packit c32a2d
  sense for file writing outputs, though).
Packit c32a2d
- Even more feature creep: remote control can now give ID3v2 data, also
Packit c32a2d
  in more raw form via new "tag" command.
Packit c32a2d
  This sort of qualifies as bugfix, actually, since it's item 1786430 on
Packit c32a2d
  the tracker;-)
Packit c32a2d
- Make flexible rate computations more safe (especially on 32bit platforms)
Packit c32a2d
  by switching to the looping code instead of direct multiplication/division
Packit c32a2d
  (which blows up with integers). A possible effect was premature track
Packit c32a2d
  ending with a forced rate.
Packit c32a2d
- Flexible rate mode works _at_all_ again with fixed output support
Packit c32a2d
  detection code (comparison of -1 with a size_t ended a loop all too early).
Packit c32a2d
- check for error in flushing output (this ends mpg123 for a broken pipe,
Packit c32a2d
  for example)
Packit c32a2d
Packit c32a2d
1.0rc1:
Packit c32a2d
-------
Packit c32a2d
- In one word: LOTS!
Packit c32a2d
- Many small things that happened while migrating to the new setup.
Packit c32a2d
- The decoder is now a library (libmpg123) which can be installed also
Packit c32a2d
  for other programs to use. This finally provides a heavily improved
Packit c32a2d
  replacement for the aged mpglib. We have doxygen API doc, example codes.
Packit c32a2d
  You can still choose to compile the decoder statically into the mpg123
Packit c32a2d
  binary, though.
Packit c32a2d
- We have a plugin system for audio output! This should be relieving to
Packit c32a2d
  package maintainers for binary distributions, drastically reducing the
Packit c32a2d
  number of builds they have to provide.
Packit c32a2d
  Here, too, you can choose to build one audio output into the binary
Packit c32a2d
  like before; you can have your old-school one-piece mpg123 or the hip
Packit c32a2d
  I-am-legion shared-lib-and-plugin flexible mpg123;-)
Packit c32a2d
  One exception: For now, you have to compile without modules in
Packit c32a2d
  MinGW32/MSYS.
Packit c32a2d
- ID3v2 support has been enhanced and, in the case of specific comments
Packit c32a2d
  (those with a description), fixed.
Packit c32a2d
  The ID3 parsing is part of libmpg123, offering support for virtually
Packit c32a2d
  all textual information in ID3v2.2, ID3v2.3 and ID3v2.4 tags (along with
Packit c32a2d
  the usual 128 bytes of ID3v1 or ID3v1.1 in a block).
Packit c32a2d
  All tag texts are converted to UTF-8, allowing mpg123 to properly display
Packit c32a2d
  special chars in an Unicode terminal without fuzz (for non-UTF locales,
Packit c32a2d
  there is still the ASCII reduction).
Packit c32a2d
- Gapless decoding (of layer 3 streams) is now considered to be a standard
Packit c32a2d
  feature and is enabled per default both at build- and runtime.
Packit c32a2d
- ...
Packit c32a2d
Packit c32a2d
0.68:
Packit c32a2d
-----
Packit c32a2d
- Fix bug 1807964: distorted playback of MPEG 2.5 files
Packit c32a2d
Packit c32a2d
0.67:
Packit c32a2d
-----
Packit c32a2d
Thanks go out to the ROM 106.5FM team (http://www.rom.lu/) for supporting
Packit c32a2d
this release with a donation on sf.net and a bottle of finest Gewuerztraminer
Packit c32a2d
wine from Luxembourg!
Packit c32a2d
Packit c32a2d
- verified that it builds on SGI IRIX 6.5 for MIPS32 and MIPS64
Packit c32a2d
- enable flexible rate for stdout decoding, too
Packit c32a2d
- UTF8 filtering to ASCII finally works thanks to Mika Tiainen, see bug 1745847
Packit c32a2d
- corrected frame offset; -k was off by one
Packit c32a2d
  This means now that -k disagrees with mpg123 0.59r on many files because
Packit c32a2d
  the old version does play a frame of silence when encountering LAME tag
Packit c32a2d
  instead of dropping it for audio.
Packit c32a2d
- added --timeout <n>: Possibility to end playback on a stream that doesn't give
Packit c32a2d
  data for <n> seconds.
Packit c32a2d
- added --loop <n>: for ... well... looping playback of a track; motivation was
Packit c32a2d
  persistent internet streaming with unreliable connection (together with --timeout)
Packit c32a2d
- build fixes
Packit c32a2d
- use movap instruction in SSE assembly when compiler supports the needed
Packit c32a2d
  alignment (idea from MPlayer)
Packit c32a2d
- show decoder options in their priority order in --list-cpu/--test-cpu
Packit c32a2d
- added Perl script to benchmark each of mpg123's CPU optimizations
Packit c32a2d
- portability enhancements and cleanups along with testing on SunOS 4.1.2
Packit c32a2d
  with gcc-2.7.0
Packit c32a2d
- workaround for ugly flexible rate for MMX/SSE/3DNowExt code:
Packit c32a2d
  --with-cpu=mmx also includes i586 code as fallback; similar with the others
Packit c32a2d
Packit c32a2d
0.66:
Packit c32a2d
-----
Packit c32a2d
- support for a combined build of x86 optimizations and runtime selection
Packit c32a2d
  among these The (supposedly) "highest" CPU-supported optimization is chosen
Packit c32a2d
  by default, --cpu, --list-cpu and --test-cpu parameters are there for you to
Packit c32a2d
  take control.
Packit c32a2d
- default build for x86 systems is combined "x86" with generic, i386,
Packit c32a2d
  i586, MMX, 3DNow, SSE, 3DNowExt; "x86_dither" also includes the dithering
Packit c32a2d
  i586 decoder
Packit c32a2d
- no automatic -march compiler flags anymore; the --with-cpu configure option
Packit c32a2d
  selects specific assembler code but special CFLAGS are up to you
Packit c32a2d
- extended 3DNow and SSE optmizations from MPlayer's mp3lib
Packit c32a2d
- x86 assembler optimizations adapted for MacOS X/Intel
Packit c32a2d
- straight support for Windows using MinGW32, reactivated the native
Packit c32a2d
  WinMM output. Core functionality including assembler optmimizations
Packit c32a2d
  and WAV writing is there.
Packit c32a2d
- assembler optimizations also for cygwin
Packit c32a2d
- set remote-err automatically when putting audio to stdout
Packit c32a2d
- a bit more general portability in the new build system
Packit c32a2d
- fix file creation mode for -O
Packit c32a2d
- experimental decoding to 32bit float (raw and WAV file): ./configure
Packit c32a2d
  --with-cpu=generic_float
Packit c32a2d
- generic control interface (-R) can create and read from a named pipe,
Packit c32a2d
  parameter --fifo <path>
Packit c32a2d
- audio bugfix: playback of mono file on stereo-only hardware, better
Packit c32a2d
  error reporting there
Packit c32a2d
- ALSA output handling underruns
Packit c32a2d
- MMX, SSE and 3DNowExt fallback to i586 and below or 3Dnow for forced
Packit c32a2d
  sample rate
Packit c32a2d
- more terminal control: volume, RVA and verbosity controls
Packit c32a2d
Packit c32a2d
0.65:
Packit c32a2d
-----
Packit c32a2d
- now allow crc bit to vary over stream (fixes files with bad lame tag
Packit c32a2d
  and some internet streams)
Packit c32a2d
- do not try to parse id3v2.2 (as opposed to 2.3 and 2.4)
Packit c32a2d
- correct id3v2.3 parsing for not expecting syncsafe integers for framesize,
Packit c32a2d
  2.4 introduced that
Packit c32a2d
- omit gcc specific compiler flags when gcc is not there
Packit c32a2d
- initital attempt to support sgi/irix with configure (please test)
Packit c32a2d
Packit c32a2d
0.64:
Packit c32a2d
-----
Packit c32a2d
- fixing a potential denial of service problem; broken connection to server
Packit c32a2d
  could trigger an endless loop
Packit c32a2d
Packit c32a2d
0.63:
Packit c32a2d
-----
Packit c32a2d
- build fixes, only relevant to developers and people who had problems building
Packit c32a2d
Packit c32a2d
0.62:
Packit c32a2d
-----
Packit c32a2d
- JUMP command in generic frontend accepts offsets/positions in seconds
Packit c32a2d
  (JUMP 4s vs. JUMP 4)
Packit c32a2d
- initial support for ICY meta data in SHOUTcast streams
Packit c32a2d
- a bit of fixing with rva code, added rva and general volume control to
Packit c32a2d
  generic frontend
Packit c32a2d
- accepting more MIME types for http streaming (application/pls and
Packit c32a2d
  audio/x-mpeg)
Packit c32a2d
- ID3v2 info output taking less space per default - more resembling the
Packit c32a2d
  old ID3v1 view for short tags, full view with always one line per item
Packit c32a2d
  via extra --long-tag switch
Packit c32a2d
- generally less verbosity (i.e. noise on console) per default
Packit c32a2d
- ID3v2 now having some kind of support for unicode; trying to print what's
Packit c32a2d
  latin1-compatible and prevent messing up of terminal with unknown bytes
Packit c32a2d
- several bug fixes and small improvements
Packit c32a2d
Packit c32a2d
0.61:
Packit c32a2d
-----
Packit c32a2d
- improved AltiVec code from Taihei Monma
Packit c32a2d
- an i486 optimization by Petr Salinger
Packit c32a2d
- improving interactive experience (terminal, frontends)
Packit c32a2d
-- prevent/lessen bad effect after seeking while paused
Packit c32a2d
-- show targeted position while seeking in terminal mode while paused
Packit c32a2d
-- not messing up terminal on unexpected errors
Packit c32a2d
- decoder robustness - better file sync (weird junk at beginning, some vbr
Packit c32a2d
  frames)
Packit c32a2d
- build system improvements:
Packit c32a2d
-- fixing configure isses on some platforms
Packit c32a2d
-- adding cygwin, kfreebsd
Packit c32a2d
- extended fix for CVE-2006-1655
Packit c32a2d
- generic code should compiling again...
Packit c32a2d
Packit c32a2d
0.60 final: (The Team!)
Packit c32a2d
-----------
Packit c32a2d
- no functional changes
Packit c32a2d
Packit c32a2d
0.60-beta6: (Thomas Orgis)
Packit c32a2d
-----------
Packit c32a2d
- more use of ID3v2 tags, mpg123 now displays both (merged) info from
Packit c32a2d
  ID3v2 and ID3v1; trying to support both ID3v2.3 and ID3v2.4, but ignoring
Packit c32a2d
  encoding (UTF8 should still work if your terminal supports it, straight
Packit c32a2d
  unicode should work except for parsing genre numbers and multiline strings)
Packit c32a2d
Packit c32a2d
0.60-beta5: (Thomas Orgis)
Packit c32a2d
-----------
Packit c32a2d
- more robust playlist support:
Packit c32a2d
-- path/url length not limited to 1023 characters anymore
Packit c32a2d
-- reading in of whole playlist at program start (old operation was not
Packit c32a2d
   really safe with playlist from http)
Packit c32a2d
-- fixed bug where reading of playlist form stdin caused segfault (introduced
Packit c32a2d
   with the pls format support)
Packit c32a2d
- smaller cleanups, screen output cosmetics
Packit c32a2d
Packit c32a2d
0.60-beta4: (Nicholas Humfrey & Thomas Orgis)
Packit c32a2d
-----------
Packit c32a2d
- proper seeking, also for VBR streams
Packit c32a2d
- real two-way seeking in remote control mode at all
Packit c32a2d
- better estimates of remaining frames (on vbr files), exact if Xing header
Packit c32a2d
  is found
Packit c32a2d
- Removed libao support (as it is GPL and we aren't - and we don't need
Packit c32a2d
  it with native Alsa)
Packit c32a2d
- Added ALSA 0.9/1.0 support by Clemens Ladisch (old alsa is in
Packit c32a2d
  audio_alsa05.c but will most likely vanish soon)
Packit c32a2d
- Added PortAudio audio-output support
Packit c32a2d
- Added SDL audio-output support
Packit c32a2d
- Fixed NAS audio-output support
Packit c32a2d
- re-enabled MPEG 2.5, code just seems to work
Packit c32a2d
- improved stream checking; being more willing in general (favor resync
Packit c32a2d
  instead of bail out) but directly give up if free format stream is obvious
Packit c32a2d
- Whee! Initial Relative Volume Adjustment (buzz) support with reading of
Packit c32a2d
  ReplayGain values in lame/info tag, the RVA2 frames in ID3v2.4, ID3v2 TXXX
Packit c32a2d
  tags from foobar2000 (please test, someone!) and custom ID3v2.3 comments
Packit c32a2d
  entitled RVA / RVA_ALBUM / RVA_AUDIOPHILE / RVA_RADIO / RVA_MIX
Packit c32a2d
- more persistence in trying to get http streams
Packit c32a2d
Packit c32a2d
0.60-beta3: (Thomas Orgis)
Packit c32a2d
-----------
Packit c32a2d
- fixed bug with segfault in http code on stream from live365.com -
Packit c32a2d
  bug id 1529266
Packit c32a2d
- made http request HTTP/1.0 compilant again (tested only without proxy) -
Packit c32a2d
  bug id 1529319
Packit c32a2d
- now using http content-type header to check for correct types mpg123 can
Packit c32a2d
  understand
Packit c32a2d
-- you can now always use -@ for a single http resource (direct stream or
Packit c32a2d
   playlist) since a stream will be reopened based on MIME type,
Packit c32a2d
   though omitting it will save you one http request to the server in the
Packit c32a2d
   direct stream case...
Packit c32a2d
- now simple parsing of shoutcast pls playlists (how did you people use
Packit c32a2d
  shoutcast before?)
Packit c32a2d
- playlist mode enhanced with selective playback of one entry in list
Packit c32a2d
  (--listentry parameter)
Packit c32a2d
Packit c32a2d
0.60-beta2: (Thomas Orgis)
Packit c32a2d
-----------
Packit c32a2d
- fixed bug in terminal control mode that caused the f key to quit program
Packit c32a2d
  isntead of advance to next file (introduced by the first attempt to restore
Packit c32a2d
  "normal" Ctrl+C behaviour in terminal control mode)
Packit c32a2d
Packit c32a2d
0.60-beta1: (Thomas Orgis & Nicholas Humfrey)
Packit c32a2d
-----------
Packit c32a2d
On the way to the first new offical realease since years!
Packit c32a2d
Packit c32a2d
- new license: all LGPL except the old audio_alsa.c
Packit c32a2d
- merge with Nicholas' sourceforge package
Packit c32a2d
-- autooled configure/make system
Packit c32a2d
-- MacOSX, Jack, libao (alsa 0.9/1.x support through that)
Packit c32a2d
- experimental gapless playback for layer 3
Packit c32a2d
- merged in MMX and AltiVec optimizations
Packit c32a2d
- security bug fix of GLSA 200607-01 and catching possible crashes found by fuzzing 
Packit c32a2d
- fixed many issues here and there
Packit c32a2d
- polished help messages, updated man page...
Packit c32a2d
Packit c32a2d
UNDERGROUND 0.59r-thor7: (Thomas Orgis <thomas@orgis.org>) (well, I'm going to
Packit c32a2d
------------------------ release a _really_ official mpg123 in future)
Packit c32a2d
- applied relevant stuff from Debian's 22:
Packit c32a2d
-- fix for CVE-2006-1655 (buffer overflow in III_i_stereo())
Packit c32a2d
-- strict aliasing hack in WRITE_SAMPLE of decode_i386.c
Packit c32a2d
-- fixed http streaming through proxy by actually using the request url...
Packit c32a2d
-- buffer resync on Ctrl-C (cleaning, reducing pauses with multiple files)
Packit c32a2d
-- removed unused esdserver variable from mpg123.h
Packit c32a2d
-- did NOT apply the Debian Makefile/manpage changes (going to rewrite that
Packit c32a2d
   stuff anyway)
Packit c32a2d
- made the netbsd-i386 targets visible as netbsd-x86
Packit c32a2d
Packit c32a2d
UNOFFICIAL 0.59r-thor6 (Thomas Orgis <thomas@orgis.org>)
Packit c32a2d
----------------------
Packit c32a2d
- split nedbsd targets for realtime priority selection code; since one
Packit c32a2d
  needs -lpthread with it. standard netbsd target doesn't use realtime code --
Packit c32a2d
  I won't recommend running mpg123 as root anyway!
Packit c32a2d
Packit c32a2d
UNOFFICIAL 0.59r-thor5 (Thomas Orgis <thomas@orgis.org>)
Packit c32a2d
----------------------
Packit c32a2d
- Separated the the use of char* equalfile as filename from the use as
Packit c32a2d
  TRUE/FALSE flag by introducing int have_eq_settings. Compilers kept nagging
Packit c32a2d
  about assigning and integer (TRUE) to char* ... and it feels more right
Packit c32a2d
  this way.
Packit c32a2d
- Made control_generic aware of real being possibly different than float (seq
Packit c32a2d
  command used to raise an FPE on OSF1 when this assumption was not the case.
Packit c32a2d
- Fixed the command line arg parsing to work properly on Alpha (32 and 64
Packit c32a2d
  bit mixup)
Packit c32a2d
Packit c32a2d
UNOFFICIAL 0.59r-thor4 (Thomas Orgis <thomas@orgis.org>)
Packit c32a2d
----------------------
Packit c32a2d
- merged with 0.59r-19 from Debian project (Daniel Kobras
Packit c32a2d
  <kobras@debian.org>), hopefully fixing all those security vulnerabilities
Packit c32a2d
  -> my dirty http_open and open_stream variants now replaced by more
Packit c32a2d
  proper code
Packit c32a2d
  -> still my (rather workloaded) parsing/processing in control_generic,
Packit c32a2d
  but now including the idea to watch out for \n, \r\n and \r (or \n\r,
Packit c32a2d
  for that matter;-)
Packit c32a2d
Packit c32a2d
UNOFFICIAL 0.59r-thor3: (Thomas Orgis <thomas@orgis.org>)
Packit c32a2d
-----------------------
Packit c32a2d
- hacked additional variants of http_open and open_stream that return
Packit c32a2d
  errors instead of exit()ing; makes more sense when used by a frontend
Packit c32a2d
- further cleanup (and return to using continue instead of nested
Packit c32a2d
  if(){}else{if()else{}}) in command processing, better error messages there
Packit c32a2d
Packit c32a2d
UNOFFICIAL 0.59r-ThOr(remote-err,eq,flushing): (Thomas Orgis <thomas@orgis.org>)
Packit c32a2d
----------------------------------------------
Packit c32a2d
- added audio_flush() calls to various places in control_generic.c to
Packit c32a2d
  make sure there is nothing left in there that hurts later (not sure if
Packit c32a2d
  this has effects)
Packit c32a2d
- (re?)enabled (?) code for stream info
Packit c32a2d
- corrected answer of JUMP (now gives actual reached position, +/- 1 frame
Packit c32a2d
  since I'll still have to figure out what frame 0 really is...)
Packit c32a2d
Packit c32a2d
UNOFFICIAL 0.59r-realeq-remoteerr: (Thomas Orgis <thomas@orgis.org>)
Packit c32a2d
----------------------------------
Packit c32a2d
- applied patch from Cool Feet Audio project (nutcase@dtfm.org, see
Packit c32a2d
  README.cfa) to use real-time equalizer in remote mode
Packit c32a2d
- applied patch from AMF (amf.sourceforge.net) by Steve Grundell for remote
Packit c32a2d
  communication not polluting the STDOUT where the audio data is read from
Packit c32a2d
  (instead using STDERR) ... and faster seeking, maybe
Packit c32a2d
  The patches go not cleanly together, but rejects are trivial. Thus,
Packit c32a2d
  a combined patch with both would makes sense.
Packit c32a2d
- modified (IMHO improved) the control_generic command reading: now
Packit c32a2d
  always making sure that the full command is read up to a mandatory \n;
Packit c32a2d
  also reworked the application of the commands afterwards
Packit c32a2d
- added SEQ command: simple eq with only 3 bands
Packit c32a2d
- added SILENCE command: I don't want the playback messages when I don't
Packit c32a2d
  read them (since my frontend is reading the STDOUT it knows what is going on)
Packit c32a2d
- added SLJ command: SILENCE-LOAD-JUMP... a hack for my hacked
Packit c32a2d
  mixplayd... maybe one should remove that again.
Packit c32a2d
Packit c32a2d
0.59r: (MH)
Packit c32a2d
------
Packit c32a2d
- applied audio_alib changes from Ralf Hildebrandt <R.Hildebrandt@TU-BS.DE>
Packit c32a2d
- some 'paetsches' from DK
Packit c32a2d
- minor optimizations in layer3 (dequantize/huffman) 
Packit c32a2d
- BSDOS 4.0 with gcc added to Makefile (<sms@moe.2bsd.com>)
Packit c32a2d
- Solaris-ESD patch from Ryan Prosser <prosser@wam.umd.edu>
Packit c32a2d
- Added Frontend changes from Bertrand Petit <elrond@phoe.netdev.net>
Packit c32a2d
- more DK 'paetsches' (final dk7-clubhaus edition), includes extended term 
Packit c32a2d
  control
Packit c32a2d
- SGI audio fix for non RAD machines from Erik Mouw <J.A.K.Mouw@its.tudelft.nl>
Packit c32a2d
- fixed ugly bug in layer3 dequant for bt==2 (may cause high frequency clitchs)
Packit c32a2d
- AMD-3DNow optimizations in decode and dct64
Packit c32a2d
- OS/2 reworked from Samuel Audet (see audio_os2.c for more)
Packit c32a2d
- added freebsd-esd make-entry from Daniel O'Connor (darius@guppy.dons.net.au)
Packit c32a2d
- added enhanced head_check from D. Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>
Packit c32a2d
- applied 'xterm-title-patch' from "Wilson, Jeff D" <jeff.wilson@wilcom.com>
Packit c32a2d
- more esd changes from Robert Bihlmeyer <robbe@orcus.priv.at>
Packit c32a2d
- applied Hannu Napari's <Hannu.Napari@hut.fi> SGI audio patches
Packit c32a2d
- minor changes in httpget.c and mpg123.c 
Packit c32a2d
- added native AIX support from Juergen.Schoew@unix-ag.uni-siegen.de
Packit c32a2d
- applied playlist patch from <psst@euskalnet.net>
Packit c32a2d
- more SGI audio patches from Gilles Zunino <Gilles.Zunino@hei.fupl.asso.fr>
Packit c32a2d
- applied esdserver patch from Matthew Parslow <roy@alpha.alphalink.com.au>
Packit c32a2d
- added some fixes for control_generic
Packit c32a2d
Packit c32a2d
0.59q: (MH)
Packit c32a2d
------
Packit c32a2d
- ESD fixes
Packit c32a2d
- minor bugfixes (DK patch ;)
Packit c32a2d
- au and cdr 'support' (it's a hack)
Packit c32a2d
- Fixed 'VBR' Bug in get_scale_fac1(). Thanx to <ssonique@hotmail.com> for
Packit c32a2d
  this. (Wasn't really a VBR Bug. The new encoders just triggered it.)
Packit c32a2d
- Added equalizer patch from <dlux@dlux.sch.bme.hu>
Packit c32a2d
Packit c32a2d
0.59p: (MH)
Packit c32a2d
------
Packit c32a2d
- Added mpglib (see mpglib directory)
Packit c32a2d
- 'make generic' is more generic now
Packit c32a2d
- Added HPUX/ALib support from Ducroquet Erwan (ducroque@ufr-info-p7.ibp.fr) 
Packit c32a2d
- Added EsoundD support from <fill it in>
Packit c32a2d
- Added exp. relatime support (compile with -DSET_RT) 
Packit c32a2d
- Added linux-sparc patch from 
Packit c32a2d
- Added genrepatch from Shane Wegner <shane@CM.NU>
Packit c32a2d
- Added wav-File patch Samuel Audet <guardia@cam.org>
Packit c32a2d
- Added SGI-RAD support from "J. Dean Brederson" <jdb@cs.utah.edu>
Packit c32a2d
- Added sajberplay/FreeBSD patch from Chou Ye-chi <is84002@cis.nctu.edu.tw>
Packit c32a2d
- Added 486 optimizations from Fabrice Bellard <bellard@email.enst.fr>
Packit c32a2d
- Added combined output devices on SUN (ie Speaker and headphones together)
Packit c32a2d
- Added audio_alsa.c (under GPL license) for the ALSA sound system from
Packit c32a2d
   A. Hermansen <ahermans@vf.telia.no> and J. Kysela <perex@jcu.cz>
Packit c32a2d
- Added K6-3DNow patches from  KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp>
Packit c32a2d
- Added MINT patches from Petr Stehlik <stehlik@cas3.zlin.vutbr.cz>
Packit c32a2d
- Fixed minor bug for linux-i486 and mono 
Packit c32a2d
Packit c32a2d
0.59o: (MH)
Packit c32a2d
------
Packit c32a2d
- fixed Bug with stereo streams on mono audio hardware for OSS
Packit c32a2d
- fixed a bug with mono output and 1:1 (no) rate conversion
Packit c32a2d
- again changes in the probe code
Packit c32a2d
- fix in the buffer code for the case, that audio parameters are changing
Packit c32a2d
- more changes to the flexibel rate converter, should now work when
Packit c32a2d
  writing to STDOUT.
Packit c32a2d
- Added Andy's (<andy@snoogie.demon.co.uk>) float2int speed up proposal 
Packit c32a2d
  (check WRITE_SAMPLE in decode_i386.c) .. Maybe someone wanna take the 
Packit c32a2d
  idea and put it into the decode_i586.s part?
Packit c32a2d
- Added TK3Play support from Brian Foutz <foutz@anise.ee.cornell.edu>
Packit c32a2d
  (compiles but untested)
Packit c32a2d
- RIFF Header fix (according to Thomas Niederreiter's
Packit c32a2d
  <tn@tarantel.rz.fh-muenchen.de> patch)
Packit c32a2d
- m68k patch from Stefan Gybas <cab@studbox.uni-stuttgart.de> applied
Packit c32a2d
- minor additional PPC changes applied
Packit c32a2d
- resync and EOF hang fixed
Packit c32a2d
- resync and bitrate correction relaxed 
Packit c32a2d
- Slightly change verbose output; added countdown
Packit c32a2d
Packit c32a2d
0.59n: (MH)
Packit c32a2d
------
Packit c32a2d
- fixed shuffle bug
Packit c32a2d
- added memory mapped IO for file reading
Packit c32a2d
- added MPEG 2.5 12kHz and 8kHz table entry
Packit c32a2d
- started flexibel rate conversion .. 
Packit c32a2d
- new '-Z' / '--random' option 
Packit c32a2d
- minor clean-up
Packit c32a2d
- splitted audio file in audio system dependend smaller parts
Packit c32a2d
- started system stream support (external program: system.c)
Packit c32a2d
- unsigned 8 bit (instead of ulaw) is now default for 8bit operation
Packit c32a2d
- Linux PPC patch from Grant Erickson <eric0139@tc.umn.edu> applied
Packit c32a2d
- added BSDi patch from Peter Berger <peterb@hoopoe.psc.edu>, who reported
Packit c32a2d
  a failure when catching signals
Packit c32a2d
- minor bug fix in the control interface for sajber jukebox
Packit c32a2d
- fixed the ugly 'Ctrl-Z in buffer mode' bug .. YES ;)
Packit c32a2d
- added buffer preload when underrun occurs (preload = 1/8 buffer size)
Packit c32a2d
- minor SUN audio clean up
Packit c32a2d
Packit c32a2d
0.59m: (MH)
Packit c32a2d
------
Packit c32a2d
- Bug with RIFF header streams fixed.
Packit c32a2d
- HTTP auth option patch from Henrik P Johnson <king@one.se>
Packit c32a2d
- NetBSD patch(s) added from <mycroft@NetBSD.ORG> and <augustss@cs.chalmers.se>
Packit c32a2d
- Added advanced shuffle support from Steven Tiger Lang <tiger@tyger.org>
Packit c32a2d
- fixed bug with too large big_value field 
Packit c32a2d
- fixed (hopefully) the bug with the '-a' option 
Packit c32a2d
- work-around for some pedantic compilers in fr->synth init
Packit c32a2d
- some changes for the 'generic' version
Packit c32a2d
- applied NAS bug-fix patch
Packit c32a2d
- new (good) MPEG 2.5 tables (from Niklas Beisert)
Packit c32a2d
- added WIN32 support from Tony Million
Packit c32a2d
- added some bug fixes from Niklas Beisert
Packit c32a2d
- fixed another ugly bug in layer3 dequantize (wrote over the border
Packit c32a2d
  of the 'xr' field)
Packit c32a2d
- a minor HPUX clean up
Packit c32a2d
- added BSD patch from Kevin Brintnall <kbrint@visi.com>
Packit c32a2d
- added Makefile.win32
Packit c32a2d
- added NAS big endian fix
Packit c32a2d
Packit c32a2d
0.59l: (MH)
Packit c32a2d
------
Packit c32a2d
- simple equalizer support (to be continued)
Packit c32a2d
- added NAS patch from Martin Denn <mdenn@unix-ag.uni-kl.de>
Packit c32a2d
- real mono support
Packit c32a2d
- added pentium optimized decode_i586 from Stefan Bieschewski <stb@acm.org>
Packit c32a2d
- fixed a bug in MS dequantize function 
Packit c32a2d
Packit c32a2d
0.59k: (OF)
Packit c32a2d
------
Packit c32a2d
- fixed "Accept" header in httpget.c
Packit c32a2d
- fixed buffer overflow (causing core dumps) in httpget.c
Packit c32a2d
- fixed display of song length
Packit c32a2d
- fixed -b (buffer) problem on SGI / IRIX -- it definitely works now
Packit c32a2d
- fixed problem when files with different sample rates where played,
Packit c32a2d
  it now works with -b (buffer), too
Packit c32a2d
- fixed order of local variables in decode.c to work around a
Packit c32a2d
  compiler bug in ultrix
Packit c32a2d
- fixed Makefile for ultrix
Packit c32a2d
- reverted to old getbits.s (the new one could cause coredumps)
Packit c32a2d
- more compact MPEG header display in non-verbose mode
Packit c32a2d
- small fixes in buffer code and elsewhere
Packit c32a2d
Packit c32a2d
0.59j: (MH)
Packit c32a2d
------
Packit c32a2d
- added sajber jukebox control interface (it's currently a big hack)
Packit c32a2d
  (see 'JUKEBOX' file for more)
Packit c32a2d
- added simple rewind facility .. (only used by sajber interface at the moment)
Packit c32a2d
Packit c32a2d
0.59i: (MH)
Packit c32a2d
-----------
Packit c32a2d
- added front-end (remote) patch from "Brian J. Swetland" <swetland@uiuc.edu>
Packit c32a2d
- added OS2 patches from Niclas Lindstrom <nil@wineasy.se>
Packit c32a2d
- fixed 'rewind bug'
Packit c32a2d
- added patches from Leo Broukhis <leo@zycad.com>
Packit c32a2d
- added shuffle patch from Tillmann Steinbrecher <tst@gmx.de>
Packit c32a2d
- added i386-getbits from M.Stekelenburg <m.stekelenburg@student.utwente.nl>
Packit c32a2d
- added fallback to 8bit if no 16bit samples support (currently linux only)
Packit c32a2d
- added (slightly changed) outburst patch
Packit c32a2d
  from Antti Andreimann <anttix@cyberix.edu.ee>
Packit c32a2d
- added 'http accept' patch from Hur TaeSung <saturn@arari.snu.ac.kr>
Packit c32a2d
- fixed buffer mode bug 
Packit c32a2d
Packit c32a2d
0.59h: (MH)
Packit c32a2d
------
Packit c32a2d
- added '--8bit' option to force 'ULAW 8 BIT' playing
Packit c32a2d
- pcm buffer type changed to 'unsigned char *' 
Packit c32a2d
- plays 2:1 and 4:1 with the real frequency (ie 11025/22050 instead of 44100)
Packit c32a2d
- program (re)sets (changed) frequency for every frame
Packit c32a2d
- buffer mode is broken
Packit c32a2d
Packit c32a2d
0.59g: (MH)
Packit c32a2d
------
Packit c32a2d
- added support for MPEG 2.5 (it's a HACK!) .. mpg123 understands and plays
Packit c32a2d
  2.5 but it does it wrong. (you will hear this!) 
Packit c32a2d
- Fixed wrong values in BandInfo struct for 32kHz mode
Packit c32a2d
- Some performance improvements and minor changes and bug-fixes.
Packit c32a2d
- Tried the new imdct from the maplay1.2+ (version 1.81) package. (but 
Packit c32a2d
  it was slightly slower on my system, currently disabled)
Packit c32a2d
Packit c32a2d
0.59f: (OF)
Packit c32a2d
------
Packit c32a2d
- HP-UX audio fix (provided by Damien Clermonte)
Packit c32a2d
- Buffering (-b option) hopefully fixed.  Please test!
Packit c32a2d
Packit c32a2d
0.59e:
Packit c32a2d
------
Packit c32a2d
- added Audio MPEG 2.0 support (but near untested) (MH)
Packit c32a2d
Packit c32a2d
0.59d: (MH)
Packit c32a2d
------
Packit c32a2d
- minor modifications to dct64_i386.c
Packit c32a2d
- removed duplicated dependency 'dct64.o' in Makefile
Packit c32a2d
Packit c32a2d
0.59c: (OF)
Packit c32a2d
------
Packit c32a2d
- Another complete rework of the buffer system (-b option) (normally uses
Packit c32a2d
  mmap(), but it can also use SYSV-ShMem because mmap() is broken on linux).
Packit c32a2d
Packit c32a2d
0.59: (MH)
Packit c32a2d
-----
Packit c32a2d
- extracted dct64() from decode*.c files.
Packit c32a2d
- some changes to dct64() and decode*.c to allow auto-increment/decrement
Packit c32a2d
- removed bit-counter in getbit-functions. Layer3 part2 now counts it itself.
Packit c32a2d
Packit c32a2d
0.58: (OF)
Packit c32a2d
-----
Packit c32a2d
- Bugfix: not closing the audio device caused a few samples to be lost.
Packit c32a2d
- Bugfix: audio_set_rate() was not called (!?!).
Packit c32a2d
- Additional command line options "--doublespeed" and "--halfspeed" (couldn't
Packit c32a2d
  find better names).  See the manpage.
Packit c32a2d
- Complete redesign of command line options.  See the manpage.
Packit c32a2d
- Changed the buffer algorithm (-b).  I'm not sure whether it's better or worse
Packit c32a2d
  now.
Packit c32a2d
- Supports multiple files on the command line.  Pressing Ctrl-C will skip to the
Packit c32a2d
  next MPEG file, pressing it twice within one second will abort mpg123
Packit c32a2d
  completely.  See the "INTERRUPT" section in the manpage.
Packit c32a2d
- Support for http URLs.  See also the -p option in the manpage.
Packit c32a2d
- Support for list files.  See also the -@ option in the manpage.
Packit c32a2d
Packit c32a2d
0.57: (MH)
Packit c32a2d
-----
Packit c32a2d
- Put the downsampling code together with the full quality decode into one
Packit c32a2d
  binary. (new options -2to1,-4to1)
Packit c32a2d
- Optimizations in the dct12.
Packit c32a2d
- Removed the 'int' version.
Packit c32a2d
Packit c32a2d
0.56: (OF)
Packit c32a2d
-----
Packit c32a2d
- Additional command line option "-rs" to try to resync on "broken" MPEG streams
Packit c32a2d
  (now called "--resync" or "-y").
Packit c32a2d
- Additional command line option "-b" to use audio output buffering. See the
Packit c32a2d
  manpage for additional information.
Packit c32a2d
- Changed a few variable names and some other minor fixes, so the
Packit c32a2d
  source compiles more cleanly (without warnings) on most platforms (for
Packit c32a2d
  example, the FreeBSD port compiles without warnings using "-Wall -ansi
Packit c32a2d
  -pedantic").
Packit c32a2d
- Makefile changes: moved "solaris" to "solaris-gcc", new target
Packit c32a2d
  "solaris" (using Sun's SparcWorks cc, faster tha gcc!), new targets
Packit c32a2d
  "aix" and "generic".
Packit c32a2d
Packit c32a2d
0.55: 
Packit c32a2d
-----
Packit c32a2d
- removed some obsolete code from layer3.c (MH)
Packit c32a2d
- changed scalefac stoing in layer3 (MH)
Packit c32a2d
- decode_4to1.c added again. Renamed decode_lp.c to decode_2to1.c (MH)
Packit c32a2d
  (both not optimized .. still expterimental)
Packit c32a2d
- Minor cleanups and optimizations in layer3. (MH)
Packit c32a2d
- Removed some (probable) minor bugs. (MH)
Packit c32a2d
- Changed 2**(...) scaling (and omitted a few muls) (MH)
Packit c32a2d
- Changed Makefile (OF)
Packit c32a2d
- Changed dequantize to reorder with a mapping table 
Packit c32a2d
  (you can disable this by undefining MAP in layer3.c) (MH)
Packit c32a2d
- removed the 'dummy' scale step for mixed mode (MH)
Packit c32a2d
- Changed copy policy (MH)
Packit c32a2d
- Modified dequant-reorder-mapping (MH)
Packit c32a2d
Packit c32a2d
0.54: (MH)
Packit c32a2d
-----
Packit c32a2d
- Minor changes in the documents .. 
Packit c32a2d
- huffman.c: x->len,y->len removed .. always '15' for the important cases
Packit c32a2d
- audio.c: some additions to the SOLARIS audio code
Packit c32a2d
Packit c32a2d
0.53b: (OF)
Packit c32a2d
------
Packit c32a2d
- Makefile:
Packit c32a2d
-- Renamed SPARC10 to SUNOS (which is more appropriate).
Packit c32a2d
   Tested with SunOS 4.1.4 on a SPARCstation SLC, 20 MHz (322% CPU,
Packit c32a2d
   so no realtime decoding).
Packit c32a2d
-- Added SOLARIS.  Tested with Solaris 2.5.1 on an Ultra 1, 167 MHz (14%
Packit c32a2d
   CPU), a SPARCstation 5, 110 MHz (47% CPU), and a SPARCstation 10, 33 MHz
Packit c32a2d
   (68% CPU).
Packit c32a2d
-- Added FreeBSD.  Tested with 2.1.7 on a Pentium-90 (38% CPU) and 2.2 on a
Packit c32a2d
   Pentium-166 (20% CPU).
Packit c32a2d
-- Added Digital Unix.  Tested with DU 3.2 on a DEC 3000/500 (Alpha AXP
Packit c32a2d
   150 MHz, 33% CPU).  Does not support DEC's audio interface ("AudioFile"),
Packit c32a2d
   decodes to stdout only.
Packit c32a2d
-- Improved "clean" target to remove core files and editor backup files.
Packit c32a2d
-- Added "install" target.
Packit c32a2d
-- Added "dist" target to create a .tar.gz file of the source directory.
Packit c32a2d
-- In the distributed Makefile, all system sections are commented out.  When
Packit c32a2d
   you type "make" without uncommenting one of the sections, an appropriate
Packit c32a2d
   error message will be displayed.
Packit c32a2d
- audio.c
Packit c32a2d
  Fixed problem when opening /dev/audio on Solaris: I had to remove O_NDELAY,
Packit c32a2d
  because writing to /dev/audio didn't block until the requested number of
Packit c32a2d
  samples could be written, but instead it wrote only as much samples as
Packit c32a2d
  it was able too.  Sounded funny.  Removing O_NDELAY fixed the problem.
Packit c32a2d
  I don't think that it hurts SunOS either, so I didn't make another #ifdef.
Packit c32a2d
- common.c
Packit c32a2d
  Fixed bug by adding function finish_output(): The decoder writes the audio
Packit c32a2d
  samples into a buffer, and each time the buffer is full, it is written
Packit c32a2d
  to the audio device (or to stdout).  But when the decoding is done,
Packit c32a2d
  there are some samples left in the buffer which aren't written yet --
Packit c32a2d
  they were just discarded.  This additional function fixes the problem by
Packit c32a2d
  writing the remaining samples from the buffer.  It is called immediately
Packit c32a2d
  after the main frame loop in mpg123.c.
Packit c32a2d
- decode*.c
Packit c32a2d
  Fixed compiler warning on symbol "div": Some compilers issue warnings
Packit c32a2d
  because the symbol div is already used for something else (see "man div"),
Packit c32a2d
  so I changed it to "divv".
Packit c32a2d
- layer*.c Functions do_layer*:
Packit c32a2d
-- Moved the declaration for audio_play_samples into mpg123.h.  Makes the
Packit c32a2d
   code cleaner.
Packit c32a2d
-- I moved the variables pcm_samples and pcm_point to common.c, so they are
Packit c32a2d
   shared between all modules.  This was necessary because the finish_output()
Packit c32a2d
   function (see common.c above) needs to access them.
Packit c32a2d
-- Renamed loop variables "i" and "j" to "k" in order to fix compiler warnings
Packit c32a2d
   for duplicate/hidden symbols (similar to "div" in decode*.c, see above).
Packit c32a2d
   Changed the preprocessor symbol AUDIOBUFSIZE into a global variable
Packit c32a2d
   "audiobufsize".  This makes it possible to change it by a command
Packit c32a2d
   line option.
Packit c32a2d
- layer1.c
Packit c32a2d
  Fixed error in function I_step_one, second parameter: unsigned int
Packit c32a2d
  scale_index[2][]  -->  ...[2][SBLIMIT] This caused an error with the DU
Packit c32a2d
  compiler (which is ok, because [2][] is incorrect according to ANSI).
Packit c32a2d
  I don't know whether [2][SBLIMIT] actually works correctly (I have no
Packit c32a2d
  layer-1 streams to test it), but at least it compiles without error, and
Packit c32a2d
  it appears to be correct (looking at the rest of the source).  Heaven knows
Packit c32a2d
  why gcc doesn't issue an error, and what it actually makes from it.
Packit c32a2d
- mpg123.1
Packit c32a2d
  A simple manual page.  Type "nroff -man mpg123.1 | more" to view it, or
Packit c32a2d
  install it in /usr/local/man/man1 (this is done automatically by "make
Packit c32a2d
  install").
Packit c32a2d
- mpg123.c
Packit c32a2d
  New boolean variable "quiet": If this variable is set to TRUE (command line
Packit c32a2d
  option -q), no messages are printed.