mpg123: mpg123-1.30.0

From c46daebce1a7628d24bde87ad1ec07d16e7c0019 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Tue, 28 Jun 2022 07:10:00 +0300
Subject: [PATCH] mpg123-1.30.0

---
 INSTALL                                  |  20 +-
 Makefile.in                              | 120 ++++--
 NEWS                                     |  46 +++
 NEWS.libmpg123                           |   2 +
 configure                                | 501 +++++++++++++++++------
 configure.ac                             | 270 ++++++++----
 doc/Makemodule.am                        |   1 +
 doc/README.remote                        |   7 +-
 doc/windows-notes.html                   | 243 +++++++++++
 man1/mpg123.1                            |  14 +-
 mpg123.spec                              |   2 +-
 ports/cmake/cmake/read_api_version.cmake |   2 +-
 ports/cmake/src/CMakeLists.txt           |  28 +-
 ports/cmake/src/config.cmake.h.in        |   5 +-
 src/Makemodule.am                        |  35 +-
 src/common.c                             |  32 +-
 src/compat/compat.c                      |  25 +-
 src/compat/compat.h                      |  43 +-
 src/compat/compat_str.c                  |  23 +-
 src/config.h.in                          |  18 +
 src/control_generic.c                    |  27 +-
 src/httpget.c                            |  59 ++-
 src/httpget.h                            |  14 +-
 src/intsym.h                             |   1 +
 src/libmpg123/frame.c                    |   6 +
 src/libmpg123/libmpg123.c                |  37 +-
 src/libmpg123/mpg123.h.in                |  31 +-
 src/libmpg123/mpg123lib_intern.h         |  12 +
 src/libmpg123/readers.c                  |  23 +-
 src/libout123/libout123.c                |   2 +
 src/libout123/modules/os2.c              | 182 +++++---
 src/libout123/modules/pulse.c            |   6 +-
 src/libout123/modules/win32_wasapi.c     |   8 +-
 src/libout123/wav.c                      |   4 +-
 src/local.c                              |  81 ----
 src/metaprint.c                          |   8 +-
 src/mpg123-strip.c                       |   2 +
 src/mpg123.c                             | 255 +++++-------
 src/mpg123app.h                          |  14 +-
 src/net123.h                             |  69 ++++
 src/net123_exec.c                        | 306 ++++++++++++++
 src/net123_winhttp.c                     | 262 ++++++++++++
 src/net123_wininet.c                     | 227 ++++++++++
 src/out123.c                             |  11 +-
 src/playlist.c                           | 375 +++++++----------
 src/resolver.c                           |   2 +-
 src/streamdump.c                         | 404 +++++++++++++++++-
 src/streamdump.h                         |  49 ++-
 src/term.c                               | 165 +++-----
 src/term.h                               |  14 +-
 src/term_none.c                          |  31 ++
 src/term_posix.c                         | 229 +++++++++++
 src/term_win32.c                         | 113 +++++
 src/terms.h                              |  52 +++
 src/win32_net.c                          |   4 +-
 src/win32_support.h                      |   2 +-
 56 files changed, 3493 insertions(+), 1031 deletions(-)
 create mode 100644 doc/windows-notes.html
 create mode 100644 src/net123.h
 create mode 100644 src/net123_exec.c
 create mode 100644 src/net123_winhttp.c
 create mode 100644 src/net123_wininet.c
 create mode 100644 src/term_none.c
 create mode 100644 src/term_posix.c
 create mode 100644 src/term_win32.c
 create mode 100644 src/terms.h

diff --git a/INSTALL b/INSTALL
index a9cec3f..bede127 100644
--- a/INSTALL
+++ b/INSTALL
@@ -5,24 +5,27 @@ mpg123 install hints
 
 You really need:
 
-- a C compiler; we try to keep the code ANSI C89/ISO C90 compatible
-  gcc from 2.95 on should work, others, too - please report any issues
-  Actually, we have a confirmed working build (svn trunk leading to
-  release 0.67) on SunOS 4.1.4 with gcc-2.7.0 .
+- a C99 compiler (moderate C99 support)
 
 - an (UNIX-like) operating system with standard tools; MinGW32 and
   Cygwin are working for Microsoft Windows, too. We also have users happily
   on OS/2.
-- For the library only, you may get lucky with MSVC++ using the project
-  files under ports/
+
+- For the library only, you may get lucky with MSVC++ using CMake and
+  ports/cmake as source directory. You can also use CMake on other
+  platforms for a full build, but its main purpose is for portability
+  where autotools don't do the trick.
+
 - For other exotic platforms, also see ports/
+
 - If building from direct SCM checkout, you need GNU autotools installed
-  (see below).
+  (see developer build below).
 
 You want:
 
 - working assembler (recent GNU binutils) if using certain CPU
   optimizations
+
 - headers and lib for certain audio output drivers (libasound for alsa,
   sdl for sdl...)
 
@@ -31,10 +34,11 @@ You want:
 There is one main supported way to get your mpg123 installation
 consisting of
 
-a) the mpg123, mpg123-strip, out123 program binaries
+a) the mpg123, mpg123-strip, mpg123-id3dump, out123 program binaries
   - with libmpg123, libout123, and libsyn123 as shared libraries or
     statically linked
   - with audio output plugins for libout123, or one statically linked
+
 b) man pages
 
 (you may want to copy some of the documentation - README, etc - to
diff --git a/Makefile.in b/Makefile.in
index 38728f2..fc42a4e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -372,14 +372,23 @@ check_PROGRAMS = src/tests/decode_fixed$(EXEEXT) \
 
 @HAVE_MODULES_TRUE@am__append_96 = src/libout123/module.c
 @HAVE_MODULES_FALSE@am__append_97 = src/libout123/legacy_module.c
-@WIN32_CODES_TRUE@am__append_98 = \
-@WIN32_CODES_TRUE@  src/win32_support.c \
-@WIN32_CODES_TRUE@  src/win32_net.c
+@TERM_POSIX_TRUE@am__append_98 = src/term_posix.c
+@TERM_WIN32_TRUE@am__append_99 = src/term_win32.c
+@TERM_NONE_TRUE@am__append_100 = src/term_none.c
+@NET123_EXEC_TRUE@am__append_101 = src/net123.h src/net123_exec.c
+@NET123_WINHTTP_TRUE@am__append_102 = src/net123.h src/net123_winhttp.c
+@NET123_WINHTTP_TRUE@am__append_103 = -lwinhttp
+@NET123_WININET_TRUE@am__append_104 = src/net123.h src/net123_wininet.c
+@NET123_WININET_TRUE@am__append_105 = -lwininet
+@WIN32_CODES_TRUE@am__append_106 = \
+@WIN32_CODES_TRUE@  src/win32_support.c
 
-@WIN32_CODES_TRUE@am__append_99 = \
+@NETWORK_WINSOCK_TRUE@@WIN32_CODES_TRUE@am__append_107 = src/win32_net.c
+@NETWORK_WINSOCK_TRUE@@WIN32_CODES_TRUE@am__append_108 = -lws2_32
+@WIN32_CODES_TRUE@am__append_109 = \
 @WIN32_CODES_TRUE@  src/win32_support.c
 
-@WIN32_CODES_TRUE@am__append_100 = \
+@WIN32_CODES_TRUE@am__append_110 = \
 @WIN32_CODES_TRUE@  src/win32_support.c
 
 subdir = .
@@ -1112,10 +1121,18 @@ am__src_mpg123_SOURCES_DIST = src/audio.c src/audio.h src/common.c \
 	src/genre.c src/mpg123.c src/mpg123app.h src/metaprint.c \
 	src/metaprint.h src/local.h src/local.c src/playlist.c \
 	src/playlist.h src/streamdump.h src/streamdump.c src/term.c \
-	src/term.h src/win32_support.h src/win32_support.c \
-	src/win32_net.c
-@WIN32_CODES_TRUE@am__objects_70 = src/win32_support.$(OBJEXT) \
-@WIN32_CODES_TRUE@	src/win32_net.$(OBJEXT)
+	src/term.h src/terms.h src/win32_support.h src/term_posix.c \
+	src/term_win32.c src/term_none.c src/net123.h \
+	src/net123_exec.c src/net123_winhttp.c src/net123_wininet.c \
+	src/win32_support.c src/win32_net.c
+@TERM_POSIX_TRUE@am__objects_70 = src/term_posix.$(OBJEXT)
+@TERM_WIN32_TRUE@am__objects_71 = src/term_win32.$(OBJEXT)
+@TERM_NONE_TRUE@am__objects_72 = src/term_none.$(OBJEXT)
+@NET123_EXEC_TRUE@am__objects_73 = src/net123_exec.$(OBJEXT)
+@NET123_WINHTTP_TRUE@am__objects_74 = src/net123_winhttp.$(OBJEXT)
+@NET123_WININET_TRUE@am__objects_75 = src/net123_wininet.$(OBJEXT)
+@WIN32_CODES_TRUE@am__objects_76 = src/win32_support.$(OBJEXT)
+@NETWORK_WINSOCK_TRUE@@WIN32_CODES_TRUE@am__objects_77 = src/win32_net.$(OBJEXT)
 am_src_mpg123_OBJECTS = src/audio.$(OBJEXT) src/common.$(OBJEXT) \
 	src/sysutil.$(OBJEXT) src/control_generic.$(OBJEXT) \
 	src/equalizer.$(OBJEXT) src/getlopt.$(OBJEXT) \
@@ -1123,19 +1140,22 @@ am_src_mpg123_OBJECTS = src/audio.$(OBJEXT) src/common.$(OBJEXT) \
 	src/genre.$(OBJEXT) src/mpg123.$(OBJEXT) \
 	src/metaprint.$(OBJEXT) src/local.$(OBJEXT) \
 	src/playlist.$(OBJEXT) src/streamdump.$(OBJEXT) \
-	src/term.$(OBJEXT) $(am__objects_70)
+	src/term.$(OBJEXT) $(am__objects_70) $(am__objects_71) \
+	$(am__objects_72) $(am__objects_73) $(am__objects_74) \
+	$(am__objects_75) $(am__objects_76) $(am__objects_77)
 src_mpg123_OBJECTS = $(am_src_mpg123_OBJECTS)
+am__DEPENDENCIES_1 =
 src_mpg123_DEPENDENCIES = src/compat/libcompat.la \
 	src/libmpg123/libmpg123.la src/libout123/libout123.la \
-	src/libsyn123/libsyn123.la
+	src/libsyn123/libsyn123.la $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 src_mpg123_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(src_mpg123_LDFLAGS) $(LDFLAGS) -o $@
 am__src_mpg123_id3dump_SOURCES_DIST = src/mpg123-id3dump.c \
 	src/getlopt.c src/getlopt.h src/win32_support.c
-@WIN32_CODES_TRUE@am__objects_71 = src/win32_support.$(OBJEXT)
 am_src_mpg123_id3dump_OBJECTS = src/mpg123-id3dump.$(OBJEXT) \
-	src/getlopt.$(OBJEXT) $(am__objects_71)
+	src/getlopt.$(OBJEXT) $(am__objects_76)
 src_mpg123_id3dump_OBJECTS = $(am_src_mpg123_id3dump_OBJECTS)
 src_mpg123_id3dump_DEPENDENCIES = src/compat/libcompat.la \
 	src/libmpg123/libmpg123.la
@@ -1150,7 +1170,7 @@ am__src_out123_SOURCES_DIST = src/sysutil.c src/sysutil.h src/common.h \
 	src/win32_support.h src/win32_support.c
 am_src_out123_OBJECTS = src/sysutil.$(OBJEXT) src/getlopt.$(OBJEXT) \
 	src/local.$(OBJEXT) src/filters.$(OBJEXT) src/out123.$(OBJEXT) \
-	$(am__objects_71)
+	$(am__objects_76)
 src_out123_OBJECTS = $(am_src_out123_OBJECTS)
 src_out123_DEPENDENCIES = src/compat/libcompat.la \
 	src/libsyn123/libsyn123.la src/libout123/libout123.la
@@ -1220,11 +1240,15 @@ am__depfiles_remade = src/$(DEPDIR)/audio.Po src/$(DEPDIR)/common.Po \
 	src/$(DEPDIR)/getlopt.Po src/$(DEPDIR)/httpget.Po \
 	src/$(DEPDIR)/local.Po src/$(DEPDIR)/metaprint.Po \
 	src/$(DEPDIR)/mpg123-id3dump.Po src/$(DEPDIR)/mpg123-strip.Po \
-	src/$(DEPDIR)/mpg123.Po src/$(DEPDIR)/out123.Po \
+	src/$(DEPDIR)/mpg123.Po src/$(DEPDIR)/net123_exec.Po \
+	src/$(DEPDIR)/net123_winhttp.Po \
+	src/$(DEPDIR)/net123_wininet.Po src/$(DEPDIR)/out123.Po \
 	src/$(DEPDIR)/playlist.Po src/$(DEPDIR)/resolver.Po \
 	src/$(DEPDIR)/streamdump.Po src/$(DEPDIR)/sysutil.Po \
-	src/$(DEPDIR)/term.Po src/$(DEPDIR)/win32_net.Po \
-	src/$(DEPDIR)/win32_support.Po src/compat/$(DEPDIR)/compat.Plo \
+	src/$(DEPDIR)/term.Po src/$(DEPDIR)/term_none.Po \
+	src/$(DEPDIR)/term_posix.Po src/$(DEPDIR)/term_win32.Po \
+	src/$(DEPDIR)/win32_net.Po src/$(DEPDIR)/win32_support.Po \
+	src/compat/$(DEPDIR)/compat.Plo \
 	src/compat/$(DEPDIR)/compat_dl.Plo \
 	src/compat/$(DEPDIR)/compat_str.Plo \
 	src/libmpg123/$(DEPDIR)/calctables.Po \
@@ -2001,12 +2025,12 @@ EXTRA_DIST = src/tests/testtext.sh src/tests/decode_fixed.sh \
 	doc/ROAD_TO_LGPL doc/TODO doc/LICENSE doc/THANKS doc/ACCURACY \
 	doc/LARGEFILE doc/libmpg123_speed.txt doc/doxyhead.xhtml \
 	doc/doxyfoot.xhtml doc/doxy_examples.c doc/doxygen.conf \
-	doc/examples/mpg123_to_out123.c doc/examples/scan.c \
-	doc/examples/mpglib.c doc/examples/id3dump.c \
-	doc/examples/feedseek.c doc/examples/dump_seekindex.c \
-	doc/examples/extract_frames.c doc/examples/Makefile \
-	mpg123.spec makedll.sh windows-builds.sh equalize.dat \
-	NEWS.libmpg123 NEWS.libout123 NEWS.libsyn123 \
+	doc/windows-notes.html doc/examples/mpg123_to_out123.c \
+	doc/examples/scan.c doc/examples/mpglib.c \
+	doc/examples/id3dump.c doc/examples/feedseek.c \
+	doc/examples/dump_seekindex.c doc/examples/extract_frames.c \
+	doc/examples/Makefile mpg123.spec makedll.sh windows-builds.sh \
+	equalize.dat NEWS.libmpg123 NEWS.libout123 NEWS.libsyn123 \
 	ports/cmake/CMakeLists.txt ports/cmake/mpg123-config.cmake.in \
 	ports/cmake/cmake/search_libs.cmake \
 	ports/cmake/cmake/read_api_version.cmake \
@@ -2854,13 +2878,10 @@ src_libsyn123_libsyn123_la_SOURCES = \
   src/libsyn123/filter.c \
   src/libsyn123/sampleconv.c
 
-src_mpg123_LDADD = \
-  src/compat/libcompat.la \
-  src/libmpg123/libmpg123.la \
-  src/libout123/libout123.la \
-  src/libsyn123/libsyn123.la \
-  @PROG_LIBS@
-
+src_mpg123_LDADD = src/compat/libcompat.la src/libmpg123/libmpg123.la \
+	src/libout123/libout123.la src/libsyn123/libsyn123.la \
+	@PROG_LIBS@ $(am__append_103) $(am__append_105) \
+	$(am__append_108)
 src_mpg123_LDFLAGS = @EXEC_LT_LDFLAGS@
 src_out123_LDADD = \
   src/compat/libcompat.la \
@@ -2888,15 +2909,18 @@ src_mpg123_SOURCES = src/audio.c src/audio.h src/common.c src/common.h \
 	src/genre.c src/mpg123.c src/mpg123app.h src/metaprint.c \
 	src/metaprint.h src/local.h src/local.c src/playlist.c \
 	src/playlist.h src/streamdump.h src/streamdump.c src/term.c \
-	src/term.h src/win32_support.h $(am__append_98)
+	src/term.h src/terms.h src/win32_support.h $(am__append_98) \
+	$(am__append_99) $(am__append_100) $(am__append_101) \
+	$(am__append_102) $(am__append_104) $(am__append_106) \
+	$(am__append_107)
 
 # Replace common.h by sysutil.h!
 src_out123_SOURCES = src/sysutil.c src/sysutil.h src/common.h \
 	src/getlopt.c src/getlopt.h src/local.h src/local.c \
 	src/filters.h src/filters.c src/out123.c src/mpg123app.h \
-	src/win32_support.h $(am__append_99)
+	src/win32_support.h $(am__append_109)
 src_mpg123_id3dump_SOURCES = src/mpg123-id3dump.c src/getlopt.c \
-	src/getlopt.h $(am__append_100)
+	src/getlopt.h $(am__append_110)
 src_mpg123_strip_SOURCES = \
   src/mpg123-strip.c \
   src/getlopt.c \
@@ -3689,6 +3713,18 @@ src/playlist.$(OBJEXT): src/$(am__dirstamp) \
 src/streamdump.$(OBJEXT): src/$(am__dirstamp) \
 	src/$(DEPDIR)/$(am__dirstamp)
 src/term.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/term_posix.$(OBJEXT): src/$(am__dirstamp) \
+	src/$(DEPDIR)/$(am__dirstamp)
+src/term_win32.$(OBJEXT): src/$(am__dirstamp) \
+	src/$(DEPDIR)/$(am__dirstamp)
+src/term_none.$(OBJEXT): src/$(am__dirstamp) \
+	src/$(DEPDIR)/$(am__dirstamp)
+src/net123_exec.$(OBJEXT): src/$(am__dirstamp) \
+	src/$(DEPDIR)/$(am__dirstamp)
+src/net123_winhttp.$(OBJEXT): src/$(am__dirstamp) \
+	src/$(DEPDIR)/$(am__dirstamp)
+src/net123_wininet.$(OBJEXT): src/$(am__dirstamp) \
+	src/$(DEPDIR)/$(am__dirstamp)
 src/win32_support.$(OBJEXT): src/$(am__dirstamp) \
 	src/$(DEPDIR)/$(am__dirstamp)
 src/win32_net.$(OBJEXT): src/$(am__dirstamp) \
@@ -3815,12 +3851,18 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/mpg123-id3dump.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/mpg123-strip.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/mpg123.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/net123_exec.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/net123_winhttp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/net123_wininet.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/out123.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/playlist.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/resolver.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/streamdump.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/sysutil.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/term.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/term_none.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/term_posix.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/term_win32.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/win32_net.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/win32_support.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/compat/$(DEPDIR)/compat.Plo@am__quote@ # am--include-marker
@@ -5342,12 +5384,18 @@ distclean: distclean-am
 	-rm -f src/$(DEPDIR)/mpg123-id3dump.Po
 	-rm -f src/$(DEPDIR)/mpg123-strip.Po
 	-rm -f src/$(DEPDIR)/mpg123.Po
+	-rm -f src/$(DEPDIR)/net123_exec.Po
+	-rm -f src/$(DEPDIR)/net123_winhttp.Po
+	-rm -f src/$(DEPDIR)/net123_wininet.Po
 	-rm -f src/$(DEPDIR)/out123.Po
 	-rm -f src/$(DEPDIR)/playlist.Po
 	-rm -f src/$(DEPDIR)/resolver.Po
 	-rm -f src/$(DEPDIR)/streamdump.Po
 	-rm -f src/$(DEPDIR)/sysutil.Po
 	-rm -f src/$(DEPDIR)/term.Po
+	-rm -f src/$(DEPDIR)/term_none.Po
+	-rm -f src/$(DEPDIR)/term_posix.Po
+	-rm -f src/$(DEPDIR)/term_win32.Po
 	-rm -f src/$(DEPDIR)/win32_net.Po
 	-rm -f src/$(DEPDIR)/win32_support.Po
 	-rm -f src/compat/$(DEPDIR)/compat.Plo
@@ -5590,12 +5638,18 @@ maintainer-clean: maintainer-clean-am
 	-rm -f src/$(DEPDIR)/mpg123-id3dump.Po
 	-rm -f src/$(DEPDIR)/mpg123-strip.Po
 	-rm -f src/$(DEPDIR)/mpg123.Po
+	-rm -f src/$(DEPDIR)/net123_exec.Po
+	-rm -f src/$(DEPDIR)/net123_winhttp.Po
+	-rm -f src/$(DEPDIR)/net123_wininet.Po
 	-rm -f src/$(DEPDIR)/out123.Po
 	-rm -f src/$(DEPDIR)/playlist.Po
 	-rm -f src/$(DEPDIR)/resolver.Po
 	-rm -f src/$(DEPDIR)/streamdump.Po
 	-rm -f src/$(DEPDIR)/sysutil.Po
 	-rm -f src/$(DEPDIR)/term.Po
+	-rm -f src/$(DEPDIR)/term_none.Po
+	-rm -f src/$(DEPDIR)/term_posix.Po
+	-rm -f src/$(DEPDIR)/term_win32.Po
 	-rm -f src/$(DEPDIR)/win32_net.Po
 	-rm -f src/$(DEPDIR)/win32_support.Po
 	-rm -f src/compat/$(DEPDIR)/compat.Plo
diff --git a/NEWS b/NEWS
index 93ccde0..dd0e302 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,49 @@
+1.30.0
+------
+- build:
+-- Use dummy as default module when no other outputs are enabled. This also
+   fixes a non-module build with just the dummy (bug 333).
+-- Use CMAKE_CURRENT_SOURCE_DIR in CMake build to help nested use (bug 335).
+-- some updates for OS/2 support (fixing up stdin playing, for example)
+- mpg123:
+-- new network backend using external tools/libraries to also support HTTPS
+-- old network backend changed to use h_addr_list[0] instead of h_addr
+-- terminal control keys now case-sensitive (fixing smal/big pitch controls)
+-- additional terminal control keys for simple equalizer control (A/a for bass,
+   J/j for mids, N/n for treble, e for reset, E for printout)
+-- terminal volume control now in decibel steps and bounded to +/- 60 dB
+-- terminal control now also with audio from stdin (bug 338) via
+   /dev/tty or ctermid()
+-- terminal control also available for OS/2 and Windows platforms
+-- re-print tag info on decrease of terminal width for a bit less mess
+-- always print an empty line after tag info for cleaner appearance
+-- print lyrics also to stderr
+-- remote control API v10 with "@P 3" as additonal message on track end
+-- also added PROGRESS command as opposite of SILENCE
+-- fix some verbosity, tweak help for --icy-interval
+-- added --auth-file
+-- also obscure argument to --auth for others
+-- Cygwin/MinGW: Provide _win32_utf8_wide and _win32_wide_utf8 unconditionally.
+   It is needed by the WASAPI plugins, the underlying conversion functions
+   should be present since Windows 2000. Fixes WASAPI support on Cygwin.
+   Also needed for new network code.
+- libout123:
+-- pulse: initialize more error codes to avoid bogus error messages
+-- os2: considerable fixup for proper writes of full buffers avoiding
+   nasty effects from the ... special audio system, more cleanup still
+   nice-to-have, but still lacking
+
+1.29.4
+------
+- libmpg123:
+-- Saturate reader file position at off_t limit to satisfy
+   undefined behaviour checkers.
+-- Avoid harmless unitialized value in ID3v1 check (filepos, later being
+   set before actual use).
+- libout123:
+-- Build fix for win32_wasapi output for predefined _WIN32_WINNT (bug 329),
+   thanks to Vincent Torri.
+
 1.29.3
 ------
 - libmpg123: Catch more NULL pointer arguments in LFS wrappers
diff --git a/NEWS.libmpg123 b/NEWS.libmpg123
index dd66905..32ddf68 100644
--- a/NEWS.libmpg123
+++ b/NEWS.libmpg123
@@ -1,5 +1,7 @@
 Changes in libmpg123 libtool interface versions...
 
+47.0.47 - Added mpg123_eq_bands(), mpg123_eq_change() and mpg123_volume_change_db().
+
 46.0.46
 	- Functions mpg123_init() and mpg123_exit() are really no-ops now.
 	  There is no need to call them, and no harm done calling them in
diff --git a/configure b/configure
index d3404be..db3d7f4 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mpg123 1.29.3.
+# Generated by GNU Autoconf 2.69 for mpg123 1.30.0.
 #
 # Report bugs to <maintainer@mpg123.org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='mpg123'
 PACKAGE_TARNAME='mpg123'
-PACKAGE_VERSION='1.29.3'
-PACKAGE_STRING='mpg123 1.29.3'
+PACKAGE_VERSION='1.30.0'
+PACKAGE_STRING='mpg123 1.30.0'
 PACKAGE_BUGREPORT='maintainer@mpg123.org'
 PACKAGE_URL=''
 
@@ -641,6 +641,20 @@ LIBOUT123_LIBS
 LIBSYN123_LIBS
 LIBMPG123_LIBS
 PROG_LIBS
+TERM_WIN32_FALSE
+TERM_WIN32_TRUE
+TERM_NONE_FALSE
+TERM_NONE_TRUE
+TERM_POSIX_FALSE
+TERM_POSIX_TRUE
+NET123_WININET_FALSE
+NET123_WININET_TRUE
+NET123_WINHTTP_FALSE
+NET123_WINHTTP_TRUE
+NET123_EXEC_FALSE
+NET123_EXEC_TRUE
+NETWORK_WINSOCK_FALSE
+NETWORK_WINSOCK_TRUE
 WIN32_CODES_FALSE
 WIN32_CODES_TRUE
 BUILD_BUFFER_FALSE
@@ -1060,8 +1074,6 @@ enable_xdebug
 enable_nagging
 enable_gapless
 enable_fifo
-enable_ipv6
-enable_network
 enable_id3v2
 enable_string
 enable_icy
@@ -1094,6 +1106,9 @@ with_seektable
 enable_largefile
 enable_lfs_alias
 enable_feature_report
+enable_ipv6
+enable_network
+with_network
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1668,7 +1683,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.29.3 to adapt to many kinds of systems.
+\`configure' configures mpg123 1.30.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1739,7 +1754,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of mpg123 1.29.3:";;
+     short | recursive ) echo "Configuration of mpg123 1.30.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1764,8 +1779,6 @@ Optional Features:
   --enable-nagging=no/yes turn on GCC's pedantic nagging with error on warnings, does not include --enable-debug anymore
   --enable-gapless=no/yes turn on gapless (enabled per default)
   --enable-fifo=no/yes FIFO support for control interface (auto-enabled on linux)
-  --enable-ipv6=no/yes IPv6 support (actually any protocol your libc does with getaddrinfo)
-  --enable-network=no/yes network support (http streams / webradio)
   --disable-id3v2=no/yes no ID3v2 parsing
   --disable-string=no/yes no string API (this will disable ID3v2; main mpg123 won't build anymore)
   --disable-icy=no/yes no ICY metainfo parsing/conversion (main mpg123 won't build!)
@@ -1793,6 +1806,8 @@ Optional Features:
   --disable-largefile     omit support for large files
   --disable-lfs-alias disable alias wrappers for largefile bitness (mpg123_seek_32 or mpg123_seek_64 in addition to mpg123_seek, or the other way around; It is a mess, do not play with this!)
   --disable-feature_report Disable feature report function
+  --enable-ipv6=no/yes IPv6 support in internal network stack
+  --enable-network=no/yes network support (http streams / webradio), if available (overruled by --with-network!)
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -1875,6 +1890,9 @@ Optional Packages:
 
   --with-seektable=<size> choose size of seek index table (0 disables it), default 1000
 
+  --with-network=<type>   Available options, depending on platform, are auto,
+                          none, internal, winhttp, wininet, and exec (wget or
+                          curl binaries).
 
 Some influential environment variables:
   CC          C compiler command
@@ -1970,7 +1988,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-mpg123 configure 1.29.3
+mpg123 configure 1.30.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2576,7 +2594,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.29.3, which was
+It was created by mpg123 $as_me 1.30.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2925,11 +2943,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-API_VERSION=46
-LIB_PATCHLEVEL=7
+API_VERSION=47
+LIB_PATCHLEVEL=0
 
 OUTAPI_VERSION=4
-OUTLIB_PATCHLEVEL=3
+OUTLIB_PATCHLEVEL=4
 
 SYNAPI_VERSION=1
 SYNLIB_PATCHLEVEL=4
@@ -3535,7 +3553,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='mpg123'
- VERSION='1.29.3'
+ VERSION='1.30.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14401,42 +14419,6 @@ else
 fi
 
 
-# Check whether --enable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then :
-  enableval=$enable_ipv6;
-                if test "x$enableval" = xyes
-                then
-                  ipv6="enabled"
-                else
-                  ipv6="disabled"
-                fi
-
-else
-
-                ipv6="auto"
-
-
-fi
-
-
-# Check whether --enable-network was given.
-if test "${enable_network+set}" = set; then :
-  enableval=$enable_network;
-                if test "x$enableval" = xyes
-                then
-                  network="enabled"
-                else
-                  network="disabled"
-                fi
-
-else
-
-                network="auto"
-
-
-fi
-
-
 
 
 id3v2=enabled
@@ -16039,6 +16021,7 @@ done
 
 fi
 
+term_type=none
 # Check if system supports termios
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking POSIX termios" >&5
 $as_echo_n "checking POSIX termios... " >&6; }
@@ -16077,6 +16060,7 @@ cat >>confdefs.h <<_ACEOF
 #define HAVE_TERMIOS 1
 _ACEOF
 
+  term_type=posix
 fi
 
 for ac_func in random
@@ -16173,6 +16157,77 @@ fi
 done
 
 
+for ac_func in fork execvp
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+  have_fork=yes
+else
+  have_fork=no; break
+fi
+done
+
+
+for ac_func in ctermid
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+#AC_CHECK_FUNCS( _setmode setmode )
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <io.h>
+#include <fcntl.h>
+#include <stdio.h>
+
+int main()
+{
+  _setmode(STDIN_FILENO, _O_BINARY);
+  _setmode(STDOUT_FILENO, _O_TEXT);
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "#define HAVE__SETMODE 1" >>confdefs.h
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <io.h>
+#include <fcntl.h>
+#include <stdio.h>
+
+int main()
+{
+  setmode(STDIN_FILENO, O_BINARY);
+  setmode(STDOUT_FILENO, O_TEXT);
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "#define HAVE_SETMODE 1" >>confdefs.h
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
 
 # locale headers
 for ac_header in locale.h langinfo.h wchar.h wctype.h
@@ -16189,7 +16244,7 @@ fi
 done
 
 # Headers for network (http) stuff
-network_type=Unknown
+network_internal=unknown
 for ac_header in netdb.h sys/param.h sys/socket.h netinet/in.h arpa/inet.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -16209,7 +16264,7 @@ if test "x$ac_cv_header_netdb_h" = "xyes"      &&
    test "x$ac_cv_header_netinet_in_h" = "xyes" &&
    test "x$ac_cv_header_arpa_inet_h"  = "xyes"; then
   have_network=yes
-  network_type=Posix
+  network_internal=posix
 else
   have_network=no
 fi
@@ -16494,54 +16549,20 @@ ADD_CPPFLAGS="$sys_cppflags"
 ADD_LDFLAGS=""
 LIBS="$LIBS"
 
-# Consider moving that stuff.
-ac_fn_c_check_header_mongrel "$LINENO" "os2.h" "ac_cv_header_os2_h" "$ac_includes_default"
+# Remove that if it is settled that tcsetattr on OS/2 is unsalvageable anyway.
+# The only user of os2.h is the output module.
+for ac_header in os2.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "os2.h" "ac_cv_header_os2_h" "$ac_includes_default"
 if test "x$ac_cv_header_os2_h" = xyes; then :
-  ADD_CPPFLAGS="$ADD_CPPFLAGS -DOS2"
-fi
-
-
-# On OS/2, we need to link to os2term to make terminal control actually work.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcsetattr in -los2term" >&5
-$as_echo_n "checking for tcsetattr in -los2term... " >&6; }
-if ${ac_cv_lib_os2term_tcsetattr+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-los2term  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char tcsetattr ();
-int
-main ()
-{
-return tcsetattr ();
-  ;
-  return 0;
-}
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_OS2_H 1
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_os2term_tcsetattr=yes
-else
-  ac_cv_lib_os2term_tcsetattr=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_os2term_tcsetattr" >&5
-$as_echo "$ac_cv_lib_os2term_tcsetattr" >&6; }
-if test "x$ac_cv_lib_os2term_tcsetattr" = xyes; then :
-  ADD_LDFLAGS="$ADD_LDFLAGS -los2term"
+
 fi
 
+done
+
 
 # If debugging is enabled, just enable debugging symbols.
 # All other stuff enters nagging territory.
@@ -17047,7 +17068,10 @@ output_modules=
 check_forced=no
 check_failed=no
 if test "x$with_audio" != "x"; then
-	check_modules="`echo $with_audio|tr , ' '` dummy"
+	check_modules=`echo $with_audio|tr , ' '`
+	if ! echo "$check_modules" | grep -qw dummy; then
+		check_modules="$check_modules dummy"
+	fi
 	echo "Limiting outputs to build according to your preference: $check_modules"
 	check_forced=yes
 fi
@@ -18298,6 +18322,9 @@ done
 		;;
 		os2)
 			OS2_LIBS="-lcx -lmmpm2"
+			OS2_CFLAGS="-idirafter /@unixroot/usr/include/os2tk45"
+			oldcflags="$CFLAGS"
+			CFLAGS="$CFLAGS $OS2_CFLAGS"
 			for ac_header in os2.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "os2.h" "ac_cv_header_os2_h" "$ac_includes_default"
@@ -18319,6 +18346,7 @@ done
 				for ac_header in os2me.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "os2me.h" "ac_cv_header_os2me_h" "#define INCL_OS2MM
+#undef VERSION
 #define INCL_DOS
 #define INCL_VIO
 #define INCL_KBD
@@ -18343,6 +18371,7 @@ done
 			else
 				check_failed=yes
 			fi
+			CFLAGS="$oldcflags"
 		;;
 # from here on only forced tests, untested code

(Patch may be truncated, please check the link at the top of this post.)