Opened 11 years ago
Closed 11 years ago
#7417 closed enhancement (fixed)
mpg123-1.23.0
| Reported by: | Fernando de Oliveira | Owned by: | Fernando de Oliveira |
|---|---|---|---|
| Priority: | normal | Milestone: | 7.9 |
| Component: | BOOK | Version: | SVN |
| Severity: | medium | Keywords: | |
| Cc: |
Description
http://www.mpg123.org/download/mpg123-1.23.0.tar.bz2
http://www.mpg123.org/download/mpg123-1.23.0.tar.bz2.sig
http://www.mpg123.org/cgi-bin/news.cgi
20160131 Thomas: Releasing mpg123 version 1.23.0: Patent-free fun!
After more than 20 years of existence, the mpg123 project reaches it's
namesake version number a second time, after we forgot to properly
celebrate version 1.2.3 (meaning: introducing some artificial bugs to
fix, reaching 1.2.3 before 1.3.0 so that there had been a version 1.2.3
— what a miss!). All glory to mpg123 version 1.23.0! Those 20 years also
have another point: The haunting software patents on MP3 encoding and
decoding are gone, at least in Europe, according to the Wikipedia
article (too busy to do a deep investigation myself, and IANAL anyway).
Seems like only you poor lot in the US of A have to wait until end of
2017. But even then: technology from the 1980s, patents from the
early/mid (submarine) 1990s, unencumbered use of MP3 player software
originating from the mid 1990s finally possible in the late 2010s. Quite
a spread.
But to the point: This is a massive release, after about a year of
collecting improvements and bug fixes. I took some liberty in changing
behaviour regarding console printouts. But the main point is the arrival
of libout123, which prevents me from re-inventing audio output code for
various platforms for my projects. Yes, I got selfish motivation for
working on Open Source code, and that's a good thing. Anyhow, checkout
the stuff at the download section or stay around and keep reading the
considerable list of changes:
• libmpg123 version 42
◦ This adds mpg123_framelength() and makes mpg123_position()
truly obsolete.
◦ Equalizer optional now (./configure --disable-equalizer) to
save precious memory
◦ Clip decode tables for large amplification with fixed-point
decoders. Without that, high-pitched distortion enters really
quickly when trying to increase volume even if output samples
would not be clipped, weren't it for fixed-point math.
• libout123 version 1: First incarnation of libout123, a basic library
to get audio data written to audio devices (or files) in simple
blocking manner as opposed to callback APIs (which it wraps over).
This collects the output modules of mpg123 and makes them available
to the wider masses. Also, the separate shared memory buffer process
(contained in libout123) got a lot of reworking which should be
noticable in the interaction with terminal control.
◦ Some tuning of several output drivers (modules) regarding
flexible buffer size, client names, supported formats.
◦ Notably the JACK output got a major overhaul and now does not
swallow audio at the end anymore. Huge latency also reduced and
tunable. Encoding fixed to floating point, so that libmpg123
actually chooses what is sensible.
• Added mpg123 --no-infoframe.
• Detect terminal on input side and enable control keys automatically.
There is --no-control now to disable terminal control anyway.
• Display stuff:
◦ Avoid spillover of status line that caused unwanted terminal
scrolling. If the terminal width is smaller than the full
status string, a cut is made to make it fit.
◦ Draw a progress bar on the terminal by inversing colors behind
status line.
◦ Rework the format of the status line to be more compact and
consistent.
◦ Rework smart tag printout for adapting to terminal width.
◦ Warning messages also start with a line break now to better fit
in with verbose playback.
◦ Doubly-verbose mode now needed for long MPEG header print out.
It is a higher level of verbosity than printing the current
position. The compact header is a better fit.
◦ Compact header printout also compacted, example: MPEG 1.0 L III
cbr128 44100 j-s
◦ Reporting of clipped samples also includes a line break now.
◦ Keep ID3v2 data around for terminal control to be able to print
on demand. That was broken for some time.
• Default for --preload now is 0.2 instead of 1 (fill whole buffer
before playback). The maximum is 0.5 . This is mandated by corrected
buffer interaction in libout123.
• Improved interaction with buffer process in terminal control mode.
Seeking is more transparent now, taking dropped samples from buffer
into account to avoid unintended jumps. Direct seeks with number row
do not pause playback anymore.
• Silently skip APE tags (thanks to Hans de Goede).
• Some reduction in bitrot on AIX (typos in output module, build with
--disable-largefile --with-audio=aix, real test welcome).
• Added '[' and ']' keys to skip to previous/next directory in
playlist.
• Added support for Haiku to configure script (thanks to Jerome
Duval).
• Remove spurious Frankenstein warning when scanning files that have
no gapless info (the reported value of -1152 gapless sample length
should be a giveaway anyway).
• Fix a bug in the command line parser that was present from the
beginning, apparently, causing certain parameters (--au, --cdr) to
kill off parsing of following ones. Nobody complained in all these
years. Astounding.
• Forget content type from HTTP redirects (relate to error pages, not
the stream redirected to), fixes web radio streams that do not send
any content type for the actual stream.
• Accept application/pls+xml for PLS playlists. It happens. Don't ask
mpg123 to actually parse any XML!
• Ignore whitespace after HTTP MIME types (esp. before a ";").
• Added --name to mpg123 and out123 for providing client name p.ex.
for JACK. There is no default of appending the PID to "mpg123" as
client name anymore, just plain "mpg123" or "out123".
• Added --devbuffer to mpg123 and out123 for influencing device buffer
and possible latency a bit (perhaps more so in future when drivers
are adapted to pay more attention to that).
• Added out123 --channels , --list-encodings, --test-format,
--test-encodings, --query-format.
• Calling ./configure --enable-nagging does not include --enable-debug
anymore, you specify that separately.
• Fix for newer glibc that wants higher POSIX feature test for
getaddrinfo() stuff.
Oh, and a little technical detail I forgot in the official NEWS: The
build system got reworked. No recursive Makefiles anymore!
Change History (3)
comment:1 by , 11 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 11 years ago
Note:
See TracTickets
for help on using tickets.

Very good!!!