From d8351772d38aff7c40a28ba799af68950b8b7323 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Mon, 15 Dec 2014 00:39:52 +0100
Subject: [PATCH 1/4] configure.ac: prepare for 0.18.21

---
 NEWS         | 2 ++
 configure.ac | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index 6660ae2f2..18e8a0c28 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+ver 0.18.21 (not yet released)
+
 ver 0.18.20 (2014/12/08)
 * decoder
   - ffmpeg: support FFmpeg 2.5
diff --git a/configure.ac b/configure.ac
index 4da467ba3..e0480640d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,10 +1,10 @@
 AC_PREREQ(2.60)
 
-AC_INIT(mpd, 0.18.20, mpd-devel@musicpd.org)
+AC_INIT(mpd, 0.18.21, mpd-devel@musicpd.org)
 
 VERSION_MAJOR=0
 VERSION_MINOR=18
-VERSION_REVISION=20
+VERSION_REVISION=21
 VERSION_EXTRA=0
 
 AC_CONFIG_SRCDIR([src/Main.cxx])

From fa4beeee75f6f4a8377d6fb2ab0844b8b7105840 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Thu, 11 Dec 2014 10:50:20 +0100
Subject: [PATCH 2/4] decoder/ffmpeg: detect and fix negative time stamps

Works around assertion failure due to something that appears to be a
(minor) FFmpeg bug.
---
 NEWS                                |  2 ++
 src/decoder/FfmpegDecoderPlugin.cxx | 11 +++++++----
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/NEWS b/NEWS
index 18e8a0c28..40df6aed9 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 ver 0.18.21 (not yet released)
+* decoder
+  - ffmpeg: fix time stamp underflow
 
 ver 0.18.20 (2014/12/08)
 * decoder
diff --git a/src/decoder/FfmpegDecoderPlugin.cxx b/src/decoder/FfmpegDecoderPlugin.cxx
index 8a0937903..9a00bf3c4 100644
--- a/src/decoder/FfmpegDecoderPlugin.cxx
+++ b/src/decoder/FfmpegDecoderPlugin.cxx
@@ -284,10 +284,13 @@ ffmpeg_send_packet(Decoder &decoder, InputStream &is,
 		   AVFrame *frame,
 		   uint8_t **buffer, int *buffer_size)
 {
-	if (packet->pts >= 0 && packet->pts != (int64_t)AV_NOPTS_VALUE)
-		decoder_timestamp(decoder,
-				  time_from_ffmpeg(packet->pts - start_time_fallback(*stream),
-				  stream->time_base));
+	if (packet->pts >= 0 && packet->pts != (int64_t)AV_NOPTS_VALUE) {
+		auto start = start_time_fallback(*stream);
+		if (packet->pts >= start)
+			decoder_timestamp(decoder,
+					  time_from_ffmpeg(packet->pts - start,
+							   stream->time_base));
+	}
 
 	AVPacket packet2 = *packet;
 

From 773de38bd9e018e48cf5b0a4f009dedce090bf0a Mon Sep 17 00:00:00 2001
From: k44 <k44ester@gmail.com>
Date: Tue, 16 Dec 2014 18:43:05 +0100
Subject: [PATCH 3/4] playlist/embcue: fix filename suffix detection

The definition of the playlist_plugin struct member of the embcue
plugin was incorrect.
---
 NEWS                                       | 2 ++
 src/playlist/EmbeddedCuePlaylistPlugin.cxx | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 40df6aed9..451b37783 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 ver 0.18.21 (not yet released)
+* playlist
+  - embcue: fix filename suffix detection
 * decoder
   - ffmpeg: fix time stamp underflow
 
diff --git a/src/playlist/EmbeddedCuePlaylistPlugin.cxx b/src/playlist/EmbeddedCuePlaylistPlugin.cxx
index 2734fa59e..9ad71b8a8 100644
--- a/src/playlist/EmbeddedCuePlaylistPlugin.cxx
+++ b/src/playlist/EmbeddedCuePlaylistPlugin.cxx
@@ -178,7 +178,7 @@ const struct playlist_plugin embcue_playlist_plugin = {
 	embcue_playlist_open_uri,
 	nullptr,
 
+	nullptr,
 	embcue_playlist_suffixes,
 	nullptr,
-	nullptr,
 };

From acb798e54481916c5fa25e3c227eb1f1c7316a10 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Wed, 17 Dec 2014 19:13:47 +0100
Subject: [PATCH 4/4] release v0.18.21

---
 NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 451b37783..4db5f0300 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-ver 0.18.21 (not yet released)
+ver 0.18.21 (2014/12/17)
 * playlist
   - embcue: fix filename suffix detection
 * decoder