mpg123-1.32.2

This commit is contained in:
Ozkan Sezer
2023-09-28 05:55:40 +03:00
parent de1a534fe6
commit 835d418436
13 changed files with 87 additions and 63 deletions

13
NEWS
View File

@@ -1,3 +1,16 @@
1.32.2
------
- libmpg123: Re-introduce _64 symbols on native 64 bit offset platforms. This
was a regression since 1.31 series. Sorry, too much cleanup, not enough
testing.
- build:
-- Better O_LARGEFILE logic, avoiding redefintion.
- ports/cmake:
-- Require C99 (bug 360, among other points, thanks to Ozkan Sezer).
-- Fix broken O_LARGEFILE logic (bug 360).
-- Typo fix and cleanup, also manual SSE switch for Android on old x86 (bug 359).
1.32.1 1.32.1
------ ------
- Include man pages again in tarball and install. We cannot avoid the empty - Include man pages again in tarball and install. We cannot avoid the empty

24
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for mpg123 1.32.1. # Generated by GNU Autoconf 2.71 for mpg123 1.32.2.
# #
# Report bugs to <maintainer@mpg123.org>. # Report bugs to <maintainer@mpg123.org>.
# #
@@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='mpg123' PACKAGE_NAME='mpg123'
PACKAGE_TARNAME='mpg123' PACKAGE_TARNAME='mpg123'
PACKAGE_VERSION='1.32.1' PACKAGE_VERSION='1.32.2'
PACKAGE_STRING='mpg123 1.32.1' PACKAGE_STRING='mpg123 1.32.2'
PACKAGE_BUGREPORT='maintainer@mpg123.org' PACKAGE_BUGREPORT='maintainer@mpg123.org'
PACKAGE_URL='' PACKAGE_URL=''
@@ -1726,7 +1726,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures mpg123 1.32.1 to adapt to many kinds of systems. \`configure' configures mpg123 1.32.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1797,7 +1797,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of mpg123 1.32.1:";; short | recursive ) echo "Configuration of mpg123 1.32.2:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@@ -2074,7 +2074,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
mpg123 configure 1.32.1 mpg123 configure 1.32.2
generated by GNU Autoconf 2.71 generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc. Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2619,7 +2619,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by mpg123 $as_me 1.32.1, which was It was created by mpg123 $as_me 1.32.2, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@@ -3989,7 +3989,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='mpg123' PACKAGE='mpg123'
VERSION='1.32.1' VERSION='1.32.2'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -17616,9 +17616,9 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_o_largefile" >&5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_o_largefile" >&5
printf "%s\n" "$have_o_largefile" >&6; } printf "%s\n" "$have_o_largefile" >&6; }
if test x"$have_o_largefile" = xno; then if test x"$have_o_largefile" = xyes; then
printf "%s\n" "#define O_LARGEFILE 0" >>confdefs.h printf "%s\n" "#define HAVE_O_LARGEFILE 1" >>confdefs.h
fi fi
else else
@@ -22648,7 +22648,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by mpg123 $as_me 1.32.1, which was This file was extended by mpg123 $as_me 1.32.2, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@@ -22716,7 +22716,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
mpg123 config.status 1.32.1 mpg123 config.status 1.32.2
configured by $0, generated by GNU Autoconf 2.71, configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View File

@@ -1311,8 +1311,8 @@ if test "x$have_off64_t" = xyes && test "x$ac_cv_func_lseek64" = xyes; then
} }
])],[have_o_largefile=yes],[have_o_largefile=no]) ])],[have_o_largefile=yes],[have_o_largefile=no])
AC_MSG_RESULT([$have_o_largefile]) AC_MSG_RESULT([$have_o_largefile])
if test x"$have_o_largefile" = xno; then if test x"$have_o_largefile" = xyes; then
AC_DEFINE(O_LARGEFILE, 0, [ Define to 0 if system does not have/need it. ]) AC_DEFINE(HAVE_O_LARGEFILE, 1, [ Define if O_LARGEFILE flag for open(2) exists. ])
fi fi
else else
use_largefile=no use_largefile=no

View File

@@ -3,7 +3,7 @@
# - devel packages for alsa, sdl, etc... to build the respective output modules. # - devel packages for alsa, sdl, etc... to build the respective output modules.
Summary: The fast console mpeg audio decoder/player. Summary: The fast console mpeg audio decoder/player.
Name: mpg123 Name: mpg123
Version: 1.32.1 Version: 1.32.2
Release: 1 Release: 1
URL: http://www.mpg123.org/ URL: http://www.mpg123.org/
License: GPL License: GPL

View File

@@ -1,19 +1,7 @@
DISCLAIMER: The contents of the ports directory are included for convenience, This directory used to contain some (contributed) works covering usage and/or
but they usually contain files contributed by various people, not the core building of mpg123/libmpg123 from different programming environments. Since
mpg123 team. The stuff is not tested by us. In some cases, it's even they became too outdated, all but the CMake port were removed.
impossible to tell what is really inside. Use at your own risk (well, like
all Free Software, actually;-).
This directory contains some (contributed) works covering usage and/or building The CMake build is primarily intended for platforms not well-supported by the
of mpg123/libmpg123 from different programming environments. Note that those primary autotools-based build. It is tested occasionally, had some tuning
may be a bit outdated (especially when a file is added/removed in libmpg123 over time, but may get out of sync regarding possible build configurations.
sources); as the team lacks resource to test everything. But in any case,
the ports can provide a good starting point on the respective platform, to get
it to work with minimal fuzz.
- cmake: CMake build to get started on non-Unix-like platforms, especially
for just libmpg123 on Windows
There used to be other ports, last of those for the Sony PSP. There was not
much porting involved on that one, though, just a custom Makefile for building
a generic libmpg123.

View File

@@ -4,6 +4,7 @@ include(cmake/read_api_version.cmake)
read_api_version(MPG123_VERSION) read_api_version(MPG123_VERSION)
project(mpg123 VERSION ${MPG123_VERSION} LANGUAGES C ASM) project(mpg123 VERSION ${MPG123_VERSION} LANGUAGES C ASM)
set(CMAKE_C_STANDARD 99)
option(BUILD_LIBOUT123 "build libout123 (prerequisite for included programs)" ON) option(BUILD_LIBOUT123 "build libout123 (prerequisite for included programs)" ON)
if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")

View File

@@ -84,7 +84,7 @@ check_c_source_compiles(
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
int fd = open(\"/foo\", O_RDONLY|O_LARGEFILE); int main(){ return open(\"/foo\", O_RDONLY|O_LARGEFILE); }
" HAVE_O_LARGEFILE) " HAVE_O_LARGEFILE)
endif() endif()
endif() endif()

View File

@@ -10,4 +10,4 @@ set_target_properties(${TARGET}_dl PROPERTIES POSITION_INDEPENDENT_CODE ON)
add_library(${TARGET}_str OBJECT add_library(${TARGET}_str OBJECT
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat_str.c") "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/compat/compat_str.c")
set_target_properties(${TARGET}_dl PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(${TARGET}_str PROPERTIES POSITION_INDEPENDENT_CODE ON)

View File

@@ -181,6 +181,3 @@
#cmakedefine LFS_LARGEFILE_64 1 #cmakedefine LFS_LARGEFILE_64 1
#cmakedefine LFS_SENSITIVE 1 #cmakedefine LFS_SENSITIVE 1
#cmakedefine HAVE_O_LARGEFILE 1 #cmakedefine HAVE_O_LARGEFILE 1
#ifndef HAVE_O_LARGEFILE
#define O_LARGEFILE 0
#endif

View File

@@ -1,6 +1,9 @@
cmake_minimum_required(VERSION 3.12) cmake_minimum_required(VERSION 3.12)
option(NO_FEATURE_REPORT "Disable feature report function" OFF) option(NO_FEATURE_REPORT "Disable feature report function" OFF)
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
option(WITH_SSE "x86: build with SSE support if detected. Turn OFF for older devices where autodetection is misleading." ON)
endif()
include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/") include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/")
@@ -121,6 +124,9 @@ elseif(MACHINE STREQUAL "x86")
endif() endif()
cmake_host_system_information(RESULT HAVE_SSE QUERY HAS_SSE) cmake_host_system_information(RESULT HAVE_SSE QUERY HAS_SSE)
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
set(HAVE_SSE ${WITH_SSE})
endif()
if(HAVE_SSE) if(HAVE_SSE)
set(PLATFORM_DEFINITIONS OPT_SSE) set(PLATFORM_DEFINITIONS OPT_SSE)
set(PLATFORM_SOURCES set(PLATFORM_SOURCES
@@ -140,8 +146,6 @@ elseif(MACHINE STREQUAL "x86")
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_sse.S" "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_sse.S"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_sse.S") "${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/synth_sse.S")
endif() endif()
target_sources(${TARGET} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_i386.c")
endif() endif()
elseif(MACHINE STREQUAL "arm64") elseif(MACHINE STREQUAL "arm64")
set(PLATFORM_DEFINITIONS OPT_MULTI OPT_GENERIC OPT_GENERIC_DITHER OPT_NEON64) set(PLATFORM_DEFINITIONS OPT_MULTI OPT_GENERIC OPT_GENERIC_DITHER OPT_NEON64)

View File

@@ -181,6 +181,9 @@
/* Define to 1 if you have the <os2.h> header file. */ /* Define to 1 if you have the <os2.h> header file. */
#undef HAVE_OS2_H #undef HAVE_OS2_H
/* Define if O_LARGEFILE flag for open(2) exists. */
#undef HAVE_O_LARGEFILE
/* Define to 1 if you have the `random' function. */ /* Define to 1 if you have the `random' function. */
#undef HAVE_RANDOM #undef HAVE_RANDOM
@@ -425,9 +428,6 @@
/* Define to disable warning messages. */ /* Define to disable warning messages. */
#undef NO_WARNING #undef NO_WARNING
/* Define to 0 if system does not have/need it. */
#undef O_LARGEFILE
/* Name of package */ /* Name of package */
#undef PACKAGE #undef PACKAGE

View File

@@ -496,8 +496,16 @@ int attribute_align_arg mpg123_position_32( mpg123_handle *mh, off_t INT123_fram
#endif #endif
// _64 aliases if we got some off64_t to work with. // _64 aliases if we either got some off64_t to work with or
// if there is no explicit 64 bit API but off_t is just always
// 64 bits.
#if defined(LFS_LARGEFILE_64) || (SIZEOF_OFF_T == 8)
#ifdef LFS_LARGEFILE_64 #ifdef LFS_LARGEFILE_64
#define OFF64 off64_t
#else
#define OFF64 off_t
#endif
int attribute_align_arg mpg123_open_64(mpg123_handle *mh, const char *path) int attribute_align_arg mpg123_open_64(mpg123_handle *mh, const char *path)
{ {
@@ -520,89 +528,90 @@ int attribute_align_arg mpg123_open_handle_64(mpg123_handle *mh, void *iohandle)
return mpg123_open_handle(mh, iohandle); return mpg123_open_handle(mh, iohandle);
} }
int attribute_align_arg mpg123_framebyframe_decode_64(mpg123_handle *mh, off64_t *num, unsigned char **audio, size_t *bytes) int attribute_align_arg mpg123_framebyframe_decode_64(mpg123_handle *mh, OFF64 *num, unsigned char **audio, size_t *bytes)
{ {
return mpg123_framebyframe_decode64(mh, (int64_t*)num, audio, bytes); return mpg123_framebyframe_decode64(mh, (int64_t*)num, audio, bytes);
} }
int attribute_align_arg mpg123_decode_frame_64(mpg123_handle *mh, off64_t *num, unsigned char **audio, size_t *bytes) int attribute_align_arg mpg123_decode_frame_64(mpg123_handle *mh, OFF64 *num, unsigned char **audio, size_t *bytes)
{ {
return mpg123_decode_frame64(mh, (int64_t*)num, audio, bytes); return mpg123_decode_frame64(mh, (int64_t*)num, audio, bytes);
} }
off64_t attribute_align_arg mpg123_timeframe_64(mpg123_handle *mh, double seconds) OFF64 attribute_align_arg mpg123_timeframe_64(mpg123_handle *mh, double seconds)
{ {
return mpg123_timeframe64(mh, seconds); return mpg123_timeframe64(mh, seconds);
} }
off64_t attribute_align_arg mpg123_tell_64(mpg123_handle *mh) OFF64 attribute_align_arg mpg123_tell_64(mpg123_handle *mh)
{ {
return mpg123_tell64(mh); return mpg123_tell64(mh);
} }
off64_t attribute_align_arg mpg123_tellframe_64(mpg123_handle *mh) OFF64 attribute_align_arg mpg123_tellframe_64(mpg123_handle *mh)
{ {
return mpg123_tellframe64(mh); return mpg123_tellframe64(mh);
} }
off64_t attribute_align_arg mpg123_tell_stream_64(mpg123_handle *mh) OFF64 attribute_align_arg mpg123_tell_stream_64(mpg123_handle *mh)
{ {
return mpg123_tell_stream64(mh); return mpg123_tell_stream64(mh);
} }
off64_t attribute_align_arg mpg123_seek_64(mpg123_handle *mh, off64_t sampleoff, int whence) OFF64 attribute_align_arg mpg123_seek_64(mpg123_handle *mh, OFF64 sampleoff, int whence)
{ {
return mpg123_seek64(mh, (int64_t)sampleoff, whence); return mpg123_seek64(mh, (int64_t)sampleoff, whence);
} }
off64_t attribute_align_arg mpg123_feedseek_64(mpg123_handle *mh, off64_t sampleoff, int whence, off64_t *input_offset) OFF64 attribute_align_arg mpg123_feedseek_64(mpg123_handle *mh, OFF64 sampleoff, int whence, OFF64 *input_offset)
{ {
return mpg123_feedseek64(mh, (int64_t)sampleoff, whence, (int64_t*)input_offset); return mpg123_feedseek64(mh, (int64_t)sampleoff, whence, (int64_t*)input_offset);
} }
off64_t attribute_align_arg mpg123_seek_frame_64(mpg123_handle *mh, off64_t offset, int whence) OFF64 attribute_align_arg mpg123_seek_frame_64(mpg123_handle *mh, OFF64 offset, int whence)
{ {
return mpg123_seek_frame64(mh, (int64_t)offset, whence); return mpg123_seek_frame64(mh, (int64_t)offset, whence);
} }
int attribute_align_arg mpg123_set_filesize_64(mpg123_handle *mh, off64_t size) int attribute_align_arg mpg123_set_filesize_64(mpg123_handle *mh, OFF64 size)
{ {
return mpg123_set_filesize64(mh, (int64_t)size); return mpg123_set_filesize64(mh, (int64_t)size);
} }
off64_t attribute_align_arg mpg123_framelength_64(mpg123_handle *mh) OFF64 attribute_align_arg mpg123_framelength_64(mpg123_handle *mh)
{ {
return mpg123_framelength64(mh); return mpg123_framelength64(mh);
} }
off64_t attribute_align_arg mpg123_length_64(mpg123_handle *mh) OFF64 attribute_align_arg mpg123_length_64(mpg123_handle *mh)
{ {
return mpg123_length64(mh); return mpg123_length64(mh);
} }
int attribute_align_arg mpg123_index_64(mpg123_handle *mh, off64_t **offsets, off64_t *step, size_t *fill) int attribute_align_arg mpg123_index_64(mpg123_handle *mh, OFF64 **offsets, OFF64 *step, size_t *fill)
{ {
return mpg123_index64(mh, (int64_t**)offsets, (int64_t*)step, fill); return mpg123_index64(mh, (int64_t**)offsets, (int64_t*)step, fill);
} }
int attribute_align_arg mpg123_set_index_64(mpg123_handle *mh, off64_t *offsets, off64_t step, size_t fill) int attribute_align_arg mpg123_set_index_64(mpg123_handle *mh, OFF64 *offsets, OFF64 step, size_t fill)
{ {
return mpg123_set_index64(mh, (int64_t*)offsets, (int64_t)step, fill); return mpg123_set_index64(mh, (int64_t*)offsets, (int64_t)step, fill);
} }
off64_t attribute_align_arg mpg123_framepos_64(mpg123_handle *mh) OFF64 attribute_align_arg mpg123_framepos_64(mpg123_handle *mh)
{ {
return mpg123_framepos64(mh); return mpg123_framepos64(mh);
} }
int attribute_align_arg mpg123_position_64( mpg123_handle *mh, off64_t INT123_frame_offset int attribute_align_arg mpg123_position_64( mpg123_handle *mh, OFF64 INT123_frame_offset
, off64_t buffered_bytes, off64_t *current_frame, off64_t *frames_left , OFF64 buffered_bytes, OFF64 *current_frame, OFF64 *frames_left
, double *current_seconds, double *seconds_left ) , double *current_seconds, double *seconds_left )
{ {
return mpg123_position64( mh, (int64_t)INT123_frame_offset, (int64_t)buffered_bytes return mpg123_position64( mh, (int64_t)INT123_frame_offset, (int64_t)buffered_bytes
, (int64_t*)current_frame, (int64_t*)frames_left, current_seconds, seconds_left ); , (int64_t*)current_frame, (int64_t*)frames_left, current_seconds, seconds_left );
} }
#undef OFF64
#endif #endif
/* ========================================= /* =========================================
@@ -769,7 +778,7 @@ int INT123_wrap_open(mpg123_handle *mh, void *handle, const char *path, int fd,
#ifdef O_BINARY #ifdef O_BINARY
flags |= O_BINARY; flags |= O_BINARY;
#endif #endif
#ifdef LFS_LARGEFILE_64 #if defined(LFS_LARGEFILE_64) && defined(HAVE_O_LARGEFILE)
flags |= O_LARGEFILE; flags |= O_LARGEFILE;
#endif #endif
errno = 0; errno = 0;
@@ -951,4 +960,16 @@ int attribute_align_arg mpg123_replace_reader_handle_64(mpg123_handle *mh, mpg12
return MPG123_OK; return MPG123_OK;
} }
#elif SIZEOF_OFF_T == 8
int attribute_align_arg mpg123_replace_reader_64(mpg123_handle *mh, mpg123_ssize_t (*r_read) (int, void *, size_t), off_t (*r_lseek)(int, off_t, int) )
{
return mpg123_replace_reader(mh, r_read, r_lseek);
}
int attribute_align_arg mpg123_replace_reader_handle_64(mpg123_handle *mh, mpg123_ssize_t (*r_read) (void*, void *, size_t), off_t (*r_lseek)(void*, off_t, int), void (*cleanup)(void*))
{
return mpg123_replace_reader_handle(mh, r_read, r_lseek, cleanup);
}
#endif #endif

View File

@@ -16,7 +16,7 @@
// only single spaces as separator to ease parsing by build scripts // only single spaces as separator to ease parsing by build scripts
#define MPG123_MAJOR 1 #define MPG123_MAJOR 1
#define MPG123_MINOR 32 #define MPG123_MINOR 32
#define MPG123_PATCH 1 #define MPG123_PATCH 2
// Don't get too wild with that to avoid confusing m4. No brackets. // Don't get too wild with that to avoid confusing m4. No brackets.
// Also, it should fit well into a sane file name for the tarball. // Also, it should fit well into a sane file name for the tarball.
#define MPG123_SUFFIX "" #define MPG123_SUFFIX ""