summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-01-02lib/upnp/Util: use std::string::erase() instead of ..::replace()Max Kellermann
2018-01-02Merge branch 'v0.20.x'Max Kellermann
2018-01-02storage/State: check if a CompositeStorage exists; fixes nullptr dereferenceMax Kellermann
Fixes another crash bug caused by commit 64d141f71e690a4258ba9ee8712140bc9d961883
2018-01-02storage/State: make mount errors non-fatalMax Kellermann
Fixes crash bug caused by commit 64d141f71e690a4258ba9ee8712140bc9d961883
2018-01-02storage/State: fix memory leak after database mount failureMax Kellermann
Caused by commit 64d141f71e690a4258ba9ee8712140bc9d961883 This wasn't a serious memory leak, because after a mount failure, MPD would abort anyway, which is subject to the next commit.
2018-01-02storage/State: remove useless #ifdef ENABLE_DATABASEMax Kellermann
This source file isn't compiled when the database is disabled.
2018-01-02increment version number to 0.20.15Max Kellermann
2018-01-02thread/SafeSingleton: disallow copyingMax Kellermann
2018-01-02thread/SafeSingleton: pass parameters to constructorMax Kellermann
2018-01-02lib/upnp/ClientInit: return UpnpClient_HandleMax Kellermann
2018-01-02output/ao: use class SafeSingleton for libao initializationMax Kellermann
2018-01-02thread/SafeSingleton: new thread-safe utility classMax Kellermann
2018-01-02output/Source: drop the "_instance" suffix from variable namesMax Kellermann
2018-01-01filter/Filter: add "noexcept"Max Kellermann
2018-01-01pcm/*: add "noexcept"Max Kellermann
2018-01-01test/run_filter: use "auto"Max Kellermann
2018-01-01Filter/Internal: split headerMax Kellermann
2018-01-01Merge tag 'v0.20.14'Max Kellermann
release v0.20.14
2018-01-01release v0.20.14v0.20.14Max Kellermann
2018-01-01[doc] Fix outdated MusicBrainz URLs (closes #179)loujine
2017-12-30MusicChunk: reorder attributes to reduce paddingMax Kellermann
2017-12-30MusicChunk: make the struct size exactly 4096Max Kellermann
2017-12-30MusicChunk: split struct MusicChunkInfo from struct MusicChunkMax Kellermann
2017-12-30CrossFade: use sizeof(MusicChunk::data) instead of CHUNK_SIZEMax Kellermann
2017-12-30player/Thread: make seeking into a new song non-blockingMax Kellermann
2017-12-29player/Thread: make SEEK (partially) non-blockingMax Kellermann
When the decoder is still starting up while we handle a SEEK, finish the "player SEEK" immediately and re-enter the player loop, being able to handle commands (and even cancel the pending seek). This is the first part in a series of patches to solve the "blocking input blocks decoder, blocks player, blocks the main thread" problem. There are many other blocking code locations left, and the main thread isn't non-blocking either because it waits for "seeking" to become false.
2017-12-29poison.h: remove obsolete headerMax Kellermann
2017-12-29Makefile.am: remove -DCPPUNIT_HAVE_RTTI=0Max Kellermann
This declaration is obsolete because MPD has switched on RTTI long ago.
2017-12-29player/Outputs: abstract interface wrapping class MultipleOutputsMax Kellermann
2017-12-29output/Multiple: add "noexcept"Max Kellermann
2017-12-28player/Thread: remove redundant outputs.Cancel() callMax Kellermann
The STOP, EXIT and CLOSE_AUDIO commands are not finished here; they are propagated to PlayerControl::RunThread() where the outputs.Cancel() call will be done again.
2017-12-28player/Thread: ProcessCommand() returns boolMax Kellermann
Allows signalling a failed seek, and replaces several redundant command checks after the ProcessCommand() call.
2017-12-27player/Thread: move CommandFinished() call out of SeekDecoder(SongTime)Max Kellermann
Decouple this function from player command execution.
2017-12-27player/Thread: update code commentMax Kellermann
2017-12-27test/run_filter: throw exception on errorMax Kellermann
2017-12-27filter/Internal: return std::unique_ptr<Filter>Max Kellermann
2017-12-27filter/Plugin: return std::unique_ptr<PreparedFilter>Max Kellermann
2017-12-27filter/volume: remove from filter_plugins[]Max Kellermann
Thsi filter doesn't make sense as manually configured plugin, because nobody ever calls volume_filter_set() on it, making it a no-op.
2017-12-27filter/{chain,convert}: remove unused FilterPlugin instancesMax Kellermann
These are not in filter_plugins[] and have dedicated constructors anyway.
2017-12-27output/Source: convert prepared_filter to referenceMax Kellermann
2017-12-27archive/Plugin: return std::unique_ptr<ArchiveFile>Max Kellermann
2017-12-27fs/AllocatedPath: drop obsolete GCC checkMax Kellermann
2017-12-27Compiler.h: remove support for GCC 4.9Max Kellermann
Supporting GCC 4.9 is becoming cumbersome as we refactor more code to C++14. This shouldn't be a problem for anybody, because Debian Stable (Stretch) has version 6.3, and Ubuntu LTS (Xenial) has version 5.3.
2017-12-26archive/File, input/Plugin: return InputStreamPtrMax Kellermann
2017-12-26input/Proxy: use InputStreamPtrMax Kellermann
2017-12-26input/Icy: manage the parser in a std::shared_ptrMax Kellermann
This resolves the circular dependency between IcyInputStream and CurlInputStream.
2017-12-26Merge branch 'v0.20.x'Max Kellermann
2017-12-26input/curl: add missing mutex locks to OnEnd(), OnError()Max Kellermann
2017-12-26input/InputStream: add "noexcept"Max Kellermann
2017-12-26input/InputStream: use C++11 initializersMax Kellermann