mpg123-1.33.2
This commit is contained in:
6
NEWS
6
NEWS
@@ -1,3 +1,9 @@
|
|||||||
|
1.33.2
|
||||||
|
------
|
||||||
|
- libmpg123:
|
||||||
|
-- Do not modify raw ID3v2 data while parsing (bug 379). This used to be fine
|
||||||
|
before MPG123_STORE_RAW_ID3 got introduced. Not anymore.
|
||||||
|
|
||||||
1.33.1
|
1.33.1
|
||||||
------
|
------
|
||||||
- INSTALL updated with hints for Windows, mainly.
|
- INSTALL updated with hints for Windows, mainly.
|
||||||
|
|||||||
22
configure
vendored
22
configure
vendored
@@ -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.33.1.
|
# Generated by GNU Autoconf 2.71 for mpg123 1.33.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.33.1'
|
PACKAGE_VERSION='1.33.2'
|
||||||
PACKAGE_STRING='mpg123 1.33.1'
|
PACKAGE_STRING='mpg123 1.33.2'
|
||||||
PACKAGE_BUGREPORT='maintainer@mpg123.org'
|
PACKAGE_BUGREPORT='maintainer@mpg123.org'
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
@@ -1727,7 +1727,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.33.1 to adapt to many kinds of systems.
|
\`configure' configures mpg123 1.33.2 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@@ -1798,7 +1798,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.33.1:";;
|
short | recursive ) echo "Configuration of mpg123 1.33.2:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@@ -2077,7 +2077,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.33.1
|
mpg123 configure 1.33.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.
|
||||||
@@ -2622,7 +2622,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.33.1, which was
|
It was created by mpg123 $as_me 1.33.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
|
||||||
@@ -3391,7 +3391,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
LIBMPG123_VERSION=49:3:49
|
LIBMPG123_VERSION=49:4:49
|
||||||
LIBOUT123_VERSION=5:2:5
|
LIBOUT123_VERSION=5:2:5
|
||||||
LIBSYN123_VERSION=2:3:2
|
LIBSYN123_VERSION=2:3:2
|
||||||
|
|
||||||
@@ -3992,7 +3992,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='mpg123'
|
PACKAGE='mpg123'
|
||||||
VERSION='1.33.1'
|
VERSION='1.33.2'
|
||||||
|
|
||||||
|
|
||||||
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
|
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
|
||||||
@@ -22468,7 +22468,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.33.1, which was
|
This file was extended by mpg123 $as_me 1.33.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
|
||||||
@@ -22536,7 +22536,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.33.1
|
mpg123 config.status 1.33.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\\"
|
||||||
|
|
||||||
|
|||||||
@@ -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.33.1
|
Version: 1.33.2
|
||||||
Release: 1
|
Release: 1
|
||||||
URL: http://www.mpg123.org/
|
URL: http://www.mpg123.org/
|
||||||
License: GPL
|
License: GPL
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
*/
|
*/
|
||||||
#define MPG123_API_VERSION 49
|
#define MPG123_API_VERSION 49
|
||||||
/** library patch level at client build time */
|
/** library patch level at client build time */
|
||||||
#define MPG123_PATCHLEVEL 3
|
#define MPG123_PATCHLEVEL 4
|
||||||
|
|
||||||
#ifndef MPG123_EXPORT
|
#ifndef MPG123_EXPORT
|
||||||
/** Defines needed for MS Visual Studio(tm) DLL builds.
|
/** Defines needed for MS Visual Studio(tm) DLL builds.
|
||||||
@@ -338,7 +338,11 @@ enum mpg123_param_flags
|
|||||||
* the stream is assumed as non-seekable unless overridden.
|
* the stream is assumed as non-seekable unless overridden.
|
||||||
*/
|
*/
|
||||||
,MPG123_FORCE_SEEKABLE = 0x40000 /**< 19th bit: Force the stream to be seekable. */
|
,MPG123_FORCE_SEEKABLE = 0x40000 /**< 19th bit: Force the stream to be seekable. */
|
||||||
,MPG123_STORE_RAW_ID3 = 0x80000 /**< store raw ID3 data (even if skipping) */
|
,MPG123_STORE_RAW_ID3 = 0x80000 /**< Store raw ID3 data (even if skipping).
|
||||||
|
* Before mpg123 1.33.2 (libmpg123 API 49, patchlevel 4), this has to be combined with
|
||||||
|
* MPG123_SKIP_ID3 to avoid getting corrupted data due to the ID3 parser inserting
|
||||||
|
* encoding bytes for its own convenience.
|
||||||
|
*/
|
||||||
,MPG123_FORCE_ENDIAN = 0x100000 /**< Enforce endianess of output samples.
|
,MPG123_FORCE_ENDIAN = 0x100000 /**< Enforce endianess of output samples.
|
||||||
* This is not reflected in the format codes. If this flag is set along with
|
* This is not reflected in the format codes. If this flag is set along with
|
||||||
* MPG123_BIG_ENDIAN, MPG123_ENC_SIGNED16 means s16be, without
|
* MPG123_BIG_ENDIAN, MPG123_ENC_SIGNED16 means s16be, without
|
||||||
|
|||||||
@@ -330,9 +330,9 @@ void INT123_id3_link(mpg123_handle *fr)
|
|||||||
Since we can overwrite strings with ID3 update frames, don't free
|
Since we can overwrite strings with ID3 update frames, don't free
|
||||||
memory, just grow strings.
|
memory, just grow strings.
|
||||||
*/
|
*/
|
||||||
static void store_id3_text(mpg123_string *sb, unsigned char *source, size_t source_size, const int noquiet, const int notranslate)
|
static void store_id3_text(mpg123_string *sb, unsigned char encoding, unsigned char *source
|
||||||
|
, size_t source_size, const int noquiet, const int notranslate)
|
||||||
{
|
{
|
||||||
unsigned char encoding;
|
|
||||||
if(sb) // Always overwrite, even with nothing.
|
if(sb) // Always overwrite, even with nothing.
|
||||||
sb->fill = 0;
|
sb->fill = 0;
|
||||||
if(!source_size)
|
if(!source_size)
|
||||||
@@ -345,25 +345,25 @@ static void store_id3_text(mpg123_string *sb, unsigned char *source, size_t sour
|
|||||||
if(notranslate)
|
if(notranslate)
|
||||||
{
|
{
|
||||||
/* Future: Add a path for ID3 errors. */
|
/* Future: Add a path for ID3 errors. */
|
||||||
if(!mpg123_grow_string(sb, source_size))
|
if(!mpg123_grow_string(sb, source_size+1))
|
||||||
{
|
{
|
||||||
if(noquiet) error("Cannot resize target string, out of memory?");
|
if(noquiet) error("Cannot resize target string, out of memory?");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
memcpy(sb->p, source, source_size);
|
sb->p[0] = (char)encoding;
|
||||||
sb->fill = source_size;
|
memcpy(sb->p+1, source, source_size);
|
||||||
debug1("stored undecoded ID3 text of size %zu", source_size);
|
sb->fill = source_size+1;
|
||||||
|
debug1("stored undecoded ID3 text of size %zu", source_size+1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
encoding = source[0];
|
|
||||||
if(encoding > mpg123_id3_enc_max)
|
if(encoding > mpg123_id3_enc_max)
|
||||||
{
|
{
|
||||||
if(noquiet)
|
if(noquiet)
|
||||||
error1("Unknown text encoding %u, I take no chances, sorry!", encoding);
|
error1("Unknown text encoding %u, I take no chances, sorry!", encoding);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
INT123_id3_to_utf8(sb, encoding, source+1, source_size-1, noquiet);
|
INT123_id3_to_utf8(sb, encoding, source, source_size, noquiet);
|
||||||
|
|
||||||
if(sb->fill) debug1("UTF-8 string (the first one): %s", sb->p);
|
if(sb->fill) debug1("UTF-8 string (the first one): %s", sb->p);
|
||||||
else if(noquiet) error("unable to convert string to UTF-8 (out of memory, junk input?)!");
|
else if(noquiet) error("unable to convert string to UTF-8 (out of memory, junk input?)!");
|
||||||
@@ -449,6 +449,11 @@ static void process_text(mpg123_handle *fr, unsigned char *realdata, size_t real
|
|||||||
{
|
{
|
||||||
/* Text encoding $xx */
|
/* Text encoding $xx */
|
||||||
/* The text (encoded) ... */
|
/* The text (encoded) ... */
|
||||||
|
if(realsize < 1)
|
||||||
|
{
|
||||||
|
if(NOQUIET) error("Not even an encoding byte?");
|
||||||
|
return;
|
||||||
|
}
|
||||||
mpg123_text *t = add_text(fr, id);
|
mpg123_text *t = add_text(fr, id);
|
||||||
if(VERBOSE4) fprintf(stderr, "Note: Storing text from %s encoding\n", enc_name(realdata[0]));
|
if(VERBOSE4) fprintf(stderr, "Note: Storing text from %s encoding\n", enc_name(realdata[0]));
|
||||||
if(t == NULL)
|
if(t == NULL)
|
||||||
@@ -460,7 +465,8 @@ static void process_text(mpg123_handle *fr, unsigned char *realdata, size_t real
|
|||||||
? (char[5]) { t->id[0], t->id[1], t->id[2], t->id[3], 0 }
|
? (char[5]) { t->id[0], t->id[1], t->id[2], t->id[3], 0 }
|
||||||
: "(nil)" );
|
: "(nil)" );
|
||||||
memcpy(t->id, id, 4);
|
memcpy(t->id, id, 4);
|
||||||
store_id3_text(&t->text, realdata, realsize, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT);
|
store_id3_text( &t->text, realdata[0], realdata+1, realsize-1
|
||||||
|
, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT );
|
||||||
if(VERBOSE4) // Do not print unsanitized text to terminals!
|
if(VERBOSE4) // Do not print unsanitized text to terminals!
|
||||||
fprintf(stderr, "Note: ID3v2 %c%c%c%c text frame stored\n", id[0], id[1], id[2], id[3]);
|
fprintf(stderr, "Note: ID3v2 %c%c%c%c text frame stored\n", id[0], id[1], id[2], id[3]);
|
||||||
}
|
}
|
||||||
@@ -577,8 +583,6 @@ static void process_comment(mpg123_handle *fr, enum frame_types tt, unsigned cha
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
memcpy(lang, realdata+1, 3);
|
memcpy(lang, realdata+1, 3);
|
||||||
/* Now I can abuse a byte from lang for the encoding. */
|
|
||||||
descr[-1] = encoding;
|
|
||||||
/* Be careful with finding the end of description, I have to honor encoding here. */
|
/* Be careful with finding the end of description, I have to honor encoding here. */
|
||||||
text = next_text(descr, encoding, realsize-(descr-realdata));
|
text = next_text(descr, encoding, realsize-(descr-realdata));
|
||||||
if(text == NULL)
|
if(text == NULL)
|
||||||
@@ -591,14 +595,14 @@ static void process_comment(mpg123_handle *fr, enum frame_types tt, unsigned cha
|
|||||||
mpg123_string description;
|
mpg123_string description;
|
||||||
mpg123_init_string(&description);
|
mpg123_init_string(&description);
|
||||||
// Store the text, with desired encoding, but for comments always a local copy in UTF-8.
|
// Store the text, with desired encoding, but for comments always a local copy in UTF-8.
|
||||||
store_id3_text( &description, descr-1, text-descr+1
|
store_id3_text( &description, encoding, descr, text-descr
|
||||||
, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT );
|
, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT );
|
||||||
if(tt == comment)
|
if(tt == comment)
|
||||||
store_id3_text( &localcom.description, descr-1, text-descr+1
|
store_id3_text( &localcom.description, encoding, descr, text-descr
|
||||||
, NOQUIET, 0 );
|
, NOQUIET, 0 );
|
||||||
if(VERBOSE4)
|
if(VERBOSE4)
|
||||||
fprintf( stderr, "Note: Storing comment from %s encoding\n"
|
fprintf( stderr, "Note: Storing comment from %s encoding\n"
|
||||||
, enc_name(realdata[0]) );
|
, enc_name(encoding) );
|
||||||
xcom = tt == uslt
|
xcom = tt == uslt
|
||||||
? add_uslt(fr, lang, &description)
|
? add_uslt(fr, lang, &description)
|
||||||
: add_comment(fr, lang, &description);
|
: add_comment(fr, lang, &description);
|
||||||
@@ -616,8 +620,8 @@ static void process_comment(mpg123_handle *fr, enum frame_types tt, unsigned cha
|
|||||||
mpg123_move_string(&description, &xcom->description);
|
mpg123_move_string(&description, &xcom->description);
|
||||||
}
|
}
|
||||||
|
|
||||||
text[-1] = encoding; /* Byte abusal for encoding... */
|
store_id3_text( &xcom->text, encoding, text, realsize-(text-realdata)
|
||||||
store_id3_text(&xcom->text, text-1, realsize+1-(text-realdata), NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT);
|
, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT );
|
||||||
/* Remember: I will probably decode the above (again) for rva comment checking. So no messing around, please. */
|
/* Remember: I will probably decode the above (again) for rva comment checking. So no messing around, please. */
|
||||||
|
|
||||||
if(VERBOSE4) /* Do _not_ print the verbatim text: The encoding might be funny! */
|
if(VERBOSE4) /* Do _not_ print the verbatim text: The encoding might be funny! */
|
||||||
@@ -641,7 +645,8 @@ static void process_comment(mpg123_handle *fr, enum frame_types tt, unsigned cha
|
|||||||
if((rva_mode > -1) && (fr->rva.level[rva_mode] <= rva_level))
|
if((rva_mode > -1) && (fr->rva.level[rva_mode] <= rva_level))
|
||||||
{
|
{
|
||||||
/* Only translate the contents in here where we really need them. */
|
/* Only translate the contents in here where we really need them. */
|
||||||
store_id3_text(&localcom.text, text-1, realsize+1-(text-realdata), NOQUIET, 0);
|
store_id3_text( &localcom.text, encoding, text, realsize-(text-realdata)
|
||||||
|
, NOQUIET, 0 );
|
||||||
if(localcom.text.fill > 0)
|
if(localcom.text.fill > 0)
|
||||||
{
|
{
|
||||||
fr->rva.gain[rva_mode] = (float) atof(localcom.text.p);
|
fr->rva.gain[rva_mode] = (float) atof(localcom.text.p);
|
||||||
@@ -689,7 +694,7 @@ static void process_extra(mpg123_handle *fr, unsigned char* realdata, size_t rea
|
|||||||
mpg123_init_string(&description);
|
mpg123_init_string(&description);
|
||||||
/* The outside storage gets reencoded to UTF-8 only if not requested otherwise.
|
/* The outside storage gets reencoded to UTF-8 only if not requested otherwise.
|
||||||
Remember that we really need the -1 here to hand in the encoding byte!*/
|
Remember that we really need the -1 here to hand in the encoding byte!*/
|
||||||
store_id3_text( &description, descr-1, text-descr+1
|
store_id3_text( &description, encoding, descr, text-descr
|
||||||
, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT );
|
, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT );
|
||||||
xex = add_extra(fr, &description);
|
xex = add_extra(fr, &description);
|
||||||
if(xex)
|
if(xex)
|
||||||
@@ -706,10 +711,10 @@ static void process_extra(mpg123_handle *fr, unsigned char* realdata, size_t rea
|
|||||||
init_mpg123_text(&localex); /* For our local copy. */
|
init_mpg123_text(&localex); /* For our local copy. */
|
||||||
|
|
||||||
/* Our local copy is always stored in UTF-8! */
|
/* Our local copy is always stored in UTF-8! */
|
||||||
store_id3_text(&localex.description, descr-1, text-descr+1, NOQUIET, 0);
|
store_id3_text(&localex.description, encoding, descr, text-descr, NOQUIET, 0);
|
||||||
/* At first, only store the outside copy of the payload. We may not need the local copy. */
|
/* At first, only store the outside copy of the payload. We may not need the local copy. */
|
||||||
text[-1] = encoding;
|
store_id3_text( &xex->text, encoding, text, realsize-(text-realdata)
|
||||||
store_id3_text(&xex->text, text-1, realsize-(text-realdata)+1, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT);
|
, NOQUIET, fr->p.flags & MPG123_PLAIN_ID3TEXT );
|
||||||
|
|
||||||
/* Now check if we would like to interpret this extra info for RVA. */
|
/* Now check if we would like to interpret this extra info for RVA. */
|
||||||
if(localex.description.fill > 0)
|
if(localex.description.fill > 0)
|
||||||
@@ -737,7 +742,8 @@ static void process_extra(mpg123_handle *fr, unsigned char* realdata, size_t rea
|
|||||||
if((rva_mode > -1) && (fr->rva.level[rva_mode] <= rva_level))
|
if((rva_mode > -1) && (fr->rva.level[rva_mode] <= rva_level))
|
||||||
{
|
{
|
||||||
/* Now we need the translated copy of the data. */
|
/* Now we need the translated copy of the data. */
|
||||||
store_id3_text(&localex.text, text-1, realsize-(text-realdata)+1, NOQUIET, 0);
|
store_id3_text( &localex.text, encoding, text, realsize-(text-realdata)
|
||||||
|
, NOQUIET, 0 );
|
||||||
if(localex.text.fill > 0)
|
if(localex.text.fill > 0)
|
||||||
{
|
{
|
||||||
if(is_peak)
|
if(is_peak)
|
||||||
|
|||||||
@@ -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 33
|
#define MPG123_MINOR 33
|
||||||
#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 ""
|
||||||
|
|||||||
Reference in New Issue
Block a user