Opened 9 years ago
Closed 9 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: | normal | 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 , 9 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 9 years ago
Note:
See TracTickets
for help on using tickets.
Very good!!!