diff --git a/NEWS b/NEWS index 34ab55db9..643f06fa8 100644 --- a/NEWS +++ b/NEWS @@ -7,7 +7,10 @@ ver 0.19.7 (not yet released) * storage - nfs: implement I/O timeout (60 seconds) * playlist + - embcue: fix filename suffix detection - don't skip non-existent songs in "listplaylist" +* decoder + - ffmpeg: fix time stamp underflow * fix memory allocator bug on Windows ver 0.19.6 (2014/12/08) @@ -158,6 +161,12 @@ ver 0.19 (2014/10/10) * install systemd unit for socket activation * Android port +ver 0.18.21 (2014/12/17) +* playlist + - embcue: fix filename suffix detection +* decoder + - ffmpeg: fix time stamp underflow + ver 0.18.20 (2014/12/08) * decoder - ffmpeg: support FFmpeg 2.5 diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index e150fa3bf..494f4048b 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -313,10 +313,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; diff --git a/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx b/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx index 9e8f91e05..8baa11c03 100644 --- a/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx +++ b/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx @@ -178,7 +178,7 @@ const struct playlist_plugin embcue_playlist_plugin = { embcue_playlist_open_uri, nullptr, + nullptr, embcue_playlist_suffixes, nullptr, - nullptr, };