From 77a9940461f96a608b1f564f810b146980e63c4d Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Wed, 26 Oct 2016 18:06:56 +0200
Subject: [PATCH] decoder/ffmpeg: ignore empty packets

An empty packet would be a command for avcodec_send_packet() to
finalize the codec.

Fixes https://bugs.musicpd.org/view.php?id=4588
---
 NEWS                                        | 2 ++
 src/decoder/plugins/FfmpegDecoderPlugin.cxx | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 9867367e3..c873cbc2f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 ver 0.19.20 (not yet released)
+* decoder
+  - ffmpeg: ignore empty packets
 
 ver 0.19.19 (2016/08/23)
 * decoder
diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
index e27ec797f..fc287328a 100644
--- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx
+++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
@@ -643,7 +643,7 @@ FfmpegDecode(Decoder &decoder, InputStream &input,
 			/* end of file */
 			break;
 
-		if (packet.stream_index == audio_stream) {
+		if (packet.size > 0 && packet.stream_index == audio_stream) {
 			cmd = ffmpeg_send_packet(decoder, input,
 						 packet,
 						 *codec_context,