diff options
-rw-r--r-- | NEWS | 11 | ||||
-rw-r--r-- | src/LogBackend.cxx | 6 | ||||
-rw-r--r-- | src/LogInit.cxx | 3 | ||||
-rw-r--r-- | src/decoder/plugins/FfmpegDecoderPlugin.cxx | 11 | ||||
-rw-r--r-- | src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx | 2 | ||||
-rw-r--r-- | src/util/HugeAllocator.hxx | 4 |
6 files changed, 30 insertions, 7 deletions
@@ -18,7 +18,7 @@ ver 0.20 (not yet released) * reset song priority on playback * remove dependency on GLib -ver 0.19.7 (not yet released) +ver 0.19.7 (2014/12/17) * input - nfs: fix crash while canceling a failing file open operation - nfs: fix memory leak on connection failure @@ -27,7 +27,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) @@ -178,6 +181,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/LogBackend.cxx b/src/LogBackend.cxx index 6591fef2d..04c2e6324 100644 --- a/src/LogBackend.cxx +++ b/src/LogBackend.cxx @@ -194,6 +194,12 @@ FileLog(const Domain &domain, const char *message) domain.GetName(), chomp_length(message), message); +#ifdef WIN32 + /* force-flush the log file, because setvbuf() does not seem + to have an effect on WIN32 */ + fflush(stderr); +#endif + #ifdef HAVE_GLIB g_free(converted); #endif diff --git a/src/LogInit.cxx b/src/LogInit.cxx index accd1d4d8..117c6d8dc 100644 --- a/src/LogInit.cxx +++ b/src/LogInit.cxx @@ -111,6 +111,9 @@ log_early_init(bool verbose) #ifdef ANDROID (void)verbose; #else + /* force stderr to be line-buffered */ + setvbuf(stderr, nullptr, _IOLBF, 0); + if (verbose) SetLogThreshold(LogLevel::DEBUG); #endif diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index 7e164e5bd..0afdea6e4 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -316,10 +316,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, - embcue_playlist_suffixes, nullptr, + embcue_playlist_suffixes, nullptr, }; diff --git a/src/util/HugeAllocator.hxx b/src/util/HugeAllocator.hxx index e02e69f10..fa45e5610 100644 --- a/src/util/HugeAllocator.hxx +++ b/src/util/HugeAllocator.hxx @@ -71,7 +71,9 @@ static inline void * HugeAllocate(size_t size) { // TODO: use MEM_LARGE_PAGES - return VirtualAlloc(nullptr, size, MEM_RESERVE, PAGE_READWRITE); + return VirtualAlloc(nullptr, size, + MEM_COMMIT|MEM_RESERVE, + PAGE_READWRITE); } static inline void |