mpg123: Import upstream release 1.32.5.
This commit is contained in:
parent
fa42210c49
commit
3881edf6f3
42 changed files with 252 additions and 268 deletions
2
configure
vendored
2
configure
vendored
|
@ -13572,7 +13572,7 @@ then :
|
|||
MPG123_PE_LIBS=mpg123
|
||||
if ${MPG123_PE_CFLAGS:+false} :
|
||||
then :
|
||||
MPG123_PE_CFLAGS="-I\$(top_srcdir)/libs/mpg123/src/libmpg123"
|
||||
MPG123_PE_CFLAGS="-I\$(top_srcdir)/libs/mpg123/src/include"
|
||||
else $as_nop
|
||||
enable_mpg123=no
|
||||
fi
|
||||
|
|
|
@ -1186,7 +1186,7 @@ WINE_EXTLIB_FLAGS(JPEG, jpeg, jpeg, "-I\$(top_srcdir)/libs/jpeg")
|
|||
WINE_EXTLIB_FLAGS(JXR, jxr, jxr, "-I\$(top_srcdir)/libs/jxr/jxrgluelib -I\$(top_srcdir)/libs/jxr/image/sys")
|
||||
WINE_EXTLIB_FLAGS(LCMS2, lcms2, lcms2, "-I\$(top_srcdir)/libs/lcms2/include")
|
||||
WINE_EXTLIB_FLAGS(LDAP, ldap, ldap, "-I\$(top_srcdir)/libs/ldap/include")
|
||||
WINE_EXTLIB_FLAGS(MPG123, mpg123, mpg123, "-I\$(top_srcdir)/libs/mpg123/src/libmpg123")
|
||||
WINE_EXTLIB_FLAGS(MPG123, mpg123, mpg123, "-I\$(top_srcdir)/libs/mpg123/src/include")
|
||||
WINE_EXTLIB_FLAGS(MUSL, musl, musl)
|
||||
WINE_EXTLIB_FLAGS(PNG, png, "png \$(ZLIB_PE_LIBS)", "-I\$(top_srcdir)/libs/png")
|
||||
WINE_EXTLIB_FLAGS(TIFF, tiff, "tiff \$(ZLIB_PE_LIBS)", "-I\$(top_srcdir)/libs/tiff/libtiff")
|
||||
|
|
|
@ -134,9 +134,6 @@
|
|||
/* Define to 1 if you have the `mx' library (-lmx). */
|
||||
/* #undef HAVE_LIBMX */
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define to 1 if you have the <linux/soundcard.h> header file. */
|
||||
/* #undef HAVE_LINUX_SOUNDCARD_H */
|
||||
|
||||
|
@ -439,7 +436,7 @@
|
|||
#define PACKAGE_NAME "mpg123"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "mpg123 1.32.2"
|
||||
#define PACKAGE_STRING "mpg123 1.32.5"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "mpg123"
|
||||
|
@ -448,7 +445,7 @@
|
|||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.32.2"
|
||||
#define PACKAGE_VERSION "1.32.5"
|
||||
|
||||
/* Define to only include portable library API (no off_t, no internal I/O). */
|
||||
/* #undef PORTABLE_API */
|
||||
|
@ -459,21 +456,9 @@
|
|||
/* Define for calculating tables at runtime. */
|
||||
/* #undef RUNTIME_TABLES */
|
||||
|
||||
/* The size of `int32_t', as computed by sizeof. */
|
||||
#define SIZEOF_INT32_T 4
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#define SIZEOF_LONG 4
|
||||
|
||||
/* The size of `off_t', as computed by sizeof. */
|
||||
#define SIZEOF_OFF_T 4
|
||||
|
||||
/* The size of `size_t', as computed by sizeof. */
|
||||
#define SIZEOF_SIZE_T 4
|
||||
|
||||
/* The size of `ssize_t', as computed by sizeof. */
|
||||
#define SIZEOF_SSIZE_T 4
|
||||
|
||||
/* Define to 1 if all of the C90 standard headers exist (not just the ones
|
||||
required in a freestanding environment). This macro is provided for
|
||||
backward compatibility; new code need not use it. */
|
||||
|
@ -492,7 +477,7 @@
|
|||
/* #undef USE_YASM_FOR_AVX */
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.32.2"
|
||||
#define VERSION "1.32.5"
|
||||
|
||||
/* Define to use Win32 named pipes */
|
||||
#define WANT_WIN32_FIFO 1
|
||||
|
@ -535,30 +520,3 @@
|
|||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `short' if <sys/types.h> does not define. */
|
||||
/* #undef int16_t */
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
/* #undef int32_t */
|
||||
|
||||
/* Define to `long long' if <sys/types.h> does not define. */
|
||||
/* #undef int64_t */
|
||||
|
||||
/* Define to `long' if <sys/types.h> does not define. */
|
||||
/* #undef ptrdiff_t */
|
||||
|
||||
/* Define to `unsigned long' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
|
||||
/* Define to `long' if <sys/types.h> does not define. */
|
||||
/* #undef ssize_t */
|
||||
|
||||
/* Define to `unsigned short' if <sys/types.h> does not define. */
|
||||
/* #undef uint16_t */
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef uint32_t */
|
||||
|
||||
/* Define to `unsigned long' if <sys/types.h> does not define. */
|
||||
/* #undef uintptr_t */
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
public domain (or LGPL / GPL, if you like that more;-)
|
||||
generated by debugdef.pl, what was
|
||||
trivially written by Thomas Orgis <thomas@orgis.org>
|
||||
|
||||
|
||||
You decide to define DEBUG or not and write debug("foo") or
|
||||
mdebug("foo: %s", message) and variants with more arguments and this
|
||||
is converted to an elaborate call to fprintf(stderr, ...) that prints your
|
||||
|
@ -45,7 +45,7 @@
|
|||
#ifndef NO_WARNING
|
||||
#define mwarning(s, ...) debug_print("warning", s, __VA_ARGS__)
|
||||
#else
|
||||
#define mwarning(s, ...)
|
||||
#define mwarning(s, ...)
|
||||
#endif
|
||||
#define warning(s) mwarning("%s", s)
|
||||
|
|
@ -94,7 +94,7 @@ static inline int16_t ftoi16(float x)
|
|||
|
||||
/* This is the old new mpg123 WRITE_SAMPLE, fixed for newer GCC by MPlayer folks.
|
||||
Makes a huge difference on old machines. */
|
||||
#if WORDS_BIGENDIAN
|
||||
#if WORDS_BIGENDIAN
|
||||
#define MANTISSA_OFFSET 1
|
||||
#else
|
||||
#define MANTISSA_OFFSET 0
|
||||
|
@ -124,10 +124,10 @@ static inline int16_t ftoi16(float x)
|
|||
else { *(samples) = REAL_TO_SHORT_ACCURATE(sum); }
|
||||
|
||||
/*
|
||||
32bit signed
|
||||
32bit signed
|
||||
We do clipping with the same old borders... but different conversion.
|
||||
We see here that we need extra work for non-16bit output... we optimized for 16bit.
|
||||
-0x7fffffff-1 is the minimum 32 bit signed integer value expressed so that MSVC
|
||||
-0x7fffffff-1 is the minimum 32 bit signed integer value expressed so that MSVC
|
||||
does not give a compile time warning.
|
||||
*/
|
||||
#define WRITE_S32_SAMPLE(samples,sum,clip) \
|
|
@ -39,7 +39,7 @@
|
|||
#include <shlwapi.h>
|
||||
#endif
|
||||
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
#ifndef WINDOWS_UWP
|
||||
|
||||
|
|
|
@ -21,10 +21,8 @@
|
|||
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
/* realloc, size_t */
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
|
@ -48,16 +46,10 @@
|
|||
#ifdef HAVE_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
#ifdef HAVE_INTTYPES_H
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
/* We want SIZE_MAX, etc. */
|
||||
#ifdef HAVE_LIMITS_H
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
#ifndef SIZE_MAX
|
||||
#define SIZE_MAX ((size_t)-1)
|
||||
|
@ -85,26 +77,11 @@
|
|||
#define INT32_MIN (-INT32_MAX - 1)
|
||||
#endif
|
||||
|
||||
#ifndef OFF_MAX
|
||||
#undef OFF_MIN
|
||||
#if SIZEOF_OFF_T == 4
|
||||
#define OFF_MAX INT32_MAX
|
||||
#define OFF_MIN INT32_MIN
|
||||
#elif SIZEOF_OFF_T == 8
|
||||
#define OFF_MAX INT64_MAX
|
||||
#define OFF_MIN INT64_MIN
|
||||
#else
|
||||
#error "Unexpected width of off_t."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Add two values (themselves assumed to be < limit), saturating to given limit.
|
||||
#define SATURATE_ADD(inout, add, limit) inout = (limit-add >= inout) ? inout+add : limit;
|
||||
#define SATURATE_SUB(inout, sub, limit) inout = (limit+sub >= inout) ? inout-sub : limit;
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#endif
|
||||
#ifdef HAVE_STRINGS_H
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
@ -150,29 +127,6 @@ const char *INT123_strerror(int errnum);
|
|||
and returns NULL on NULL input instead of crashing. */
|
||||
char* INT123_compat_strdup(const char *s);
|
||||
|
||||
/* If we have the size checks enabled, try to derive some sane printfs.
|
||||
Simple start: Use max integer type and format if long is not big enough.
|
||||
I am hesitating to use %ll without making sure that it's there... */
|
||||
#if (defined SIZEOF_OFF_T) && (SIZEOF_OFF_T > SIZEOF_LONG) && (defined PRIiMAX)
|
||||
# define OFF_P PRIiMAX
|
||||
typedef intmax_t off_p;
|
||||
#else
|
||||
# define OFF_P "li"
|
||||
typedef long off_p;
|
||||
#endif
|
||||
|
||||
#if (defined SIZEOF_SIZE_T) && (SIZEOF_SIZE_T > SIZEOF_LONG) && (defined PRIuMAX) && (defined PRIiMAX)
|
||||
# define SIZE_P PRIuMAX
|
||||
typedef uintmax_t size_p;
|
||||
# define SSIZE_P PRIiMAX
|
||||
typedef intmax_t ssize_p;
|
||||
#else
|
||||
# define SIZE_P "lu"
|
||||
typedef unsigned long size_p;
|
||||
# define SSIZE_P "ld"
|
||||
typedef long ssize_p;
|
||||
#endif
|
||||
|
||||
/* Get an environment variable, possibly converted to UTF-8 from wide string.
|
||||
The return value is a copy that you shall free. */
|
||||
char *INT123_compat_getenv(const char* name);
|
||||
|
@ -200,7 +154,6 @@ FILE* INT123_compat_fdopen(int fd, const char *mode);
|
|||
int INT123_compat_close(int infd);
|
||||
int INT123_compat_fclose(FILE* stream);
|
||||
|
||||
|
||||
/**
|
||||
* Setting binary mode on a descriptor, where necessary.
|
||||
* We do not bother with errors. This has to work.
|
||||
|
@ -326,10 +279,15 @@ size_t INT123_unintr_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *st
|
|||
#define normal mpg123_normal
|
||||
#endif
|
||||
|
||||
#include "true.h"
|
||||
#include "../common/true.h"
|
||||
|
||||
#if (!defined(WIN32) || defined (__CYGWIN__)) && defined(HAVE_SIGNAL_H)
|
||||
void (*INT123_catchsignal(int signum, void(*handler)(int)))(int);
|
||||
#endif
|
||||
|
||||
// Some ancient toolchains miss the documented errno value.
|
||||
#if defined(_WIN32) && !defined(EOVERFLOW)
|
||||
#define EOVERFLOW 132
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
/* A safe realloc also for very old systems where realloc(NULL, size) returns NULL. */
|
||||
void *INT123_safe_realloc(void *ptr, size_t size)
|
||||
|
|
|
@ -47,13 +47,13 @@ enum mpg123_enc_enum
|
|||
/* 0000 0000 0100 0000 Some 16 bit integer encoding. */
|
||||
, MPG123_ENC_16 = 0x040
|
||||
/* 0100 0000 0000 0000 Some 24 bit integer encoding. */
|
||||
, MPG123_ENC_24 = 0x4000
|
||||
, MPG123_ENC_24 = 0x4000
|
||||
/* 0000 0001 0000 0000 Some 32 bit integer encoding. */
|
||||
, MPG123_ENC_32 = 0x100
|
||||
, MPG123_ENC_32 = 0x100
|
||||
/* 0000 0000 1000 0000 Some signed integer encoding. */
|
||||
, MPG123_ENC_SIGNED = 0x080
|
||||
, MPG123_ENC_SIGNED = 0x080
|
||||
/* 0000 1110 0000 0000 Some float encoding. */
|
||||
, MPG123_ENC_FLOAT = 0xe00
|
||||
, MPG123_ENC_FLOAT = 0xe00
|
||||
/* 0000 0000 1101 0000 signed 16 bit */
|
||||
, MPG123_ENC_SIGNED_16 = (MPG123_ENC_16|MPG123_ENC_SIGNED|0x10)
|
||||
/* 0000 0000 0110 0000 unsigned 16 bit */
|
||||
|
@ -156,4 +156,3 @@ struct mpg123_fmt
|
|||
/** @} */
|
||||
|
||||
#endif
|
||||
|
|
@ -19,15 +19,15 @@
|
|||
*/
|
||||
#define MPG123_API_VERSION 48
|
||||
/** library patch level at client build time */
|
||||
#define MPG123_PATCHLEVEL 0
|
||||
#define MPG123_PATCHLEVEL 2
|
||||
|
||||
#ifndef MPG123_EXPORT
|
||||
/** Defines needed for MS Visual Studio(tm) DLL builds.
|
||||
* Every public function must be prefixed with MPG123_EXPORT. When building
|
||||
* Every public function must be prefixed with MPG123_EXPORT. When building
|
||||
* the DLL ensure to define BUILD_MPG123_DLL. This makes the function accessible
|
||||
* for clients and includes it in the import library which is created together
|
||||
* with the DLL. When consuming the DLL ensure to define LINK_MPG123_DLL which
|
||||
* imports the functions from the DLL.
|
||||
* imports the functions from the DLL.
|
||||
*/
|
||||
#ifdef BUILD_MPG123_DLL
|
||||
/* The dll exports. */
|
||||
|
@ -233,7 +233,7 @@ enum mpg123_parms
|
|||
MPG123_RVA, /**< one of the RVA choices above (integer) */
|
||||
MPG123_DOWNSPEED, /**< play a frame N times (integer) */
|
||||
MPG123_UPSPEED, /**< play every Nth frame (integer) */
|
||||
MPG123_START_FRAME, /**< start with this frame (skip frames before that, integer) */
|
||||
MPG123_START_FRAME, /**< start with this frame (skip frames before that, integer) */
|
||||
MPG123_DECODE_FRAMES, /**< decode only this number of frames (integer) */
|
||||
MPG123_ICY_INTERVAL, /**< Stream contains ICY metadata with this interval (integer).
|
||||
Make sure to set this _before_ opening a stream.*/
|
||||
|
@ -582,7 +582,7 @@ MPG123_EXPORT const char* mpg123_current_decoder(mpg123_handle *mh);
|
|||
/** @} */
|
||||
|
||||
|
||||
/** \defgroup mpg123_output mpg123 output audio format
|
||||
/** \defgroup mpg123_output mpg123 output audio format
|
||||
*
|
||||
* Functions to get and select the format of the decoded audio.
|
||||
*
|
||||
|
@ -631,14 +631,14 @@ MPG123_EXPORT void mpg123_encodings(const int **list, size_t *number);
|
|||
* \return positive size of encoding in bytes, 0 on invalid encoding. */
|
||||
MPG123_EXPORT int mpg123_encsize(int encoding);
|
||||
|
||||
/** Configure a mpg123 handle to accept no output format at all,
|
||||
/** Configure a mpg123 handle to accept no output format at all,
|
||||
* use before specifying supported formats with mpg123_format
|
||||
* \param mh handle
|
||||
* \return MPG123_OK on success
|
||||
*/
|
||||
MPG123_EXPORT int mpg123_format_none(mpg123_handle *mh);
|
||||
|
||||
/** Configure mpg123 handle to accept all formats
|
||||
/** Configure mpg123 handle to accept all formats
|
||||
* (also any custom rate you may set) -- this is default.
|
||||
* \param mh handle
|
||||
* \return MPG123_OK on success
|
||||
|
@ -667,12 +667,12 @@ MPG123_EXPORT int mpg123_format( mpg123_handle *mh
|
|||
MPG123_EXPORT int mpg123_format2( mpg123_handle *mh
|
||||
, long rate, int channels, int encodings );
|
||||
|
||||
/** Check to see if a specific format at a specific rate is supported
|
||||
/** Check to see if a specific format at a specific rate is supported
|
||||
* by mpg123_handle.
|
||||
* \param mh handle
|
||||
* \param rate sampling rate
|
||||
* \param encoding encoding
|
||||
* \return 0 for no support (that includes invalid parameters), MPG123_STEREO,
|
||||
* \return 0 for no support (that includes invalid parameters), MPG123_STEREO,
|
||||
* MPG123_MONO or MPG123_STEREO|MPG123_MONO. */
|
||||
MPG123_EXPORT int mpg123_format_support( mpg123_handle *mh
|
||||
, long rate, int encoding );
|
||||
|
@ -837,10 +837,10 @@ MPG123_EXPORT int mpg123_read(mpg123_handle *mh
|
|||
MPG123_EXPORT int mpg123_feed( mpg123_handle *mh
|
||||
, const unsigned char *in, size_t size );
|
||||
|
||||
/** Decode MPEG Audio from inmemory to outmemory.
|
||||
/** Decode MPEG Audio from inmemory to outmemory.
|
||||
* This is very close to a drop-in replacement for old mpglib.
|
||||
* When you give zero-sized output buffer the input will be parsed until
|
||||
* decoded data is available. This enables you to get MPG123_NEW_FORMAT (and query it)
|
||||
* When you give zero-sized output buffer the input will be parsed until
|
||||
* decoded data is available. This enables you to get MPG123_NEW_FORMAT (and query it)
|
||||
* without taking decoded data.
|
||||
* Think of this function being the union of mpg123_read() and mpg123_feed() (which it actually is, sort of;-).
|
||||
* You can actually always decide if you want those specialized functions in separate steps or one call this one here.
|
||||
|
@ -973,7 +973,7 @@ MPG123_EXPORT int64_t mpg123_framepos64(mpg123_handle *mh);
|
|||
* just use the position defined for the samples you get out of the decoder;-)
|
||||
* The general usage is modelled after stdlib's ftell() and fseek().
|
||||
* Especially, the whence parameter for the seek functions has the same meaning
|
||||
* as the one for fseek() and needs the same constants from stdlib.h:
|
||||
* as the one for fseek() and needs the same constants from stdlib.h:
|
||||
*
|
||||
* - SEEK_SET: set position to (or near to) specified offset
|
||||
* - SEEK_CUR: change position by offset from now
|
||||
|
@ -1084,7 +1084,7 @@ MPG123_EXPORT int64_t mpg123_seek64( mpg123_handle *mh
|
|||
* \param whence one of SEEK_SET, SEEK_CUR or SEEK_END
|
||||
* (Offset for SEEK_END is always effectively negative since API
|
||||
* version 48, was inverted from lseek() usage since ever before.)
|
||||
* \param input_offset The position it expects to be at the
|
||||
* \param input_offset The position it expects to be at the
|
||||
* next time data is fed to mpg123_decode().
|
||||
* \return The resulting offset >= 0 or error/message code
|
||||
*/
|
||||
|
@ -1310,7 +1310,7 @@ MPG123_EXPORT double mpg123_geteq2(mpg123_handle *mh, int channel, int band);
|
|||
*/
|
||||
MPG123_EXPORT int mpg123_reset_eq(mpg123_handle *mh);
|
||||
|
||||
/** Set the absolute output volume including the RVA setting,
|
||||
/** Set the absolute output volume including the RVA setting,
|
||||
* vol<0 just applies (a possibly changed) RVA setting.
|
||||
* \param mh handle
|
||||
* \param vol volume value (linear factor)
|
||||
|
@ -1327,14 +1327,14 @@ MPG123_EXPORT int mpg123_volume_change(mpg123_handle *mh, double change);
|
|||
|
||||
/** Adjust output volume including the RVA setting by chosen amount
|
||||
* \param mh handle
|
||||
* \param change volume adjustment in decibels (limited to +/- 60 dB)
|
||||
* \param db volume adjustment in decibels (limited to +/- 60 dB)
|
||||
* \return MPG123_OK on success
|
||||
*/
|
||||
MPG123_EXPORT int mpg123_volume_change_db(mpg123_handle *mh, double db);
|
||||
|
||||
/** Return current volume setting, the actual value due to RVA, and the RVA
|
||||
* adjustment itself. It's all as double float value to abstract the sample
|
||||
* format. The volume values are linear factors / amplitudes (not percent)
|
||||
/** Return current volume setting, the actual value due to RVA, and the RVA
|
||||
* adjustment itself. It's all as double float value to abstract the sample
|
||||
* format. The volume values are linear factors / amplitudes (not percent)
|
||||
* and the RVA value is in decibels.
|
||||
* \param mh handle
|
||||
* \param base return address for base volume (linear factor)
|
||||
|
@ -1629,7 +1629,7 @@ MPG123_EXPORT int mpg123_getstate2( mpg123_handle *mh
|
|||
|
||||
/** Data structure for storing strings in a safer way than a standard C-String.
|
||||
* Can also hold a number of null-terminated strings. */
|
||||
typedef struct
|
||||
typedef struct
|
||||
{
|
||||
char* p; /**< pointer to the string data */
|
||||
size_t size; /**< raw number of bytes allocated */
|
||||
|
@ -2003,10 +2003,10 @@ MPG123_EXPORT char* mpg123_icy2utf8(const char* icy_text);
|
|||
* - Influence behaviour of library _during_ initialization of handle (MPG123_VERBOSE).
|
||||
* - Use one set of parameters for multiple handles.
|
||||
*
|
||||
* The functions for handling mpg123_pars (mpg123_par() and mpg123_fmt()
|
||||
* family) directly return a fully qualified mpg123 error code, the ones
|
||||
* operating on full handles normally MPG123_OK or MPG123_ERR, storing the
|
||||
* specific error code itseld inside the handle.
|
||||
* The functions for handling mpg123_pars (mpg123_par() and mpg123_fmt()
|
||||
* family) directly return a fully qualified mpg123 error code, the ones
|
||||
* operating on full handles normally MPG123_OK or MPG123_ERR, storing the
|
||||
* specific error code itseld inside the handle.
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
@ -2037,15 +2037,15 @@ MPG123_EXPORT mpg123_pars *mpg123_new_pars(int *error);
|
|||
*/
|
||||
MPG123_EXPORT void mpg123_delete_pars(mpg123_pars* mp);
|
||||
|
||||
/** Configure mpg123 parameters to accept no output format at all,
|
||||
/** Configure mpg123 parameters to accept no output format at all,
|
||||
* use before specifying supported formats with mpg123_format
|
||||
* \param mp parameter handle
|
||||
* \return MPG123_OK on success
|
||||
*/
|
||||
MPG123_EXPORT int mpg123_fmt_none(mpg123_pars *mp);
|
||||
|
||||
/** Configure mpg123 parameters to accept all formats
|
||||
* (also any custom rate you may set) -- this is default.
|
||||
/** Configure mpg123 parameters to accept all formats
|
||||
* (also any custom rate you may set) -- this is default.
|
||||
* \param mp parameter handle
|
||||
* \return MPG123_OK on success
|
||||
*/
|
||||
|
@ -2081,7 +2081,7 @@ MPG123_EXPORT int mpg123_fmt2(mpg123_pars *mp
|
|||
* \param mp parameter handle
|
||||
* \param rate sampling rate
|
||||
* \param encoding encoding
|
||||
* \return 0 for no support (that includes invalid parameters), MPG123_STEREO,
|
||||
* \return 0 for no support (that includes invalid parameters), MPG123_STEREO,
|
||||
* MPG123_MONO or MPG123_STEREO|MPG123_MONO. */
|
||||
MPG123_EXPORT int mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding);
|
||||
|
||||
|
@ -2179,7 +2179,7 @@ MPG123_EXPORT size_t mpg123_outblock(mpg123_handle *mh);
|
|||
|
||||
#ifndef MPG123_PORTABLE_API
|
||||
/** Replace low-level stream access functions; read and lseek as known in POSIX.
|
||||
* You can use this to make any fancy file opening/closing yourself,
|
||||
* You can use this to make any fancy file opening/closing yourself,
|
||||
* using mpg123_open_fd() to set the file descriptor for your read/lseek
|
||||
* (doesn't need to be a "real" file descriptor...).
|
||||
* Setting a function to NULL means that just a call to POSIX read/lseek is
|
|
@ -203,16 +203,6 @@ void INT123_dct64_i386 (real *,real *,real *);
|
|||
void INT123_dct64_altivec(real *,real *,real *);
|
||||
void INT123_dct64_i486(int*, int* , real*); /* Yeah, of no use outside of synth_i486.c .*/
|
||||
|
||||
/* This is used by the layer 3 decoder, one generic function and 3DNow variants. */
|
||||
void INT123_dct36 (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_3dnow (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_3dnowext(real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_x86_64 (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_sse (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_avx (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_neon (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_neon64 (real *,real *,real *,const real *,real *);
|
||||
|
||||
/* Tools for NtoM resampling synth, defined in ntom.c . */
|
||||
int INT123_synth_ntom_set_step(mpg123_handle *fr); /* prepare ntom decoding */
|
||||
unsigned long INT123_ntom_val(mpg123_handle *fr, int64_t frame); /* compute INT123_ntom_val for frame offset */
|
||||
|
@ -232,6 +222,13 @@ int64_t INT123_ntom_frameoff(mpg123_handle *fr, int64_t soff);
|
|||
/* Initialization of any static data that majy be needed at runtime.
|
||||
Make sure you call these once before it is too late. */
|
||||
#ifndef NO_LAYER3
|
||||
|
||||
#ifdef OPT_THE_DCT36
|
||||
// Set the current dct36 function choice. The pointers themselves are to static functions.
|
||||
void INT123_dct36_choose(mpg123_handle *fr);
|
||||
int INT123_dct36_match(mpg123_handle *fr, enum optdec t);
|
||||
#endif
|
||||
|
||||
#ifdef RUNTIME_TABLES
|
||||
void INT123_init_layer3(void);
|
||||
#endif
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "compat.h"
|
||||
#include "../compat/compat.h"
|
||||
#include "dither.h"
|
||||
|
||||
static const uint32_t init_seed = 2463534242UL;
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
*/
|
||||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "sample.h"
|
||||
#include "debug.h"
|
||||
#include "../common/sample.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
/* static int chans[NUM_CHANNELS] = { 1 , 2 }; */
|
||||
static const long my_rates[MPG123_RATES] = /* only the standard rates */
|
||||
|
@ -686,7 +686,7 @@ static void conv_s16_to_s32(struct outbuffer *buf)
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#include "swap_bytes_impl.h"
|
||||
#include "../common/swap_bytes_impl.h"
|
||||
|
||||
void swap_endian(struct outbuffer *buf, int block)
|
||||
{
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#define WANT_GETCPUFLAGS
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "getcpuflags.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
static void frame_fixed_reset(mpg123_handle *fr);
|
||||
|
||||
|
@ -193,13 +193,12 @@ int INT123_frame_outbuffer(mpg123_handle *fr)
|
|||
{
|
||||
fr->err = MPG123_BAD_BUFFER;
|
||||
if(NOQUIET)
|
||||
merror( "have external buffer of size %"SIZE_P", need %"SIZE_P
|
||||
, (size_p)fr->buffer.size, (size_p)size );
|
||||
merror("have external buffer of size %zu, need %zu", fr->buffer.size, size);
|
||||
return MPG123_ERR;
|
||||
}
|
||||
}
|
||||
|
||||
debug1("need frame buffer of %"SIZE_P, (size_p)size);
|
||||
debug1("need frame buffer of %zu", size);
|
||||
if(fr->buffer.rdata != NULL && fr->buffer.size != size)
|
||||
{
|
||||
free(fr->buffer.rdata);
|
||||
|
@ -222,7 +221,7 @@ int INT123_frame_outbuffer(mpg123_handle *fr)
|
|||
|
||||
int attribute_align_arg mpg123_replace_buffer(mpg123_handle *mh, void *data, size_t size)
|
||||
{
|
||||
debug2("replace buffer with %p size %"SIZE_P, data, (size_p)size);
|
||||
debug2("replace buffer with %p size %zu", data, size);
|
||||
if(mh == NULL) return MPG123_BAD_HANDLE;
|
||||
/* Will accept any size, the error comes later... */
|
||||
if(data == NULL)
|
||||
|
|
|
@ -167,11 +167,9 @@ struct mpg123_handle_struct
|
|||
{
|
||||
#ifdef OPT_MULTI
|
||||
|
||||
#ifndef NO_LAYER3
|
||||
#if (defined OPT_3DNOW_VINTAGE || defined OPT_3DNOWEXT_VINTAGE || defined OPT_SSE || defined OPT_X86_64 || defined OPT_AVX || defined OPT_NEON || defined OPT_NEON64)
|
||||
#ifdef OPT_THE_DCT36
|
||||
void (*the_dct36)(real *,real *,real *,const real *,real *);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
enum optdec type;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
This is no stand-alone header, precisely to be able to fool it into using fake handle types for testing the math.
|
||||
*/
|
||||
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
#ifdef GAPLESS
|
||||
/* From internal sample number to external. */
|
||||
|
@ -81,8 +81,8 @@ static void frame_buffercheck(mpg123_handle *fr)
|
|||
}
|
||||
if(VERBOSE3)
|
||||
fprintf(stderr, "\nNote: Cut frame %" PRIi64 " buffer on end of stream to %"
|
||||
PRIi64 " samples, fill now %"SIZE_P" bytes.\n"
|
||||
, fr->num, (fr->num == fr->lastframe ? fr->lastoff : 0), (size_p)fr->buffer.fill);
|
||||
PRIi64 " samples, fill now %zu bytes.\n"
|
||||
, fr->num, (fr->num == fr->lastframe ? fr->lastoff : 0), fr->buffer.fill);
|
||||
}
|
||||
|
||||
/* The first interesting frame: Skip some leading samples. */
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#define _MPG123_GETBITS_H_
|
||||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
#define backbits(fr,nob) ((void)( \
|
||||
fr->bits_avail += nob, \
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
#ifndef NO_ICY
|
||||
|
||||
#include "compat.h"
|
||||
#include "../compat/compat.h"
|
||||
#include "mpg123.h"
|
||||
|
||||
struct icy_meta
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
#include "config.h"
|
||||
/* Includes string and stdlib headers... */
|
||||
#include "compat.h"
|
||||
#include "../compat/compat.h"
|
||||
|
||||
/* ThOr: too lazy for this type check; also we use char/short all around anyway.
|
||||
Of cource, it would be the proper way to use _these_ kind of types all around. */
|
||||
|
|
|
@ -85,7 +85,7 @@
|
|||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "id3.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
#ifndef NO_ID3V2 /* Only the main parsing routine will always be there. */
|
||||
|
||||
|
@ -352,7 +352,7 @@ static void store_id3_text(mpg123_string *sb, unsigned char *source, size_t sour
|
|||
}
|
||||
memcpy(sb->p, source, source_size);
|
||||
sb->fill = source_size;
|
||||
debug1("stored undecoded ID3 text of size %"SIZE_P, (size_p)source_size);
|
||||
debug1("stored undecoded ID3 text of size %zu", source_size);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -567,7 +567,7 @@ static void process_comment(mpg123_handle *fr, enum frame_types tt, unsigned cha
|
|||
|
||||
if(realsize < (size_t)(descr-realdata))
|
||||
{
|
||||
if(NOQUIET) error1("Invalid frame size of %"SIZE_P" (too small for anything).", (size_p)realsize);
|
||||
if(NOQUIET) error1("Invalid frame size of %zu (too small for anything).", realsize);
|
||||
return;
|
||||
}
|
||||
if(encoding > mpg123_id3_enc_max)
|
||||
|
@ -622,8 +622,8 @@ static void process_comment(mpg123_handle *fr, enum frame_types tt, unsigned cha
|
|||
|
||||
if(VERBOSE4) /* Do _not_ print the verbatim text: The encoding might be funny! */
|
||||
{
|
||||
fprintf(stderr, "Note: ID3 comm/uslt desc of length %"SIZE_P".\n", (size_p)xcom->description.fill);
|
||||
fprintf(stderr, "Note: ID3 comm/uslt text of length %"SIZE_P".\n", (size_p)xcom->text.fill);
|
||||
fprintf(stderr, "Note: ID3 comm/uslt desc of length %zu.\n", xcom->description.fill);
|
||||
fprintf(stderr, "Note: ID3 comm/uslt text of length %zu.\n", xcom->text.fill);
|
||||
}
|
||||
/* Look out for RVA info only when we really deal with a straight comment. */
|
||||
if(tt == comment && localcom.description.fill > 0)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
*/
|
||||
|
||||
#include "index.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
/* The next expected frame offset, one step ahead. */
|
||||
static int64_t fi_next(struct frame_index *fi)
|
||||
|
@ -124,7 +124,7 @@ int INT123_fi_set(struct frame_index *fi, int64_t *offsets, int64_t step, size_t
|
|||
|
||||
void INT123_fi_reset(struct frame_index *fi)
|
||||
{
|
||||
debug1("reset with size %"SIZE_P, (size_p)fi->size);
|
||||
debug1("reset with size %zu", fi->size);
|
||||
fi->fill = 0;
|
||||
fi->step = 1;
|
||||
fi->next = fi_next(fi);
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "compat.h"
|
||||
#include "../compat/compat.h"
|
||||
|
||||
struct frame_index
|
||||
{
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "getbits.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
/*
|
||||
Allocation value is not allowed to be 15. Initially, libmad showed me the
|
||||
|
|
|
@ -21,9 +21,17 @@
|
|||
#include "huffman.h"
|
||||
#endif
|
||||
#include "getbits.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
|
||||
/* Predeclare the assembly routines, only called from wrappers here. */
|
||||
void INT123_dct36_3dnow (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_3dnowext(real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_x86_64 (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_sse (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_avx (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_neon (real *,real *,real *,const real *,real *);
|
||||
void INT123_dct36_neon64 (real *,real *,real *,const real *,real *);
|
||||
|
||||
/* define CUT_SFB21 if you want to cut-off the frequency above 16kHz */
|
||||
#if 0
|
||||
|
@ -1256,10 +1264,7 @@ static void III_antialias(real xr[SBLIMIT][SSLIMIT],struct gr_info_s *gr_info)
|
|||
Mathematics of Computation, Volume 32, Number 141, January 1978,
|
||||
Pages 175-199
|
||||
*/
|
||||
|
||||
/* Calculation of the inverse MDCT
|
||||
used to be static without 3dnow - does that really matter? */
|
||||
void INT123_dct36(real *inbuf,real *o1,real *o2,const real *wintab,real *tsbuf)
|
||||
static void INT123_dct36(real *inbuf,real *o1,real *o2,const real *wintab,real *tsbuf)
|
||||
{
|
||||
real tmp[18];
|
||||
|
||||
|
@ -1449,6 +1454,105 @@ void INT123_dct36(real *inbuf,real *o1,real *o2,const real *wintab,real *tsbuf)
|
|||
}
|
||||
}
|
||||
|
||||
// Wrap the assembly routine calls into C functions that serve as jump target to satisfy
|
||||
// indirect branch protection if the toolchain enables that. Otherwise, we'd need to anticipate
|
||||
// that in the assembly (and ensure assemblers support endbr64 and friends).
|
||||
// Loss of efficiency:
|
||||
|
||||
// In the case of one static optimization choice, we do not have that problem.
|
||||
|
||||
#ifdef OPT_THE_DCT36
|
||||
|
||||
#define DCT36_WRAP(asmfunc) \
|
||||
static void asmfunc ## _wrap(real *inbuf,real *o1,real *o2,const real *wintab,real *tsbuf) \
|
||||
{ \
|
||||
asmfunc(inbuf, o1, o2, wintab, tsbuf); \
|
||||
}
|
||||
|
||||
#ifdef OPT_SSE
|
||||
DCT36_WRAP(INT123_dct36_sse)
|
||||
#endif
|
||||
#ifdef OPT_3DNOWEXT_VINTAGE
|
||||
DCT36_WRAP(INT123_dct36_3dnowext)
|
||||
#endif
|
||||
#ifdef OPT_3DNOW_VINTAGE
|
||||
DCT36_WRAP(INT123_dct36_3dnow)
|
||||
#endif
|
||||
#ifdef OPT_X86_64
|
||||
DCT36_WRAP(INT123_dct36_x86_64)
|
||||
#endif
|
||||
#ifdef OPT_AVX
|
||||
DCT36_WRAP(INT123_dct36_avx)
|
||||
#endif
|
||||
#ifdef OPT_NEON
|
||||
DCT36_WRAP(INT123_dct36_neon)
|
||||
#endif
|
||||
#ifdef OPT_NEON64
|
||||
DCT36_WRAP(INT123_dct36_neon64)
|
||||
#endif
|
||||
|
||||
int INT123_dct36_match(mpg123_handle *fr, enum optdec t)
|
||||
{
|
||||
#ifdef OPT_SSE
|
||||
if(t == sse && fr->cpu_opts.the_dct36 == INT123_dct36_sse_wrap)
|
||||
return 1;
|
||||
#endif
|
||||
#ifdef OPT_3DNOWEXT_VINTAGE
|
||||
if(t == dreidnowext_vintage && fr->cpu_opts.the_dct36 == INT123_dct36_3dnowext_wrap)
|
||||
return 1;
|
||||
#endif
|
||||
#ifdef OPT_3DNOW_VINTAGE
|
||||
if(t == dreidnow_vintage && fr->cpu_opts.the_dct36 == INT123_dct36_3dnow_wrap)
|
||||
return 1;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
void INT123_dct36_choose(mpg123_handle *fr)
|
||||
{
|
||||
switch(fr->cpu_opts.type)
|
||||
{
|
||||
#ifdef OPT_SSE
|
||||
case sse:
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_sse_wrap;
|
||||
break;
|
||||
#endif
|
||||
#ifdef OPT_3DNOWEXT_VINTAGE
|
||||
case dreidnowext_vintage:
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_3dnowext_wrap;
|
||||
break;
|
||||
#endif
|
||||
#ifdef OPT_3DNOW_VINTAGE
|
||||
case dreidnow_vintage:
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_3dnow_wrap;
|
||||
break;
|
||||
#endif
|
||||
#ifdef OPT_AVX
|
||||
case avx:
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_avx_wrap;
|
||||
break;
|
||||
#endif
|
||||
#ifdef OPT_X86_64
|
||||
case x86_64:
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_x86_64_wrap;
|
||||
break;
|
||||
#endif
|
||||
#ifdef OPT_NEON
|
||||
case neon:
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_neon_wrap;
|
||||
break;
|
||||
#endif
|
||||
#ifdef OPT_NEON64
|
||||
case neon:
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_neon64_wrap;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* new DCT12 */
|
||||
static void dct12(real *in,real *rawout1,real *rawout2,register const real *wi,register real *ts)
|
||||
|
|
|
@ -32,19 +32,35 @@
|
|||
#endif
|
||||
|
||||
// For correct MPG123_EXPORT.
|
||||
#include "abi_align.h"
|
||||
#include "../common/abi_align.h"
|
||||
|
||||
// Need the full header with non-portable API, for the bare mpg123_open*()
|
||||
// declarations. But no renaming shenanigans.
|
||||
#include "mpg123.h"
|
||||
|
||||
#include "lfs_wrap.h"
|
||||
#include "abi_align.h"
|
||||
#include "compat.h"
|
||||
#include "../common/abi_align.h"
|
||||
#include "../compat/compat.h"
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "debug.h"
|
||||
#ifndef OFF_MAX
|
||||
#undef OFF_MIN
|
||||
#if SIZEOF_OFF_T == 4
|
||||
#define OFF_MAX INT32_MAX
|
||||
#define OFF_MIN INT32_MIN
|
||||
#elif SIZEOF_OFF_T == 8
|
||||
#define OFF_MAX INT64_MAX
|
||||
#define OFF_MIN INT64_MIN
|
||||
#else
|
||||
#error "Unexpected width of off_t."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// A paranoid check that someone did not define a wrong SIZEOF_OFF_T at configure time.
|
||||
typedef unsigned char MPG123_STATIC_ASSERT[(SIZEOF_OFF_T == sizeof(off_t)) ? 1 : -1];
|
||||
|
||||
#include "../common/debug.h"
|
||||
|
||||
// We do not want to expose this publicly, but it is cleaner to have it also defined
|
||||
// as portable API to offer the legacy function wrapper over. It's an undocumented
|
||||
|
@ -90,7 +106,7 @@ struct wrap_data
|
|||
off_t (*r_lseek)(int, off_t, int);
|
||||
mpg123_ssize_t (*r_h_read)(void *, void *, size_t);
|
||||
off_t (*r_h_lseek)(void*, off_t, int);
|
||||
#if LFS_LARGEFILE_64
|
||||
#ifdef LFS_LARGEFILE_64
|
||||
mpg123_ssize_t (*r_read_64) (int, void *, size_t);
|
||||
off64_t (*r_lseek_64)(int, off64_t, int);
|
||||
mpg123_ssize_t (*r_h_read_64)(void *, void *, size_t);
|
||||
|
@ -175,7 +191,7 @@ static struct wrap_data* wrap_get(mpg123_handle *mh, int force_alloc)
|
|||
whd->r_lseek = NULL;
|
||||
whd->r_h_read = NULL;
|
||||
whd->r_h_lseek = NULL;
|
||||
#if LFS_LARGEFILE_64
|
||||
#ifdef LFS_LARGEFILE_64
|
||||
whd->r_read_64 = NULL;
|
||||
whd->r_lseek_64 = NULL;
|
||||
whd->r_h_read_64 = NULL;
|
||||
|
|
|
@ -7,19 +7,19 @@
|
|||
*/
|
||||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "version.h"
|
||||
#include "../version.h"
|
||||
#include "icy2utf8.h"
|
||||
|
||||
#include "gapless.h"
|
||||
/* Want accurate rounding function regardless of decoder setup. */
|
||||
#define FORCE_ACCURATE
|
||||
#include "sample.h"
|
||||
#include "../common/sample.h"
|
||||
#include "parse.h"
|
||||
#ifndef PORTABLE_API
|
||||
#include "lfs_wrap.h"
|
||||
#endif
|
||||
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
#define SEEKFRAME(mh) ((mh)->ignoreframe < 0 ? 0 : (mh)->ignoreframe)
|
||||
|
||||
|
@ -648,9 +648,10 @@ int attribute_align_arg mpg123_open_handle(mpg123_handle *mh, void *iohandle)
|
|||
#ifndef PORTABLE_API
|
||||
ret = INT123_wrap_open( mh, iohandle, NULL, -1
|
||||
, mh->p.timeout, mh->p.flags & MPG123_QUIET );
|
||||
iohandle = ret == LFS_WRAP_NONE ? iohandle : mh->wrapperdata;
|
||||
if(ret >= 0)
|
||||
#endif
|
||||
ret = INT123_open_stream_handle(mh, ret == LFS_WRAP_NONE ? iohandle : mh->wrapperdata);
|
||||
ret = INT123_open_stream_handle(mh, iohandle);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -911,7 +912,8 @@ static void decode_the_frame(mpg123_handle *fr)
|
|||
if(fr->buffer.fill < needed_bytes)
|
||||
{
|
||||
if(VERBOSE2)
|
||||
fprintf(stderr, "Note: broken frame %li, filling up with %"SIZE_P" zeroes, from %"SIZE_P"\n", (long)fr->num, (size_p)(needed_bytes-fr->buffer.fill), (size_p)fr->buffer.fill);
|
||||
fprintf( stderr, "Note: broken frame %li, filling up with %zu zeroes, from %zu\n"
|
||||
, (long)fr->num, (needed_bytes-fr->buffer.fill), fr->buffer.fill );
|
||||
|
||||
/*
|
||||
One could do a loop with individual samples instead... but zero is zero
|
||||
|
@ -931,7 +933,7 @@ static void decode_the_frame(mpg123_handle *fr)
|
|||
else
|
||||
{
|
||||
if(NOQUIET)
|
||||
error2("I got _more_ bytes than expected (%"SIZE_P" / %"SIZE_P"), that should not be possible!", (size_p)fr->buffer.fill, (size_p)needed_bytes);
|
||||
error2("I got _more_ bytes than expected (%zu / %zu), that should not be possible!", fr->buffer.fill, needed_bytes);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
|
||||
#include "config.h" /* Load this before _anything_ */
|
||||
|
||||
#include "abi_align.h"
|
||||
#include "../common/abi_align.h"
|
||||
|
||||
#include "compat.h"
|
||||
#include "../compat/compat.h"
|
||||
|
||||
// Only portable API plays a role in the library itself, outside of lfs_wrap.c.
|
||||
// Also, we need to ensure no suffix renaming for the primary implementations.
|
||||
|
@ -230,12 +230,6 @@ static inline int32_t scale_rounded(int32_t x, int shift)
|
|||
|
||||
#endif
|
||||
|
||||
#ifndef REAL_IS_FIXED
|
||||
# if (defined SIZEOF_INT32_T) && (SIZEOF_INT32_T != 4)
|
||||
# error "Bad 32bit types!!!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef DOUBLE_TO_REAL
|
||||
# define DOUBLE_TO_REAL(x) (real)(x)
|
||||
#endif
|
||||
|
@ -284,7 +278,7 @@ static inline int32_t scale_rounded(int32_t x, int shift)
|
|||
now: factor on minimum frame buffer size (which takes upsampling into account) */
|
||||
#define AUDIOBUFSIZE 2
|
||||
|
||||
#include "true.h"
|
||||
#include "../common/true.h"
|
||||
|
||||
#define MAX_NAME_SIZE 81
|
||||
#define SBLIMIT 32
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#define SAFE_NTOM /* Do not depend on int64_t*int64_t with big values still being in the range... */
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
int INT123_synth_ntom_set_step(mpg123_handle *fr)
|
||||
{
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#define WANT_GETCPUFLAGS
|
||||
#include "mpg123lib_intern.h" /* includes optimize.h */
|
||||
#include "getcpuflags.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
|
||||
/* Ugly macros to build conditional synth function array values. */
|
||||
|
@ -160,8 +160,8 @@ static enum optdec sse_or_vintage(mpg123_handle *fr)
|
|||
enum optdec type;
|
||||
type = sse_vintage;
|
||||
# ifdef OPT_SSE
|
||||
# ifdef OPT_MULTI
|
||||
if(fr->cpu_opts.the_dct36 == INT123_dct36_sse)
|
||||
# ifdef OPT_THE_DCT36
|
||||
if(INT123_dct36_match(fr, sse))
|
||||
# endif
|
||||
type = sse;
|
||||
# endif
|
||||
|
@ -192,7 +192,7 @@ static int find_dectype(mpg123_handle *fr)
|
|||
type = dreidnowext;
|
||||
# ifdef OPT_3DNOWEXT_VINTAGE
|
||||
# ifdef OPT_MULTI
|
||||
if(fr->cpu_opts.the_dct36 == INT123_dct36_3dnowext)
|
||||
if(INT123_dct36_match(fr, dreidnowext_vintage))
|
||||
# endif
|
||||
type = dreidnowext_vintage;
|
||||
# endif
|
||||
|
@ -210,7 +210,7 @@ static int find_dectype(mpg123_handle *fr)
|
|||
type = dreidnow;
|
||||
# ifdef OPT_3DNOW_VINTAGE
|
||||
# ifdef OPT_MULTI
|
||||
if(fr->cpu_opts.the_dct36 == INT123_dct36_3dnow)
|
||||
if(INT123_dct36_match(fr, dreidnow_vintage))
|
||||
# endif
|
||||
type = dreidnow_vintage;
|
||||
# endif
|
||||
|
@ -503,13 +503,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
#endif
|
||||
|
||||
fr->cpu_opts.type = nodec;
|
||||
#ifdef OPT_MULTI
|
||||
#ifndef NO_LAYER3
|
||||
#if (defined OPT_3DNOW_VINTAGE || defined OPT_3DNOWEXT_VINTAGE || defined OPT_SSE || defined OPT_X86_64 || defined OPT_AVX || defined OPT_NEON || defined OPT_NEON64)
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
/* covers any i386+ cpu; they actually differ only in the INT123_synth_1to1 function, mostly... */
|
||||
#ifdef OPT_X86
|
||||
if(cpu_i586(fr->cpu_flags))
|
||||
|
@ -523,11 +516,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
{
|
||||
chosen = dn_sse;
|
||||
fr->cpu_opts.type = sse;
|
||||
#ifdef OPT_MULTI
|
||||
# ifndef NO_LAYER3
|
||||
/* if(cpu_fast_sse(fr->cpu_flags)) */ fr->cpu_opts.the_dct36 = INT123_dct36_sse;
|
||||
# endif
|
||||
#endif
|
||||
# ifndef NO_16BIT
|
||||
fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_sse;
|
||||
# ifdef ACCURATE_ROUNDING
|
||||
|
@ -590,11 +578,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
{
|
||||
chosen = dn_dreidnowext_vintage;
|
||||
fr->cpu_opts.type = dreidnowext_vintage;
|
||||
#ifdef OPT_MULTI
|
||||
# ifndef NO_LAYER3
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_3dnowext;
|
||||
# endif
|
||||
#endif
|
||||
# ifndef NO_16BIT
|
||||
fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_3dnowext;
|
||||
# endif
|
||||
|
@ -619,11 +602,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
{
|
||||
chosen = dn_dreidnow_vintage;
|
||||
fr->cpu_opts.type = dreidnow_vintage;
|
||||
#ifdef OPT_MULTI
|
||||
# ifndef NO_LAYER3
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_3dnow;
|
||||
# endif
|
||||
#endif
|
||||
# ifndef NO_16BIT
|
||||
fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_3dnow;
|
||||
# endif
|
||||
|
@ -723,11 +701,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
{
|
||||
chosen = "x86-64 (AVX)";
|
||||
fr->cpu_opts.type = avx;
|
||||
#ifdef OPT_MULTI
|
||||
# ifndef NO_LAYER3
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_avx;
|
||||
# endif
|
||||
#endif
|
||||
# ifndef NO_16BIT
|
||||
fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_avx;
|
||||
fr->synths.stereo[r_1to1][f_16] = INT123_synth_1to1_stereo_avx;
|
||||
|
@ -749,11 +722,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
{
|
||||
chosen = "x86-64 (SSE)";
|
||||
fr->cpu_opts.type = x86_64;
|
||||
#ifdef OPT_MULTI
|
||||
# ifndef NO_LAYER3
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_x86_64;
|
||||
# endif
|
||||
#endif
|
||||
# ifndef NO_16BIT
|
||||
fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_x86_64;
|
||||
fr->synths.stereo[r_1to1][f_16] = INT123_synth_1to1_stereo_x86_64;
|
||||
|
@ -796,11 +764,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
{
|
||||
chosen = dn_neon;
|
||||
fr->cpu_opts.type = neon;
|
||||
#ifdef OPT_MULTI
|
||||
# ifndef NO_LAYER3
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_neon;
|
||||
# endif
|
||||
#endif
|
||||
# ifndef NO_16BIT
|
||||
fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_neon;
|
||||
fr->synths.stereo[r_1to1][f_16] = INT123_synth_1to1_stereo_neon;
|
||||
|
@ -834,11 +797,6 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
{
|
||||
chosen = dn_neon64;
|
||||
fr->cpu_opts.type = neon64;
|
||||
#ifdef OPT_MULTI
|
||||
# ifndef NO_LAYER3
|
||||
fr->cpu_opts.the_dct36 = INT123_dct36_neon64;
|
||||
# endif
|
||||
#endif
|
||||
# ifndef NO_16BIT
|
||||
fr->synths.plain[r_1to1][f_16] = INT123_synth_1to1_neon64;
|
||||
fr->synths.stereo[r_1to1][f_16] = INT123_synth_1to1_stereo_neon64;
|
||||
|
@ -897,6 +855,10 @@ int INT123_frame_cpu_opt(mpg123_handle *fr, const char* cpu)
|
|||
# endif
|
||||
# endif
|
||||
|
||||
#ifdef OPT_THE_DCT36
|
||||
INT123_dct36_choose(fr);
|
||||
#endif
|
||||
|
||||
#ifdef OPT_DITHER
|
||||
if(done && dithered)
|
||||
{
|
||||
|
|
|
@ -364,19 +364,16 @@ extern const int INT123_costab_mmxsse[];
|
|||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
Now come two blocks of standard definitions for multi-decoder mode and single-decoder mode.
|
||||
Most stuff is so automatic that it's indeed generated by some inline shell script.
|
||||
Remember to use these scripts when possible, instead of direct repetitive hacking.
|
||||
*/
|
||||
|
||||
#ifdef OPT_MULTI
|
||||
|
||||
# define defopt nodec
|
||||
|
||||
# ifndef NO_LAYER3
|
||||
# if (defined OPT_3DNOW_VINTAGE || defined OPT_3DNOWEXT_VINTAGE || defined OPT_SSE || defined OPT_X86_64 || defined OPT_AVX || defined OPT_NEON || defined OPT_NEON64)
|
||||
# define OPT_THE_DCT36
|
||||
# define opt_dct36(fr) ((fr)->cpu_opts.the_dct36)
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif /* OPT_MULTI else */
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#include "mpeghead.h"
|
||||
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
#define bsbufid(fr) (fr)->bsbuf==(fr)->bsspace[0] ? 0 : ((fr)->bsbuf==fr->bsspace[1] ? 1 : ( (fr)->bsbuf==(fr)->bsspace[0]+512 ? 2 : ((fr)->bsbuf==fr->bsspace[1]+512 ? 3 : -1) ) )
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#include "mpg123lib_intern.h"
|
||||
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
static int stream_init(mpg123_handle *fr);
|
||||
static int64_t get_fileinfo(mpg123_handle *);
|
||||
|
@ -526,7 +526,7 @@ static struct buffy* bc_alloc(struct bufferchain *bc, size_t size)
|
|||
buf->next = NULL; /* That shall be set to a sensible value later. */
|
||||
buf->size = 0;
|
||||
--bc->pool_fill;
|
||||
debug2("bc_alloc: picked %p from pool (fill now %"SIZE_P")", (void*)buf, (size_p)bc->pool_fill);
|
||||
debug2("bc_alloc: picked %p from pool (fill now %zu)", (void*)buf, bc->pool_fill);
|
||||
return buf;
|
||||
}
|
||||
else return buffy_new(size, bc->bufblock);
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
#include "mpg123lib_intern.h"
|
||||
#include "config.h"
|
||||
#include "mpg123.h"
|
||||
#include "compat.h"
|
||||
#include "../compat/compat.h"
|
||||
#include <string.h>
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
mpg123_string* attribute_align_arg mpg123_new_string(const char *val)
|
||||
{
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
#ifdef OPT_GENERIC_DITHER
|
||||
#define FORCE_ACCURATE
|
||||
#endif
|
||||
#include "sample.h"
|
||||
#include "debug.h"
|
||||
#include "../common/sample.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
/*
|
||||
Part 1: All synth functions that produce signed short.
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
*/
|
||||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "sample.h"
|
||||
#include "debug.h"
|
||||
#include "../common/sample.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
/*
|
||||
Part 2: All synth functions that produce 8bit output.
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
*/
|
||||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "sample.h"
|
||||
#include "debug.h"
|
||||
#include "../common/sample.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
#ifdef REAL_IS_FIXED
|
||||
#error "Do not build this file with fixed point math!"
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
*/
|
||||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "sample.h"
|
||||
#include "debug.h"
|
||||
#include "../common/sample.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
#ifdef REAL_IS_FIXED
|
||||
#error "Do not build this file with fixed point math!"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
#include "mpg123lib_intern.h"
|
||||
#include "debug.h"
|
||||
#include "../common/debug.h"
|
||||
|
||||
// The (normally precomputed) cos tables.
|
||||
#include "costabs.h"
|
||||
|
|
|
@ -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 2
|
||||
#define MPG123_PATCH 5
|
||||
// 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 ""
|
||||
|
|
Loading…
Add table
Reference in a new issue