Commit Graph

12718 Commits

Author SHA1 Message Date
Max Kellermann
b0ea32f660 output/Control: remove unused method StopThread() 2018-01-04 09:20:22 +01:00
Max Kellermann
8322ae5a4c output/Control: use class ScopeUnlock() 2018-01-04 08:41:19 +01:00
Max Kellermann
98a7c62d7a player/Thread: don't send silence if decoder is slow
The output plugin shall decide whether to insert silence or do nothing
at all.  The ALSA output plugin has already implemented this.
Inserting silence is not necessary or helpful for some plugins, and
may even hurt them (e.g. "recorder").
2018-01-03 17:36:41 +01:00
Max Kellermann
859e59262e player/Thread: remove unnecessary "continue" keywords 2018-01-03 17:17:22 +01:00
Max Kellermann
ec113420f1 player/Thread: hold mutex while calling SongBorder()
Eliminates unnecessary mutex locks.
2018-01-03 17:12:21 +01:00
Max Kellermann
1954e94de2 Merge branch 'work_tag' of git://github.com/loujine/MPD
Closes #181
2018-01-03 11:47:02 +01:00
Max Kellermann
f6ec43b9ec pcm/Resampler: add virtual method Flush()
Wired to Filter::Flush().

Closes #153
2018-01-02 23:17:25 +01:00
Max Kellermann
6d0d8cf9cf filter/Filter: add virtual method Flush()
This will be used by filters which have internal buffers which need to
be flushed at the end, e.g. the "soxr" resampler.
2018-01-02 23:15:51 +01:00
Max Kellermann
14f669f4fb Makefile.am: move sources to libfilter_api.a, libfilter_glue.a 2018-01-02 23:11:03 +01:00
Max Kellermann
5ede02aed8 filter/FilterConfig: rename to LoadChain.cxx 2018-01-02 23:09:36 +01:00
Max Kellermann
bbabb7a14c filter/Plugin: move filter_configured_new() to LoadOne.cxx 2018-01-02 23:06:53 +01:00
Max Kellermann
b13ebe3ddb filter/Plugin: eliminate filter_new() 2018-01-02 23:00:16 +01:00
Max Kellermann
17b0add058 filter/Observer: pass Reset() to underlying Filter
Wohooooo, the method Filter::Reset() has been broken because no
implementation of it has ever been called for a loooong time.
And nobody ever noticed it.  WTF.
2018-01-02 22:13:14 +01:00
Max Kellermann
c68ed40661 pcm/SoxrResampler: implement method Reset() 2018-01-02 21:53:09 +01:00
Max Kellermann
b0199245d5 output/Thread: move code to method InternalDrain() 2018-01-02 18:03:48 +01:00
Max Kellermann
b93e3b2cf6 output/Thread: move code to method InternalCloseError() 2018-01-02 18:02:14 +01:00
Max Kellermann
ae7fcf4c6b output/Thread: move common code to method Failure() 2018-01-02 18:00:20 +01:00
Max Kellermann
1607754771 output/Thread: update "last_error" after filter/play errors 2018-01-02 17:59:37 +01:00
Max Kellermann
028f659c40 output/Thread: move error handling code into the catch block 2018-01-02 17:48:14 +01:00
Max Kellermann
8dfdacf128 output/Thread: AudioOutput::Play() must not return zero 2018-01-02 17:47:46 +01:00
Max Kellermann
f4a56f839f output/haiku: remove size==0 check from Play()
By API contract, this parameter must not be zero.
2018-01-02 17:45:14 +01:00
Max Kellermann
67a8eedca0 output/ao: round write_size down to a multiple of the frame size 2018-01-02 17:33:33 +01:00
Max Kellermann
be65c7d5d0 config/Block: add method GetPositiveValue()
Adds missing checks to several plugins.
2018-01-02 17:24:34 +01:00
Max Kellermann
7c5306a841 config/{Block,Global}: add missing strtoul() check 2018-01-02 17:23:10 +01:00
Max Kellermann
201210cfe1 neighbor/Plugin: std::unique_ptr<NeighborExplorer> 2018-01-02 17:04:23 +01:00
Max Kellermann
cd6de3b24e neighbor/{Explorer,Listener}: add "noexcept" 2018-01-02 16:58:14 +01:00
Max Kellermann
dcd483bd99 storage/Composite: use std::unique_ptr<Storage> 2018-01-02 16:18:34 +01:00
Max Kellermann
3c5e4e2788 storage/Plugin: return std::unique_ptr<Storage> 2018-01-02 16:11:17 +01:00
Max Kellermann
3f4f7b0a53 lib/upnp/Discovery: protect "downloaders" accesses with mutex 2018-01-02 14:55:57 +01:00
Max Kellermann
0a4b866d8a db/upnp: use SplitString() instead of stringToTokens() 2018-01-02 14:16:57 +01:00
Max Kellermann
8c7d7dfa5b lib/upnp/Util: remove unused function csvToStrings() 2018-01-02 14:16:57 +01:00
Max Kellermann
cdf615f783 lib/upnp/ContentDirectoryService: use SplitString() instead of csvToStrings() 2018-01-02 14:16:57 +01:00
Max Kellermann
7d96883d64 lib/upnp/Util: use std::string::erase() instead of ..::replace() 2018-01-02 14:16:57 +01:00
Max Kellermann
28c5e7e6a7 Merge branch 'v0.20.x' 2018-01-02 14:16:47 +01:00
Max Kellermann
ff624075a8 storage/State: check if a CompositeStorage exists; fixes nullptr dereference
Fixes another crash bug caused by commit
64d141f71e
2018-01-02 14:13:26 +01:00
Max Kellermann
08db28469d storage/State: make mount errors non-fatal
Fixes crash bug caused by commit
64d141f71e
2018-01-02 14:07:52 +01:00
Max Kellermann
a20b326807 storage/State: fix memory leak after database mount failure
Caused by commit 64d141f71e

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-02 14:05:07 +01:00
Max Kellermann
4db1b1b250 storage/State: remove useless #ifdef ENABLE_DATABASE
This source file isn't compiled when the database is disabled.
2018-01-02 13:48:16 +01:00
Max Kellermann
ff6b263b48 increment version number to 0.20.15 2018-01-02 13:46:03 +01:00
Max Kellermann
dbfc4abfd6 thread/SafeSingleton: disallow copying 2018-01-02 12:39:05 +01:00
Max Kellermann
5544375002 thread/SafeSingleton: pass parameters to constructor 2018-01-02 12:26:53 +01:00
Max Kellermann
1fd8d46064 lib/upnp/ClientInit: return UpnpClient_Handle 2018-01-02 12:22:44 +01:00
Max Kellermann
46406d6cca output/ao: use class SafeSingleton for libao initialization 2018-01-02 12:13:51 +01:00
Max Kellermann
196df1ccd5 thread/SafeSingleton: new thread-safe utility class 2018-01-02 12:10:41 +01:00
Max Kellermann
d2358b42b6 output/Source: drop the "_instance" suffix from variable names 2018-01-02 09:59:22 +01:00
Max Kellermann
e387d94ff1 filter/Filter: add "noexcept" 2018-01-01 19:23:01 +01:00
Max Kellermann
3bb9c704de pcm/*: add "noexcept" 2018-01-01 19:07:33 +01:00
Max Kellermann
10537c5095 test/run_filter: use "auto" 2018-01-01 19:06:17 +01:00
Max Kellermann
551ac56a33 Filter/Internal: split header 2018-01-01 18:48:34 +01:00
Max Kellermann
5227582e90 release v0.20.14
-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlpKaAoQHG1heEBtdXNp
 Y3BkLm9yZwAKCRAjbopYxttFEpI/D/9ZjsoVxvRn+09rq4Aczzy98HchovhGVhrA
 iqUp6xpBk5/nw53GBBxanLnRbPyjrtH0KDb3aRFrPM2ujYwD8cYCspcEF73Uy9rW
 rtjock3/EJrS2WgoBBp82f41YIwqjI6LUreASfhU1+ySE3G8aeDHQkouvpzh3GzT
 cND0ZJYijRFNWTA6mW7ebAtwtclxxQDYgXaxAQH/lX7uVijGtndhSUyE2I6VnrJW
 VtiZLPInPPqaq+sbZ8L8D1VuswNKkF3z3JNSe9V1003IopMZrte56HdjMqJzqMhS
 medA++d8771N0nFsbj656D0VHMoUMdq63xPGG7VulHuW1ZeDMWo2T/gASkz5e+mh
 yEdJYFsOV44B9brDJsPtA4r8dnWlWvKsP/Jak/ozVvjQ/xvixJnmg32OdcSXqou5
 SS3VQnkiPIOXdCB5VqRutfQMNwyj/TRMV6WLDG+MBwAabRjPX+6tZL9C3knJHsz5
 z+9UQrYuwPfWwjrB+T5/FvDZ6DdOy9QK8KzMfvyK3fzajCm/3asVkArvNnqQ4Qen
 ZkRGNfsVRQC5E+ZZoRmg+OZDi+jxBc9PY7TUhlDZU1sW5OP9HG0zowtJdOExTU+m
 5J7gEPvZxjiQmdWszaJC7eFntd4iaN+zDEXZTJCg65HWYUjjMwcFFPhGE9lrQ8wN
 WdT6o86fcQ==
 =0AWT
 -----END PGP SIGNATURE-----

Merge tag 'v0.20.14'

release v0.20.14
2018-01-01 18:28:39 +01:00