From 05de0ecec3ef32a04ffcf91fe7c690529735d59f Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Tue, 23 Aug 2016 09:37:19 +0200
Subject: [PATCH] decoder/ffmpeg: call avcodec_parameters_to_context()

These bug reports describe problems with some FFmpeg codecs:

 https://bugs.musicpd.org/view.php?id=4564
 https://bugs.musicpd.org/view.php?id=4568
 https://bugs.musicpd.org/view.php?id=4572

According to the FFmpeg bug tracker, a call to
avcodec_parameters_to_context() is required after
avcodec_alloc_context3():

 https://trac.ffmpeg.org/ticket/5781

This requirement was previously undocumented.
---
 NEWS                                        | 1 +
 src/decoder/plugins/FfmpegDecoderPlugin.cxx | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/NEWS b/NEWS
index 65f8950a6..33ab0f476 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,6 @@
 ver 0.19.19 (not yet released)
 * decoder
+  - ffmpeg: bug fix for FFmpeg 3.1 support
   - wildmidi: support libWildMidi 0.4
 * output
   - pulse: support 32 bit, 24 bit and floating point playback
diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
index 7695dcb4f..ca1f3c0f8 100644
--- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx
+++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
@@ -547,6 +547,8 @@ FfmpegDecode(Decoder &decoder, InputStream &input,
 	AtScopeExit(&codec_context) {
 		avcodec_free_context(&codec_context);
 	};
+
+	avcodec_parameters_to_context(codec_context, av_stream.codecpar);
 #endif
 
 	const SampleFormat sample_format =