* update mpg123 to 1.24.0

https://www.mpg123.de/
https://www.mpg123.de/download/mpg123-1.24.0.tar.bz2

./configure --disable-shared --enable-static && make install
This commit is contained in:
alexey.lysiuk 2017-04-29 17:43:09 +03:00
parent a0b53bc0c8
commit d54e31854e
2 changed files with 12 additions and 4 deletions

View File

@ -1,5 +1,5 @@
/*
libmpg123: MPEG Audio Decoder library (version 1.23.8)
libmpg123: MPEG Audio Decoder library (version 1.24.0)
copyright 1995-2015 by the mpg123 project
free software under the terms of the LGPL 2.1
@ -17,7 +17,7 @@
* This should be incremented at least each time a new symbol is added
* to the header.
*/
#define MPG123_API_VERSION 42
#define MPG123_API_VERSION 43
#ifndef MPG123_EXPORT
/** Defines needed for MS Visual Studio(tm) DLL builds.
@ -42,7 +42,8 @@
#endif
/* This is for Visual Studio, so this header works as distributed in the binary downloads */
#if defined(_MSC_VER)
#if defined(_MSC_VER) && !defined(MPG123_DEF_SSIZE_T)
#define MPG123_DEF_SSIZE_T
#include <stddef.h>
typedef ptrdiff_t ssize_t;
#endif
@ -200,6 +201,13 @@ enum mpg123_param_flags
,MPG123_IGNORE_INFOFRAME = 0x4000 /**< 100 0000 0000 0000 Do not parse the LAME/Xing info frame, treat it as normal MPEG data. */
,MPG123_AUTO_RESAMPLE = 0x8000 /**< 1000 0000 0000 0000 Allow automatic internal resampling of any kind (default on if supported). Especially when going lowlevel with replacing output buffer, you might want to unset this flag. Setting MPG123_DOWNSAMPLE or MPG123_FORCE_RATE will override this. */
,MPG123_PICTURE = 0x10000 /**< 17th bit: Enable storage of pictures from tags (ID3v2 APIC). */
,MPG123_NO_PEEK_END = 0x20000 /**< 18th bit: Do not seek to the end of
* the stream in order to probe
* the stream length and search for the id3v1 field. This also means
* the file size is unknown unless set using mpg123_set_filesize() and
* the stream is assumed as non-seekable unless overridden.
*/
,MPG123_FORCE_SEEKABLE = 0x40000 /**< 19th bit: Force the stream to be seekable. */
};
/** choices for MPG123_RVA */
@ -415,7 +423,7 @@ MPG123_EXPORT const char* mpg123_current_decoder(mpg123_handle *mh);
*
* Before you dive in, please be warned that you might get confused by this. This seems to happen a lot, therefore I am trying to explain in advance.
*
* The mpg123 library decides what output format to use when encountering the first frame in a stream, or actually any frame that is still valid but differs from the frames before in the prompted output format. At such a deciding point, an internal table of allowed encodings, sampling rates and channel setups is consulted. According to this table, an output format is chosen and the decoding engine set up accordingly (including ptimized routines for different output formats). This might seem unusual but it just follows from the non-existence of "MPEG audio files" with defined overall properties. There are streams, streams are concatenations of (semi) independent frames. We store streams on disk and call them "MPEG audio files", but that does not change their nature as the decoder is concerned (the LAME/Xing header for gapless decoding makes things interesting again).
* The mpg123 library decides what output format to use when encountering the first frame in a stream, or actually any frame that is still valid but differs from the frames before in the prompted output format. At such a deciding point, an internal table of allowed encodings, sampling rates and channel setups is consulted. According to this table, an output format is chosen and the decoding engine set up accordingly (including optimized routines for different output formats). This might seem unusual but it just follows from the non-existence of "MPEG audio files" with defined overall properties. There are streams, streams are concatenations of (semi) independent frames. We store streams on disk and call them "MPEG audio files", but that does not change their nature as the decoder is concerned (the LAME/Xing header for gapless decoding makes things interesting again).
*
* To get to the point: What you do with mpg123_format() and friends is to fill the internal table of allowed formats before it is used. That includes removing support for some formats or adding your forced sample rate (see MPG123_FORCE_RATE) that will be used with the crude internal resampler. Also keep in mind that the sample encoding is just a question of choice -- the MPEG frames do only indicate their native sampling rate and channel count. If you want to decode to integer or float samples, 8 or 16 bit ... that is your decision. In a "clean" world, libmpg123 would always decode to 32 bit float and let you handle any sample conversion. But there are optimized routines that work faster by directly decoding to the desired encoding / accuracy. We prefer efficiency over conceptual tidyness.
*

Binary file not shown.