From 03d2fb450f6148661bbd7e49d8c1156d5bde05ff Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 28 Nov 2014 20:13:57 +0100 Subject: [PATCH 01/11] configure.ac: prepare for 0.19.6 --- NEWS | 2 ++ configure.ac | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 315dfdb85..fa02106b1 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +ver 0.19.6 (not yet released) + ver 0.19.5 (2014/11/26) * input - nfs: fix crash on connection failure diff --git a/configure.ac b/configure.ac index f8d100331..7ec0dbf9a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,10 +1,10 @@ AC_PREREQ(2.60) -AC_INIT(mpd, 0.19.5, musicpd-dev-team@lists.sourceforge.net) +AC_INIT(mpd, 0.19.6, musicpd-dev-team@lists.sourceforge.net) VERSION_MAJOR=0 VERSION_MINOR=19 -VERSION_REVISION=5 +VERSION_REVISION=6 VERSION_EXTRA=0 AC_CONFIG_SRCDIR([src/Main.cxx]) From 24da14f4f7124d801ffb43e8c4cda5fccf624752 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 28 Nov 2014 21:08:09 +0100 Subject: [PATCH 02/11] .gitignore: ignore /lib/ --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index cf130ad92..ba6d3b30e 100644 --- a/.gitignore +++ b/.gitignore @@ -77,6 +77,8 @@ tags /test/test_vorbis_encoder /test/DumpDatabase +/lib/ + /*.tar.gz /*.tar.bz2 /*.tar.xz From be492ed108ca4ed11ec6334fb001e089d4bef116 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 28 Nov 2014 20:16:33 +0100 Subject: [PATCH 03/11] android: update libFLAC to 1.3.1 Due to security vulnerabilities. --- NEWS | 2 ++ android/build.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index fa02106b1..d79897bae 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.19.6 (not yet released) +* android + - update libFLAC to 1.3.1 ver 0.19.5 (2014/11/26) * input diff --git a/android/build.py b/android/build.py index 634d9bffb..c9430b356 100755 --- a/android/build.py +++ b/android/build.py @@ -314,8 +314,8 @@ thirdparty_libs = [ ), AutotoolsProject( - 'https://svn.xiph.org/releases/flac/flac-1.3.0.tar.xz', - '13b5c214cee8373464d3d65dee362cdd', + 'http://downloads.xiph.org/releases/flac/flac-1.3.1.tar.xz', + 'b9922c9a0378c88d3e901b234f852698', 'lib/libFLAC.a', [ '--disable-shared', '--enable-static', From 8780e23ed32b7bd90663f62fb6a2b68e00983bcb Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 28 Nov 2014 20:24:53 +0100 Subject: [PATCH 04/11] android/build.py: update ffmpeg 2.4.3, curl 7.39 --- android/build.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/android/build.py b/android/build.py index c9430b356..67f8bcb3b 100755 --- a/android/build.py +++ b/android/build.py @@ -341,8 +341,8 @@ thirdparty_libs = [ ), FfmpegProject( - 'http://www.ffmpeg.org/releases/ffmpeg-2.2.3.tar.bz2', - 'dbb5b6b69bd010916f17df0ae596e0b1', + 'http://ffmpeg.org/releases/ffmpeg-2.4.3.tar.bz2', + '8da635baff57d7ab704b1daca5a99b47', 'lib/libavcodec.a', [ '--disable-shared', '--enable-static', @@ -366,8 +366,8 @@ thirdparty_libs = [ ), AutotoolsProject( - 'http://curl.haxx.se/download/curl-7.37.0.tar.lzma', - '54bfd1eb5214f604186d6f5ac61c7781', + 'http://curl.haxx.se/download/curl-7.39.0.tar.lzma', + 'e9aa6dec29920eba8ef706ea5823bad7', 'lib/libcurl.a', [ '--disable-shared', '--enable-static', From 811af02f56a829fb2177d25b7eb4f93212a4ea9e Mon Sep 17 00:00:00 2001 From: Nix Date: Mon, 24 Nov 2014 13:02:07 +0000 Subject: [PATCH 05/11] Output: start with a null mixer. There are code paths (mostly error cases) in which it is possible to initialize an AudioOutput and then kill it without ever calling audio_output_new(). In such a case, its destructor will attempt to free a mixer that was never initialized, leading to an attempt to take out a lock on a mutex that was similarly never initialized, which hangs forever. Fix by always initializing the mixer appropriately. --- src/output/Init.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/output/Init.cxx b/src/output/Init.cxx index eafcec432..79ef4f998 100644 --- a/src/output/Init.cxx +++ b/src/output/Init.cxx @@ -48,6 +48,7 @@ AudioOutput::AudioOutput(const AudioOutputPlugin &_plugin) :plugin(_plugin), + mixer(nullptr), enabled(true), really_enabled(false), open(false), pause(false), From dc11dea7cc204e25126c2c024744eded02eb1b08 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 8 Dec 2014 14:13:20 +0100 Subject: [PATCH 06/11] configure.ac: prepare for 0.18.20 --- NEWS | 2 ++ configure.ac | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 2782ca89d..67a7b31a0 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +ver 0.18.20 (not yet released) + ver 0.18.19 (2014/11/26) * archive - zzip: fix crash after seeking diff --git a/configure.ac b/configure.ac index 2e0061954..4da467ba3 100644 --- a/configure.ac +++ b/configure.ac @@ -1,10 +1,10 @@ AC_PREREQ(2.60) -AC_INIT(mpd, 0.18.19, mpd-devel@musicpd.org) +AC_INIT(mpd, 0.18.20, mpd-devel@musicpd.org) VERSION_MAJOR=0 VERSION_MINOR=18 -VERSION_REVISION=19 +VERSION_REVISION=20 VERSION_EXTRA=0 AC_CONFIG_SRCDIR([src/Main.cxx]) From d8fc2db910a11dbbba53ba7ecf96d0e32a081076 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 8 Dec 2014 14:17:17 +0100 Subject: [PATCH 07/11] thread/Id: drop "::" prefix before pthread function names The "::" to explicitly refer to the global namespace appeared like a good idea in C++, but it breaks with C libraries that implement standard functions using macros (e.g. musl). --- NEWS | 1 + src/thread/Id.hxx | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 67a7b31a0..fa6bb2060 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,5 @@ ver 0.18.20 (not yet released) +* fix build failure with musl ver 0.18.19 (2014/11/26) * archive diff --git a/src/thread/Id.hxx b/src/thread/Id.hxx index fa1cf2cab..2372a12f5 100644 --- a/src/thread/Id.hxx +++ b/src/thread/Id.hxx @@ -75,7 +75,7 @@ public: #ifdef WIN32 return ::GetCurrentThreadId(); #else - return ::pthread_self(); + return pthread_self(); #endif } @@ -84,7 +84,7 @@ public: #ifdef WIN32 return id == other.id; #else - return ::pthread_equal(id, other.id); + return pthread_equal(id, other.id); #endif } From 41b4a63f2b772eba1e436c82fc9c5c9766d4470e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 8 Dec 2014 14:25:34 +0100 Subject: [PATCH 08/11] decoder/ffmpeg: support FFmpeg 2.5 Version 2.5 fixed an API oddity, however it broke API compatibility, at least with C++. Disable the workaround when a libavformat version is detected that is recent enough. --- NEWS | 2 ++ src/decoder/FfmpegDecoderPlugin.cxx | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/NEWS b/NEWS index fa6bb2060..e88ef7a85 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.18.20 (not yet released) +* decoder + - ffmpeg: support FFmpeg 2.5 * fix build failure with musl ver 0.18.19 (2014/11/26) diff --git a/src/decoder/FfmpegDecoderPlugin.cxx b/src/decoder/FfmpegDecoderPlugin.cxx index 69e7a6c8b..8a0937903 100644 --- a/src/decoder/FfmpegDecoderPlugin.cxx +++ b/src/decoder/FfmpegDecoderPlugin.cxx @@ -394,10 +394,15 @@ ffmpeg_probe(Decoder *decoder, InputStream &is) avpd.filename = is.uri.c_str(); #ifdef AVPROBE_SCORE_MIME +#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(56, 5, 1) /* 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(is.GetMimeType()); +#else + /* API problem fixed in FFmpeg 2.5 */ + avpd.mime_type = is.GetMimeType(); +#endif #endif return av_probe_input_format(&avpd, true); From 1b5f33a4358f69d153a4c2d2fae34165dc200cca Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 8 Dec 2014 14:57:17 +0100 Subject: [PATCH 09/11] release v0.18.20 --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index e88ef7a85..6660ae2f2 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -ver 0.18.20 (not yet released) +ver 0.18.20 (2014/12/08) * decoder - ffmpeg: support FFmpeg 2.5 * fix build failure with musl From 4acbf7b90d9fbca42328f682cdb8ac8cacc13759 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 8 Dec 2014 15:05:49 +0100 Subject: [PATCH 10/11] android/build.py: update FFmpeg to 2.5 --- NEWS | 1 + android/build.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index b52e6e5d2..a9cb567d4 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,7 @@ ver 0.19.6 (not yet released) * fix build failure with musl * android - update libFLAC to 1.3.1 + - update FFmpeg to 2.5 ver 0.19.5 (2014/11/26) * input diff --git a/android/build.py b/android/build.py index 67f8bcb3b..8455dd6a9 100755 --- a/android/build.py +++ b/android/build.py @@ -341,8 +341,8 @@ thirdparty_libs = [ ), FfmpegProject( - 'http://ffmpeg.org/releases/ffmpeg-2.4.3.tar.bz2', - '8da635baff57d7ab704b1daca5a99b47', + 'http://ffmpeg.org/releases/ffmpeg-2.5.tar.bz2', + '4346fe710cc6bdd981f6534d2420d1ab', 'lib/libavcodec.a', [ '--disable-shared', '--enable-static', From c46f48abec9b55f322070bb3c6e625abb3308dc9 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 8 Dec 2014 15:12:41 +0100 Subject: [PATCH 11/11] release v0.19.6 --- NEWS | 2 +- android/AndroidManifest.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index a9cb567d4..ee317f3cc 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -ver 0.19.6 (not yet released) +ver 0.19.6 (2014/12/08) * decoder - ffmpeg: support FFmpeg 2.5 * fix build failure with musl diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 8625bd76e..616536ab7 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="10" + android:versionName="0.19.6">