[Pkg-mpd-commits] [pkg-mpd] 01/07: Imported Upstream version 0.18.14

Florian Schlichting fsfs at moszumanska.debian.org
Thu Sep 11 19:55:31 UTC 2014


This is an automated email from the git hooks/post-receive script.

fsfs pushed a commit to branch master
in repository pkg-mpd.

commit db3f34040ea56a45c8e0b2f8dcefad71fb5b54fb
Author: Florian Schlichting <fsfs at debian.org>
Date:   Thu Sep 11 21:15:44 2014 +0200

    Imported Upstream version 0.18.14
---
 Makefile.am                            | 11 +++++
 Makefile.in                            | 79 +++++++++++++++++++++++++++++++---
 NEWS                                   |  8 ++++
 configure                              | 20 ++++-----
 configure.ac                           |  2 +-
 doc/doxygen.conf                       |  2 +-
 src/DecoderAPI.cxx                     |  4 ++
 src/DecoderInternal.cxx                |  3 ++
 src/DecoderThread.cxx                  | 12 +++++-
 src/decoder/AudiofileDecoderPlugin.cxx |  2 +-
 src/decoder/FfmpegDecoderPlugin.cxx    | 13 ++++++
 src/protocol/ArgParser.cxx             |  4 +-
 test/run_decoder.cxx                   |  4 +-
 test/test_protocol.cxx                 | 60 ++++++++++++++++++++++++++
 14 files changed, 202 insertions(+), 22 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 6a5e9fb..147a15b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1064,6 +1064,7 @@ C_TESTS = \
 	test/test_mixramp \
 	test/test_icy_parser \
 	test/test_pcm \
+	test/test_protocol \
 	test/test_queue_priority
 
 if ENABLE_ARCHIVE
@@ -1538,6 +1539,16 @@ test_test_archive_LDADD = \
 	$(GLIB_LIBS) \
 	$(CPPUNIT_LIBS)
 
+test_test_protocol_SOURCES = \
+	src/protocol/ArgParser.cxx \
+	test/test_protocol.cxx
+test_test_protocol_CPPFLAGS = $(AM_CPPFLAGS) $(CPPUNIT_CFLAGS) -DCPPUNIT_HAVE_RTTI=0
+test_test_protocol_CXXFLAGS = $(AM_CXXFLAGS) -Wno-error=deprecated-declarations
+test_test_protocol_LDADD = \
+	libsystem.a \
+	libutil.a \
+	$(CPPUNIT_LIBS)
+
 test_test_queue_priority_SOURCES = \
 	src/Queue.cxx \
 	test/test_queue_priority.cxx
diff --git a/Makefile.in b/Makefile.in
index 08cf916..ada8215 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -895,6 +895,7 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
 @ENABLE_TEST_TRUE@	test/test_mixramp$(EXEEXT) \
 @ENABLE_TEST_TRUE@	test/test_icy_parser$(EXEEXT) \
 @ENABLE_TEST_TRUE@	test/test_pcm$(EXEEXT) \
+ at ENABLE_TEST_TRUE@	test/test_protocol$(EXEEXT) \
 @ENABLE_TEST_TRUE@	test/test_queue_priority$(EXEEXT) \
 @ENABLE_TEST_TRUE@	$(am__EXEEXT_1)
 @ENABLE_TEST_TRUE@@HAVE_AVAHI_TRUE at am__EXEEXT_3 =  \
@@ -1575,6 +1576,15 @@ test_test_pcm_OBJECTS = $(am_test_test_pcm_OBJECTS)
 @ENABLE_TEST_TRUE@	$(am__DEPENDENCIES_1)
 test_test_pcm_LINK = $(CXXLD) $(test_test_pcm_CXXFLAGS) $(CXXFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__test_test_protocol_SOURCES_DIST = src/protocol/ArgParser.cxx \
+	test/test_protocol.cxx
+ at ENABLE_TEST_TRUE@am_test_test_protocol_OBJECTS = src/protocol/test_test_protocol-ArgParser.$(OBJEXT) \
+ at ENABLE_TEST_TRUE@	test/test_test_protocol-test_protocol.$(OBJEXT)
+test_test_protocol_OBJECTS = $(am_test_test_protocol_OBJECTS)
+ at ENABLE_TEST_TRUE@test_test_protocol_DEPENDENCIES = libsystem.a \
+ at ENABLE_TEST_TRUE@	libutil.a $(am__DEPENDENCIES_1)
+test_test_protocol_LINK = $(CXXLD) $(test_test_protocol_CXXFLAGS) \
+	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 am__test_test_queue_priority_SOURCES_DIST = src/Queue.cxx \
 	test/test_queue_priority.cxx
 @ENABLE_TEST_TRUE at am_test_test_queue_priority_OBJECTS = src/test_test_queue_priority-Queue.$(OBJEXT) \
@@ -1698,8 +1708,9 @@ SOURCES = $(libarchive_a_SOURCES) $(libconf_a_SOURCES) \
 	$(test_run_resolver_SOURCES) $(test_software_volume_SOURCES) \
 	$(test_test_archive_SOURCES) $(test_test_byte_reverse_SOURCES) \
 	$(test_test_icy_parser_SOURCES) $(test_test_mixramp_SOURCES) \
-	$(test_test_pcm_SOURCES) $(test_test_queue_priority_SOURCES) \
-	$(test_test_util_SOURCES) $(test_test_vorbis_encoder_SOURCES) \
+	$(test_test_pcm_SOURCES) $(test_test_protocol_SOURCES) \
+	$(test_test_queue_priority_SOURCES) $(test_test_util_SOURCES) \
+	$(test_test_vorbis_encoder_SOURCES) \
 	$(test_visit_archive_SOURCES)
 DIST_SOURCES = $(am__libarchive_a_SOURCES_DIST) $(libconf_a_SOURCES) \
 	$(am__libdb_plugins_a_SOURCES_DIST) \
@@ -1739,6 +1750,7 @@ DIST_SOURCES = $(am__libarchive_a_SOURCES_DIST) $(libconf_a_SOURCES) \
 	$(am__test_test_icy_parser_SOURCES_DIST) \
 	$(am__test_test_mixramp_SOURCES_DIST) \
 	$(am__test_test_pcm_SOURCES_DIST) \
+	$(am__test_test_protocol_SOURCES_DIST) \
 	$(am__test_test_queue_priority_SOURCES_DIST) \
 	$(am__test_test_util_SOURCES_DIST) \
 	$(am__test_test_vorbis_encoder_SOURCES_DIST) \
@@ -2783,8 +2795,8 @@ SPARSE_SRC = $(addprefix $(top_srcdir)/,$(filter %.c,$(src_mpd_SOURCES)))
 #
 @ENABLE_TEST_TRUE at C_TESTS = test/test_util test/test_byte_reverse \
 @ENABLE_TEST_TRUE@	test/test_mixramp test/test_icy_parser \
- at ENABLE_TEST_TRUE@	test/test_pcm test/test_queue_priority \
- at ENABLE_TEST_TRUE@	$(am__append_71)
+ at ENABLE_TEST_TRUE@	test/test_pcm test/test_protocol \
+ at ENABLE_TEST_TRUE@	test/test_queue_priority $(am__append_71)
 @ENABLE_TEST_TRUE at test_read_conf_LDADD = \
 @ENABLE_TEST_TRUE@	libconf.a \
 @ENABLE_TEST_TRUE@	libutil.a \
@@ -3186,6 +3198,17 @@ SPARSE_SRC = $(addprefix $(top_srcdir)/,$(filter %.c,$(src_mpd_SOURCES)))
 @ENABLE_TEST_TRUE@	$(GLIB_LIBS) \
 @ENABLE_TEST_TRUE@	$(CPPUNIT_LIBS)
 
+ at ENABLE_TEST_TRUE@test_test_protocol_SOURCES = \
+ at ENABLE_TEST_TRUE@	src/protocol/ArgParser.cxx \
+ at ENABLE_TEST_TRUE@	test/test_protocol.cxx
+
+ at ENABLE_TEST_TRUE@test_test_protocol_CPPFLAGS = $(AM_CPPFLAGS) $(CPPUNIT_CFLAGS) -DCPPUNIT_HAVE_RTTI=0
+ at ENABLE_TEST_TRUE@test_test_protocol_CXXFLAGS = $(AM_CXXFLAGS) -Wno-error=deprecated-declarations
+ at ENABLE_TEST_TRUE@test_test_protocol_LDADD = \
+ at ENABLE_TEST_TRUE@	libsystem.a \
+ at ENABLE_TEST_TRUE@	libutil.a \
+ at ENABLE_TEST_TRUE@	$(CPPUNIT_LIBS)
+
 @ENABLE_TEST_TRUE at test_test_queue_priority_SOURCES = \
 @ENABLE_TEST_TRUE@	src/Queue.cxx \
 @ENABLE_TEST_TRUE@	test/test_queue_priority.cxx
@@ -4627,6 +4650,15 @@ test/test_test_pcm-test_pcm_main.$(OBJEXT): test/$(am__dirstamp) \
 test/test_pcm$(EXEEXT): $(test_test_pcm_OBJECTS) $(test_test_pcm_DEPENDENCIES) $(EXTRA_test_test_pcm_DEPENDENCIES) test/$(am__dirstamp)
 	@rm -f test/test_pcm$(EXEEXT)
 	$(AM_V_CXXLD)$(test_test_pcm_LINK) $(test_test_pcm_OBJECTS) $(test_test_pcm_LDADD) $(LIBS)
+src/protocol/test_test_protocol-ArgParser.$(OBJEXT):  \
+	src/protocol/$(am__dirstamp) \
+	src/protocol/$(DEPDIR)/$(am__dirstamp)
+test/test_test_protocol-test_protocol.$(OBJEXT): test/$(am__dirstamp) \
+	test/$(DEPDIR)/$(am__dirstamp)
+
+test/test_protocol$(EXEEXT): $(test_test_protocol_OBJECTS) $(test_test_protocol_DEPENDENCIES) $(EXTRA_test_test_protocol_DEPENDENCIES) test/$(am__dirstamp)
+	@rm -f test/test_protocol$(EXEEXT)
+	$(AM_V_CXXLD)$(test_test_protocol_LINK) $(test_test_protocol_OBJECTS) $(test_test_protocol_LDADD) $(LIBS)
 src/test_test_queue_priority-Queue.$(OBJEXT): src/$(am__dirstamp) \
 	src/$(DEPDIR)/$(am__dirstamp)
 test/test_test_queue_priority-test_queue_priority.$(OBJEXT):  \
@@ -5057,6 +5089,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at src/protocol/$(DEPDIR)/src_mpd-Ack.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at src/protocol/$(DEPDIR)/src_mpd-ArgParser.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at src/protocol/$(DEPDIR)/src_mpd-Result.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/protocol/$(DEPDIR)/test_test_protocol-ArgParser.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at src/system/$(DEPDIR)/Clock.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at src/system/$(DEPDIR)/EPollFD.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at src/system/$(DEPDIR)/EventFD.Po at am__quote@
@@ -5131,6 +5164,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at test/$(DEPDIR)/test_test_pcm-test_pcm_mix.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at test/$(DEPDIR)/test_test_pcm-test_pcm_pack.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at test/$(DEPDIR)/test_test_pcm-test_pcm_volume.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at test/$(DEPDIR)/test_test_protocol-test_protocol.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at test/$(DEPDIR)/test_test_queue_priority-test_queue_priority.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at test/$(DEPDIR)/test_test_util-test_util.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at test/$(DEPDIR)/test_test_vorbis_encoder-test_vorbis_encoder.Po at am__quote@
@@ -9452,6 +9486,34 @@ test/test_test_pcm-test_pcm_main.obj: test/test_pcm_main.cxx
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_pcm_CPPFLAGS) $(CPPFLAGS) $(test_test_pcm_CXXFLAGS) $(CXXFLAGS) -c -o test/test_test_pcm-test_pcm_main.obj `if test -f 'test/test_pcm_main.cxx'; then $(CYGPATH_W) 'test/test_pcm_main.cxx'; else $(CYGPATH_W) '$(srcdir)/test/test_pcm_main.cxx'; fi`
 
+src/protocol/test_test_protocol-ArgParser.o: src/protocol/ArgParser.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_protocol_CPPFLAGS) $(CPPFLAGS) $(test_test_protocol_CXXFLAGS) $(CXXFLAGS) -MT src/protocol/test_test_protocol-ArgParser.o -MD -MP -MF src/protocol/$(DEPDIR)/test_test_protocol-ArgParser.Tpo -c -o src/protocol/test_test_protocol-ArgParser.o `test -f 'src/protocol/ArgParser.cxx' || echo '$(srcdir)/'`src/protocol/ArgParser.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/protocol/$(DEPDIR)/test_test_protocol-ArgParser.Tpo src/protocol/$(DEPDIR)/test_test_protocol-ArgParser.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/protocol/ArgParser.cxx' object='src/protocol/test_test_protocol-ArgParser.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_protocol_CPPFLAGS) $(CPPFLAGS) $(test_test_protocol_CXXFLAGS) $(CXXFLAGS) -c -o src/protocol/test_test_protocol-ArgParser.o `test -f 'src/protocol/ArgParser.cxx' || echo '$(srcdir)/'`src/protocol/ArgParser.cxx
+
+src/protocol/test_test_protocol-ArgParser.obj: src/protocol/ArgParser.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_protocol_CPPFLAGS) $(CPPFLAGS) $(test_test_protocol_CXXFLAGS) $(CXXFLAGS) -MT src/protocol/test_test_protocol-ArgParser.obj -MD -MP -MF src/protocol/$(DEPDIR)/test_test_protocol-ArgParser.Tpo -c -o src/protocol/test_test_protocol-ArgParser.obj `if test -f 'src/protocol/ArgParser.cxx'; then $(CYGPATH_W) 'src/protocol/ArgParser.cxx'; else $(CYGPATH_W) '$(srcdir)/src/protocol/ArgParser.cxx'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/protocol/$(DEPDIR)/test_test_protocol-ArgParser.Tpo src/protocol/$(DEPDIR)/test_test_protocol-ArgParser.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/protocol/ArgParser.cxx' object='src/protocol/test_test_protocol-ArgParser.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_protocol_CPPFLAGS) $(CPPFLAGS) $(test_test_protocol_CXXFLAGS) $(CXXFLAGS) -c -o src/protocol/test_test_protocol-ArgParser.obj `if test -f 'src/protocol/ArgParser.cxx'; then $(CYGPATH_W) 'src/protocol/ArgParser.cxx'; else $(CYGPATH_W) '$(srcdir)/src/protocol/ArgParser.cxx'; fi`
+
+test/test_test_protocol-test_protocol.o: test/test_protocol.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_protocol_CPPFLAGS) $(CPPFLAGS) $(test_test_protocol_CXXFLAGS) $(CXXFLAGS) -MT test/test_test_protocol-test_protocol.o -MD -MP -MF test/$(DEPDIR)/test_test_protocol-test_protocol.Tpo -c -o test/test_test_protocol-test_protocol.o `test -f 'test/test_protocol.cxx' || echo '$(srcdir)/'`test/test_protocol.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) test/$(DEPDIR)/test_test_protocol-test_protocol.Tpo test/$(DEPDIR)/test_test_protocol-test_protocol.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='test/test_protocol.cxx' object='test/test_test_protocol-test_protocol.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_protocol_CPPFLAGS) $(CPPFLAGS) $(test_test_protocol_CXXFLAGS) $(CXXFLAGS) -c -o test/test_test_protocol-test_protocol.o `test -f 'test/test_protocol.cxx' || echo '$(srcdir)/'`test/test_protocol.cxx
+
+test/test_test_protocol-test_protocol.obj: test/test_protocol.cxx
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_protocol_CPPFLAGS) $(CPPFLAGS) $(test_test_protocol_CXXFLAGS) $(CXXFLAGS) -MT test/test_test_protocol-test_protocol.obj -MD -MP -MF test/$(DEPDIR)/test_test_protocol-test_protocol.Tpo -c -o test/test_test_protocol-test_protocol.obj `if test -f 'test/test_protocol.cxx'; then $(CYGPATH_W) 'test/test_protocol.cxx'; else $(CYGPATH_W) '$(srcdir)/test/test_protocol.cxx'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) test/$(DEPDIR)/test_test_protocol-test_protocol.Tpo test/$(DEPDIR)/test_test_protocol-test_protocol.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='test/test_protocol.cxx' object='test/test_test_protocol-test_protocol.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_protocol_CPPFLAGS) $(CPPFLAGS) $(test_test_protocol_CXXFLAGS) $(CXXFLAGS) -c -o test/test_test_protocol-test_protocol.obj `if test -f 'test/test_protocol.cxx'; then $(CYGPATH_W) 'test/test_protocol.cxx'; else $(CYGPATH_W) '$(srcdir)/test/test_protocol.cxx'; fi`
+
 src/test_test_queue_priority-Queue.o: src/Queue.cxx
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_test_queue_priority_CPPFLAGS) $(CPPFLAGS) $(test_test_queue_priority_CXXFLAGS) $(CXXFLAGS) -MT src/test_test_queue_priority-Queue.o -MD -MP -MF src/$(DEPDIR)/test_test_queue_priority-Queue.Tpo -c -o src/test_test_queue_priority-Queue.o `test -f 'src/Queue.cxx' || echo '$(srcdir)/'`src/Queue.cxx
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/$(DEPDIR)/test_test_queue_priority-Queue.Tpo src/$(DEPDIR)/test_test_queue_priority-Queue.Po
@@ -10006,6 +10068,13 @@ test/test_pcm.log: test/test_pcm$(EXEEXT)
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+test/test_protocol.log: test/test_protocol$(EXEEXT)
+	@p='test/test_protocol$(EXEEXT)'; \
+	b='test/test_protocol'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
 test/test_queue_priority.log: test/test_queue_priority$(EXEEXT)
 	@p='test/test_queue_priority$(EXEEXT)'; \
 	b='test/test_queue_priority'; \
@@ -10310,8 +10379,8 @@ maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
 @ENABLE_DOCUMENTATION_FALSE at uninstall-local:
- at ENABLE_DOCUMENTATION_FALSE@install-data-local:
 @ENABLE_DOCUMENTATION_FALSE at clean-local:
+ at ENABLE_DOCUMENTATION_FALSE@install-data-local:
 clean: clean-am
 
 clean-am: clean-binPROGRAMS clean-generic clean-local \
diff --git a/NEWS b/NEWS
index 59c5687..89d8330 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+ver 0.18.14 (2014/09/11)
+* protocol
+  - fix range parser bug on certain 32 bit architectures
+* decoder
+  - audiofile: fix crash after seeking
+  - ffmpeg: fix crash with ffmpeg/libav version 11
+  - fix assertion failure after seeking
+
 ver 0.18.13 (2014/08/31)
 * protocol
   - don't change song on "seekcur" in random mode
diff --git a/configure b/configure
index 3297f92..ffa463e 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 mpd 0.18.13.
+# Generated by GNU Autoconf 2.69 for mpd 0.18.14.
 #
 # Report bugs to <mpd-devel at musicpd.org>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='mpd'
 PACKAGE_TARNAME='mpd'
-PACKAGE_VERSION='0.18.13'
-PACKAGE_STRING='mpd 0.18.13'
+PACKAGE_VERSION='0.18.14'
+PACKAGE_STRING='mpd 0.18.14'
 PACKAGE_BUGREPORT='mpd-devel at musicpd.org'
 PACKAGE_URL=''
 
@@ -1673,7 +1673,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 mpd 0.18.13 to adapt to many kinds of systems.
+\`configure' configures mpd 0.18.14 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1743,7 +1743,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of mpd 0.18.13:";;
+     short | recursive ) echo "Configuration of mpd 0.18.14:";;
    esac
   cat <<\_ACEOF
 
@@ -2041,7 +2041,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-mpd configure 0.18.13
+mpd configure 0.18.14
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2494,7 +2494,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 mpd $as_me 0.18.13, which was
+It was created by mpd $as_me 0.18.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3364,7 +3364,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='mpd'
- VERSION='0.18.13'
+ VERSION='0.18.14'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -18461,7 +18461,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by mpd $as_me 0.18.13, which was
+This file was extended by mpd $as_me 0.18.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18527,7 +18527,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-mpd config.status 0.18.13
+mpd config.status 0.18.14
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 526b4c7..a81b0af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 AC_PREREQ(2.60)
 
-AC_INIT(mpd, 0.18.13, mpd-devel at musicpd.org)
+AC_INIT(mpd, 0.18.14, mpd-devel at musicpd.org)
 
 VERSION_MAJOR=0
 VERSION_MINOR=18
diff --git a/doc/doxygen.conf b/doc/doxygen.conf
index c3a6da5..ce822ff 100644
--- a/doc/doxygen.conf
+++ b/doc/doxygen.conf
@@ -31,7 +31,7 @@ PROJECT_NAME           = MPD
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
-PROJECT_NUMBER = 0.18.13
+PROJECT_NUMBER = 0.18.14
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
 # base path where the generated documentation will be put.
diff --git a/src/DecoderAPI.cxx b/src/DecoderAPI.cxx
index e4122d6..334d069 100644
--- a/src/DecoderAPI.cxx
+++ b/src/DecoderAPI.cxx
@@ -47,6 +47,7 @@ decoder_initialized(Decoder &decoder,
 
 	assert(dc.state == DecoderState::START);
 	assert(dc.pipe != nullptr);
+	assert(dc.pipe->IsEmpty());
 	assert(decoder.stream_tag == nullptr);
 	assert(decoder.decoder_tag == nullptr);
 	assert(!decoder.seeking);
@@ -405,6 +406,9 @@ decoder_data(Decoder &decoder,
 	    length == 0)
 		return cmd;
 
+	assert(!decoder.initial_seek_pending);
+	assert(!decoder.initial_seek_running);
+
 	/* send stream tags */
 
 	if (update_stream_tag(decoder, is)) {
diff --git a/src/DecoderInternal.cxx b/src/DecoderInternal.cxx
index d5f40ad..b5e6c9d 100644
--- a/src/DecoderInternal.cxx
+++ b/src/DecoderInternal.cxx
@@ -83,6 +83,9 @@ void
 decoder_flush_chunk(Decoder &decoder)
 {
 	DecoderControl &dc = decoder.dc;
+	assert(!decoder.seeking);
+	assert(!decoder.initial_seek_running);
+	assert(!decoder.initial_seek_pending);
 
 	assert(decoder.chunk != nullptr);
 
diff --git a/src/DecoderThread.cxx b/src/DecoderThread.cxx
index 72fc3cf..cf21534 100644
--- a/src/DecoderThread.cxx
+++ b/src/DecoderThread.cxx
@@ -26,6 +26,7 @@
 #include "Song.hxx"
 #include "system/FatalError.hxx"
 #include "Mapper.hxx"
+#include "MusicPipe.hxx"
 #include "fs/Traits.hxx"
 #include "fs/AllocatedPath.hxx"
 #include "DecoderAPI.hxx"
@@ -418,9 +419,18 @@ decoder_task(void *arg)
 			dc.replay_gain_prev_db = dc.replay_gain_db;
 			dc.replay_gain_db = 0;
 
-			/* fall through */
+			decoder_run(dc);
+			break;
 
 		case DecoderCommand::SEEK:
+			/* this seek was too late, and the decoder had
+			   already finished; start a new decoder */
+
+			/* we need to clear the pipe here; usually the
+			   PlayerThread is responsible, but it is not
+			   aware that the decoder has finished */
+			dc.pipe->Clear(*dc.buffer);
+
 			decoder_run(dc);
 			break;
 
diff --git a/src/decoder/AudiofileDecoderPlugin.cxx b/src/decoder/AudiofileDecoderPlugin.cxx
index 9f097f9..b1b8bf6 100644
--- a/src/decoder/AudiofileDecoderPlugin.cxx
+++ b/src/decoder/AudiofileDecoderPlugin.cxx
@@ -110,9 +110,9 @@ audiofile_file_seek(AFvirtualfile *vfile, AFfileoffset offset, int is_relative)
 
 	Error error;
 	if (is.LockSeek(offset, whence, error)) {
-		LogError(error, "Seek failed");
 		return is.GetOffset();
 	} else {
+		LogError(error, "Seek failed");
 		return -1;
 	}
 }
diff --git a/src/decoder/FfmpegDecoderPlugin.cxx b/src/decoder/FfmpegDecoderPlugin.cxx
index 5133f91..9cd26c4 100644
--- a/src/decoder/FfmpegDecoderPlugin.cxx
+++ b/src/decoder/FfmpegDecoderPlugin.cxx
@@ -383,10 +383,23 @@ ffmpeg_probe(Decoder *decoder, InputStream &is)
 	nbytes -= PADDING;
 
 	AVProbeData avpd;
+
+	/* new versions of ffmpeg may add new attributes, and leaving
+	   them uninitialized may crash; hopefully, zero-initializing
+	   everything we don't know is ok */
+	memset(&avpd, 0, sizeof(avpd));
+
 	avpd.buf = buffer;
 	avpd.buf_size = nbytes;
 	avpd.filename = is.uri.c_str();
 
+#ifdef AVPROBE_SCORE_MIME
+	/* this attribute was added in libav/ffmpeg version 11, but
+	   unfortunately it's "uint8_t" instead of "char", and it's
+	   not "const" - wtf? */
+	avpd.mime_type = (uint8_t *)const_cast<char *>(is.GetMimeType());
+#endif
+
 	return av_probe_input_format(&avpd, true);
 }
 
diff --git a/src/protocol/ArgParser.cxx b/src/protocol/ArgParser.cxx
index b13ea3f..86527c7 100644
--- a/src/protocol/ArgParser.cxx
+++ b/src/protocol/ArgParser.cxx
@@ -81,7 +81,7 @@ check_range(Client &client, unsigned *value_r1, unsigned *value_r2,
 		/* compatibility with older MPD versions: specifying
 		   "-1" makes MPD display the whole list */
 		*value_r1 = 0;
-		*value_r2 = std::numeric_limits<unsigned>::max();
+		*value_r2 = std::numeric_limits<int>::max();
 		return true;
 	}
 
@@ -108,7 +108,7 @@ check_range(Client &client, unsigned *value_r1, unsigned *value_r2,
 		}
 
 		if (test == test2)
-			value = std::numeric_limits<unsigned>::max();
+			value = std::numeric_limits<int>::max();
 
 		if (value < 0) {
 			command_error(client, ACK_ERROR_ARG,
diff --git a/test/run_decoder.cxx b/test/run_decoder.cxx
index 7db8dde..3fbfc55 100644
--- a/test/run_decoder.cxx
+++ b/test/run_decoder.cxx
@@ -175,8 +175,10 @@ decoder_replay_gain(gcc_unused Decoder &decoder,
 }
 
 void
-decoder_mixramp(gcc_unused Decoder &decoder, gcc_unused MixRampInfo &&mix_ramp)
+decoder_mixramp(gcc_unused Decoder &decoder, MixRampInfo &&mix_ramp)
 {
+	fprintf(stderr, "MixRamp: start='%s' end='%s'\n",
+		mix_ramp.GetStart(), mix_ramp.GetEnd());
 }
 
 int main(int argc, char **argv)
diff --git a/test/test_protocol.cxx b/test/test_protocol.cxx
new file mode 100644
index 0000000..d7ea7cd
--- /dev/null
+++ b/test/test_protocol.cxx
@@ -0,0 +1,60 @@
+#include "config.h"
+#include "protocol/ArgParser.hxx"
+#include "protocol/Result.hxx"
+#include "Compiler.h"
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+static enum ack last_error = ack(-1);
+
+void
+command_error(gcc_unused Client &client, enum ack error,
+	      gcc_unused const char *fmt, ...)
+{
+	last_error = error;
+}
+
+class ArgParserTest : public CppUnit::TestFixture {
+	CPPUNIT_TEST_SUITE(ArgParserTest);
+	CPPUNIT_TEST(TestRange);
+	CPPUNIT_TEST_SUITE_END();
+
+public:
+	void TestRange();
+};
+
+void
+ArgParserTest::TestRange()
+{
+	Client &client = *(Client *)nullptr;
+	unsigned a, b;
+
+	CPPUNIT_ASSERT(check_range(client, &a, &b, "1"));
+	CPPUNIT_ASSERT_EQUAL(1u, a);
+	CPPUNIT_ASSERT_EQUAL(2u, b);
+
+	CPPUNIT_ASSERT(check_range(client, &a, &b, "1:5"));
+	CPPUNIT_ASSERT_EQUAL(1u, a);
+	CPPUNIT_ASSERT_EQUAL(5u, b);
+
+	CPPUNIT_ASSERT(check_range(client, &a, &b, "1:"));
+	CPPUNIT_ASSERT_EQUAL(1u, a);
+	CPPUNIT_ASSERT(b >= 999999u);
+
+	CPPUNIT_ASSERT(!check_range(client, &a, &b, "-2"));
+	CPPUNIT_ASSERT_EQUAL(ACK_ERROR_ARG, last_error);
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(ArgParserTest);
+
+int
+main(gcc_unused int argc, gcc_unused char **argv)
+{
+	CppUnit::TextUi::TestRunner runner;
+	auto &registry = CppUnit::TestFactoryRegistry::getRegistry();
+	runner.addTest(registry.makeTest());
+	return runner.run() ? EXIT_SUCCESS : EXIT_FAILURE;
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mpd/pkg-mpd.git



More information about the Pkg-mpd-commits mailing list