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
------
- Include man pages again in tarball and install. We cannot avoid the empty

24
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# 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>.
#
@@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='mpg123'
PACKAGE_TARNAME='mpg123'
PACKAGE_VERSION='1.32.1'
PACKAGE_STRING='mpg123 1.32.1'
PACKAGE_VERSION='1.32.2'
PACKAGE_STRING='mpg123 1.32.2'
PACKAGE_BUGREPORT='maintainer@mpg123.org'
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.
# This message is too long to be a string in the A/UX 3.1 sh.
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]...
@@ -1797,7 +1797,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of mpg123 1.32.1:";;
short | recursive ) echo "Configuration of mpg123 1.32.2:";;
esac
cat <<\_ACEOF
@@ -2074,7 +2074,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
mpg123 configure 1.32.1
mpg123 configure 1.32.2
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2619,7 +2619,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
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
$ $0$ac_configure_args_raw
@@ -3989,7 +3989,7 @@ fi
# Define the identity of the package.
PACKAGE='mpg123'
VERSION='1.32.1'
VERSION='1.32.2'
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
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_o_largefile" >&5
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
else
@@ -22648,7 +22648,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
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
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
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
mpg123 config.status 1.32.1
mpg123 config.status 1.32.2
configured by $0, generated by GNU Autoconf 2.71,
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])
AC_MSG_RESULT([$have_o_largefile])
if test x"$have_o_largefile" = xno; then
AC_DEFINE(O_LARGEFILE, 0, [ Define to 0 if system does not have/need it. ])
if test x"$have_o_largefile" = xyes; then
AC_DEFINE(HAVE_O_LARGEFILE, 1, [ Define if O_LARGEFILE flag for open(2) exists. ])
fi
else
use_largefile=no

View File

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

View File

@@ -1,19 +1,7 @@
DISCLAIMER: The contents of the ports directory are included for convenience,
but they usually contain files contributed by various people, not the core
mpg123 team. The stuff is not tested by us. In some cases, it's even
impossible to tell what is really inside. Use at your own risk (well, like
all Free Software, actually;-).
This directory used to contain some (contributed) works covering usage and/or
building of mpg123/libmpg123 from different programming environments. Since
they became too outdated, all but the CMake port were removed.
This directory contains some (contributed) works covering usage and/or building
of mpg123/libmpg123 from different programming environments. Note that those
may be a bit outdated (especially when a file is added/removed in libmpg123
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.
The CMake build is primarily intended for platforms not well-supported by the
primary autotools-based build. It is tested occasionally, had some tuning
over time, but may get out of sync regarding possible build configurations.

View File

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

View File

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

View File

@@ -10,4 +10,4 @@ set_target_properties(${TARGET}_dl PROPERTIES POSITION_INDEPENDENT_CODE ON)
add_library(${TARGET}_str OBJECT
"${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_SENSITIVE 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)
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/")
@@ -121,6 +124,9 @@ elseif(MACHINE STREQUAL "x86")
endif()
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)
set(PLATFORM_DEFINITIONS OPT_SSE)
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/synth_sse.S")
endif()
target_sources(${TARGET} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/libmpg123/dct64_i386.c")
endif()
elseif(MACHINE STREQUAL "arm64")
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. */
#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. */
#undef HAVE_RANDOM
@@ -425,9 +428,6 @@
/* Define to disable warning messages. */
#undef NO_WARNING
/* Define to 0 if system does not have/need it. */
#undef O_LARGEFILE
/* Name of package */
#undef PACKAGE

View File

@@ -496,8 +496,16 @@ int attribute_align_arg mpg123_position_32( mpg123_handle *mh, off_t INT123_fram
#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
#define OFF64 off64_t
#else
#define OFF64 off_t
#endif
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
int attribute_align_arg mpg123_position_64( mpg123_handle *mh, off64_t INT123_frame_offset
, off64_t buffered_bytes, off64_t *current_frame, off64_t *frames_left
int attribute_align_arg mpg123_position_64( mpg123_handle *mh, OFF64 INT123_frame_offset
, OFF64 buffered_bytes, OFF64 *current_frame, OFF64 *frames_left
, double *current_seconds, double *seconds_left )
{
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 );
}
#undef OFF64
#endif
/* =========================================
@@ -769,7 +778,7 @@ int INT123_wrap_open(mpg123_handle *mh, void *handle, const char *path, int fd,
#ifdef O_BINARY
flags |= O_BINARY;
#endif
#ifdef LFS_LARGEFILE_64
#if defined(LFS_LARGEFILE_64) && defined(HAVE_O_LARGEFILE)
flags |= O_LARGEFILE;
#endif
errno = 0;
@@ -951,4 +960,16 @@ int attribute_align_arg mpg123_replace_reader_handle_64(mpg123_handle *mh, mpg12
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

View File

@@ -16,7 +16,7 @@
// only single spaces as separator to ease parsing by build scripts
#define MPG123_MAJOR 1
#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.
// Also, it should fit well into a sane file name for the tarball.
#define MPG123_SUFFIX ""