Max Kellermann
43348a3e13
decoder/Control: improve locking in Start() and Seek()
...
Previously, both methods accessed a lot of attributes which require
mutex protection.
2017-02-05 13:37:20 +01:00
Max Kellermann
e716b1f4d7
Client: remove redundant "virtual" keywords
2017-02-03 22:27:11 +01:00
Max Kellermann
82e74a4ebd
Client: make client_vprintf() static
2017-02-03 20:47:41 +01:00
Max Kellermann
16b260e371
Client: eliminate client_puts(), use Client::Write() instead
2017-02-03 20:46:53 +01:00
Max Kellermann
3102e05da4
Client: make attributes "uid" and "num" const
2017-02-03 20:41:31 +01:00
Max Kellermann
df4af2b550
release v0.20.4
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAliSTDkQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEsIQD/4iNkylzLp8mID2aFT690MFzv4TRXi2XS7v
r3Rlx3hpGyDdzeXZeFc5zxsc9Ei8OfLcdFC/Umj9LjQanXakOxwsdhagrW9cadNX
YLxkyVcREXalmzUvoWeRnya1LjoTdYA8llvG2tAJosXVr0o/GHZi56aHcrYnW2a6
XD8kEk5k9beuEcBLk1rdZCTGPbVLwCFvMcpZ7j5Hd4kDGQjjw2aoEaPWchJdhLQh
p+GRSU+A8hyTo9zy+aNO3cKvq6zqVxDLlHnIqh8XPWQoLPyWuD7ETvwERKmdmiPZ
bSo0MR7azTlhkWbNZxjPHgZuacJDlwKvXPg1ofjn8VVcaVe5ONeX+1WP0ozUYqyU
fmhLxMHKuwZcKo6do/jNhAVp//VBWhSwJHPA8kjBTuZHHc0HvgyTxlAgvzlrSswe
dxc8vnvzgJfUKz5k7mf3amVg6Cu1CmNi59CkyL0NL+8N0inyMfdeQuQEYgbPoI6X
jIRwACfXpMX75VtiDaNpnFLBjL5emE6u2bDoU2c5ezgpthaWjb0PqSmoLBBF8TNm
k0ecXlIwCjT3pDcqmFdqgG3AJiYLTgX0rETC8PInl6toLzr2oVMVlijU3YK5PjMl
nTvgs8TwprTWImgcBnidqRMb39p3AKs12pHfZ4Y5Iu82Bm60acZQMkv6sQh43Wyc
+W2+T3D2IA==
=b2Fz
-----END PGP SIGNATURE-----
Merge tag 'v0.20.4'
release v0.20.4
2017-02-01 22:05:33 +01:00
Max Kellermann
0a033fb10a
release v0.20.4
2017-02-01 21:59:36 +01:00
Max Kellermann
591afa0647
lib/nfs/Connection: detect socket hangup and unregister from epoll
...
Fixes race condition when epoll_ctl() gets called after the socket has
been closed, which may affect a different socket created by another
thread meanwhile.
2017-02-01 21:44:20 +01:00
Max Kellermann
05eac20ffe
lib/nfs/Connection: detect libnfs reconnect
...
When rpc_reconnect_requeue() gets called from inside nfs_service(),
the NfsInputStream can stall completely because the old socket has
been unregistered from epoll automatically, but the new one has never
been registered. Therefore, nfs_service() will never be called again.
This kludge attempts to detect this condition by checking
nfs_which_events()==POLLOUT.
https://bugs.musicpd.org/view.php?id=4081
2017-02-01 21:36:58 +01:00
Max Kellermann
38d263ac19
output/sndio: work around a libroar C++ incompatibility
...
Same as in commit e02d8ad8d2
, but this time for the sndio plugin
which can be emulated by libroar.
2017-02-01 19:53:23 +01:00
Thomas Zander
f71c204eef
Correct method types to match Interface.hxx
2017-01-31 21:22:02 +01:00
Thomas Zander
51147203be
free() require cstdlib to be included
2017-01-31 21:21:37 +01:00
Max Kellermann
a931686317
pcm/SampleFormat: workaround for GCC 4.9 "constexpr" bug
...
GCC 4.9 has incomplete C++14 support. Specifically, it doesn't allow
switch/case in "constexpr" functions.
2017-01-27 11:02:58 +01:00
Max Kellermann
5bd322bdcf
python/libs: upgrade Opus to 1.1.4
2017-01-27 08:47:58 +01:00
Max Kellermann
bb097109f0
configure.ac: prepare for 0.20.4
2017-01-27 08:47:36 +01:00
Max Kellermann
97132e3d38
configure.ac: use MPD_DEPENDS for upnp->expat dependency
2017-01-26 10:22:37 +01:00
Max Kellermann
5ad1fe77b1
m4/mpd_depends.m4: print warning when disabling the feature
2017-01-26 09:58:34 +01:00
Max Kellermann
8d4ed1e988
m4/mpd_depends.m4: add documentation
2017-01-26 09:45:25 +01:00
Max Kellermann
add953fb6e
lib/curl/Global: decouple from the IOThread library
2017-01-26 09:29:49 +01:00
Max Kellermann
3854211694
input/Plugin: pass EventLoop& to init()
...
Eliminate dependency on io_thread_get().
2017-01-26 09:26:25 +01:00
Max Kellermann
58ac72f79d
input/nfs: use NfsFileReader::GetEventLoop()
2017-01-26 09:25:56 +01:00
Max Kellermann
6d5904801e
lib/nfs/FileReader: use nfs_get_event_loop()
...
Make sure we're using the same EventLoop as the NfsManager.
2017-01-26 09:23:49 +01:00
Max Kellermann
d4993c405e
lib/nfs/Glue: add EventLoop& accessor
2017-01-26 09:23:25 +01:00
Max Kellermann
7af8e3937f
lib/nfs/FileReader: use C++11 initializers
2017-01-26 09:21:57 +01:00
Max Kellermann
f8eeded528
input/async: pass EventLoop& to constructor
2017-01-25 23:18:33 +01:00
Max Kellermann
c3fa7e13cf
input/Plugin: include cleanup
2017-01-25 23:18:17 +01:00
Max Kellermann
5c18b0a94d
input/curl: use CurlGlobal::GetEventLoop()
2017-01-25 23:16:56 +01:00
Max Kellermann
ecbad638f1
input/async: add method GetEventLoop()
2017-01-25 23:15:52 +01:00
Max Kellermann
611ce6e756
lib/nfs/{FileReader,Glue}: pass EventLoop&
...
Eliminate dependency on io_thread_get().
2017-01-25 23:02:02 +01:00
Max Kellermann
4140e9b857
IOThread: make io_thread_run() static
2017-01-25 23:00:31 +01:00
Max Kellermann
8fd9d91974
output/Plugin: pass EventLoop& to init()
...
Eliminate dependency on io_thread_get().
2017-01-25 22:54:41 +01:00
Max Kellermann
d3f35dab1e
output/ao: convert to class, make attributes private
2017-01-25 10:46:09 +01:00
Max Kellermann
487e2618cd
output/ao: use AudioOutputWrapper
2017-01-25 10:45:20 +01:00
Max Kellermann
30d5186db4
output/ao: use const_cast instead of the union hack
2017-01-25 10:44:19 +01:00
Max Kellermann
cbe59714d4
output/solaris: convert to class, make attributes private
2017-01-25 10:33:38 +01:00
Max Kellermann
704a28ca17
output/solaris: use AudioOutputWrapper
2017-01-25 10:29:42 +01:00
Max Kellermann
8d70d10aba
output/httpd: use AudioOutputWrapper
2017-01-25 10:05:08 +01:00
Max Kellermann
ddd8b16f2b
output/roar: use AudioOutputWrapper::Init()
2017-01-25 10:05:08 +01:00
Max Kellermann
b79ce77ec5
output/Wrapper: add missing include
2017-01-25 10:05:08 +01:00
Max Kellermann
fead4bbfd9
output/Plugin: convert pointers to references
2017-01-25 09:48:59 +01:00
Max Kellermann
872ecc1aed
configure.ac: prepare for 0.21
2017-01-25 08:58:07 +01:00
Max Kellermann
2ab6c40ff1
release v0.20.3
2017-01-25 08:53:16 +01:00
Max Kellermann
68bb738af2
input/alsa: use snd_pcm_?w_params_alloca()
2017-01-25 08:47:20 +01:00
Max Kellermann
6b968beede
output/alsa: convert to class, make attributes private
2017-01-24 23:08:16 +01:00
Max Kellermann
f68dd1bffb
output/alsa: make AlsaSetup() an AlsaOutput method
2017-01-24 23:06:33 +01:00
Max Kellermann
f92b71ca99
output/alsa: move code from AlsaSetup() to AlsaSetupSw()
2017-01-24 23:05:29 +01:00
Max Kellermann
2b79fe2d6a
output/alsa: move code from AlsaSetup() to AlsaSetupHw()
2017-01-24 22:48:48 +01:00
Max Kellermann
44dd9af276
lib/upnp/Util: pass single delimiter character to stringToTokens()
2017-01-23 19:34:55 +01:00
Max Kellermann
d3013d4f8c
lib/upnp/Util: remove parameter "skipinit", always true
2017-01-23 19:28:07 +01:00
Max Kellermann
678524ad21
lib/upnp/WorkQueue: fix race condition
...
With "ok==false", newly created threads may quit instantly.
2017-01-23 19:25:30 +01:00