[mpg123-devel] Please test upcoming mpg123 1.32 (current snapshot or svn trunk)
Brought to you by:
sobukus
From: Thomas O. <tho...@or...> - 2023-08-21 22:13:38
|
TL;DR: Test mpg123 snapshot on your platform and report breakage. Please. Dear all, the lengthy dicussion on bug 344 prompted some hefty rearrangements in the libmpg123 code and significant changes in the build. We have yet another overhaul of the largefile support. The primary code path is now formed by API that is fixed to offsets using int64_t and functions working with off_t (be it 32 bit or 64 bit) are bolted on top of that. This enables work with large files regardless of LFS in the libmpg123 build, which may be lacking in case of MSVC builds that simply don't do 64 bit off_t, by client code providing proper callbacks to mpg123_reader64( mpg123_handle *mh , int (*r_read) (void *, void *, size_t, size_t *) , int64_t (*r_lseek)(void *, int64_t, int) , void (*cleanup)(void*) ); Whatever tricks your platform needs to do proper I/O, you can implement them. I don't have to care. You can also define the macro MPG123_PORTABLE_API (same for libsyn123 and syn123.h with SYN123_PORTABLE_API) when including mpg123.h to skip defining any API that touches off_t (or ssize_t, for that matter). The library is now built using explicit _LARGEFILE64_SOURCE and lseek64(), if available. The standard autoconf largefile detection macro is not used anymore. So it could well be that something needs consideration on platform X. I might have assumed something that I shouldn't have. So, give https://mpg123.org/snapshot a spin. The full list of NEWS scheduled for the upcoming release contains some more points: 1.32.0 ------ - build: -- Move version handling out of configure.ac to ease other build systems. -- Include "fmt123.h" instead of <fmt123.h> in main API headers to make it more likely the correct one is included (at least gcc picks the one in the same directory as the including header first). -- All headers are build-independent now. -- Fix build for picky linkers by avoiding definition of wrap_getcpuflags() where it is not used (spurious linker error to non-exitent getcpuflags(), bug 353). -- Handle deprecation of C99 detection macro in autoconf 2.70. -- No use of AC_SYS_LARGEFILE anymore for explicit handling and differing choice for the libraries and frontend programs. -- Added --enable-portable and --disable-largefile to configure, removing the other largefile-related options. - ports/Sony_PSP: removed - mpg123: -- Added --libversion. -- Added proper A-B looping with terminal control key 'o', renamed --pauseloop to --presetloop. -- Really get rid of mpg123_position() usage. (It was all lies before!) -- Fix terminal progress info when seeking in stopped mode (1.31 regression). -- Patch up interaction of output buffer with generic remote control, adding non-interruptible drain after P 3, and dropping buffer on QUIT. -- Uppercase some generic control replies for consinstency: SILENCE, PROGRESS, MUTE, UNMUTE - libmpg123, libout123, libsyn123: bumped API version for version query functions - libout123: -- Add sleep builtin output module (silent, but proper timing). - libsyn123: -- Introduced SYN123_PORTABLE_API for an API without off_t and ssize_t (see NEWS.libsyn123). - libmpg123: -- Internal I/O using explicit largefile support via off64_t, lseek64, fallback to plain 32 bit off_t. -- Added explicit 64 bit API with 64 suffix (mpg123_tell64(), not mpg123_tell_64()). This allows full avoidance of ambiguus off_t. The API is always using 64 bit integers, regardless of internal implementation. (bug 344) -- Introduced MPG123_PORTABLE_API for an API subset without off_t and ssize_t. Alrighty then, Thomas |