diff --git a/NEWS b/NEWS index 716365581..cbf689761 100644 --- a/NEWS +++ b/NEWS @@ -52,6 +52,12 @@ ver 0.20 (not yet released) * update - apply .mpdignore matches to subdirectories +ver 0.19.15 (not yet released) +* decoder + - ffmpeg: support FFmpeg 3.0 + - ffmpeg: use as fallback instead of "mad" if no plugin matches +* fix more build failures on non-glibc builds due to constexpr Mutex + ver 0.19.14 (2016/03/18) * decoder - dsdiff: fix off-by-one buffer overflow diff --git a/src/decoder/DecoderThread.cxx b/src/decoder/DecoderThread.cxx index 0378b803f..f7aafa00f 100644 --- a/src/decoder/DecoderThread.cxx +++ b/src/decoder/DecoderThread.cxx @@ -236,7 +236,11 @@ decoder_run_stream_fallback(Decoder &decoder, InputStream &is) { const struct DecoderPlugin *plugin; +#ifdef HAVE_FFMPEG + plugin = decoder_plugin_from_name("ffmpeg"); +#else plugin = decoder_plugin_from_name("mad"); +#endif return plugin != nullptr && plugin->stream_decode != nullptr && decoder_stream_decode(*plugin, decoder, is); } diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index 6bb3c3c9d..5d7767500 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -185,7 +185,7 @@ PtsToPcmFrame(uint64_t pts, const AVStream &stream, */ static DecoderCommand ffmpeg_send_packet(Decoder &decoder, InputStream &is, - AVPacket packet, + AVPacket &&packet, AVCodecContext &codec_context, const AVStream &stream, AVFrame &frame, @@ -560,7 +560,8 @@ FfmpegDecode(Decoder &decoder, InputStream &input, if (packet.stream_index == audio_stream) { cmd = ffmpeg_send_packet(decoder, input, - packet, codec_context, + std::move(packet), + codec_context, av_stream, *frame, min_frame, audio_format.GetFrameSize(), @@ -569,7 +570,11 @@ FfmpegDecode(Decoder &decoder, InputStream &input, } else cmd = decoder_get_command(decoder); +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(56, 25, 100) + av_packet_unref(&packet); +#else av_free_packet(&packet); +#endif } #if LIBAVUTIL_VERSION_MAJOR >= 53