Max Kellermann
9802e74859
DecoderInternal: lock DecoderControl in _flush_chunk()
...
Must hold the Mutex to signal the Cond object safely.
2013-11-06 23:51:17 +01:00
Max Kellermann
8e7d6eb151
DecoderInternal: wake up the player thread in _flush_chunk()
...
Merge duplicate code.
2013-11-06 23:51:17 +01:00
Max Kellermann
5c18e4f114
event/FullyBufferedSocket: remove obsolete TODO comment
...
We have a better solution now.
2013-11-06 23:50:36 +01:00
Max Kellermann
fd2eafa7c6
ClientRead: "close" flushes the output buffer
...
Add a new CommandResult code called "FINISH" which, unlike "CLOSE",
will attempt to flush the output buffer. This is a one-shot attempt;
it will do one write, and not try again.
2013-11-06 22:01:06 +01:00
Max Kellermann
422b8472fe
event/FullyBufferedSocket: try to write without extra roundtrip
...
Postpone the write using IdleMonitor instead of scheduling a write
event. This reduces the number of system calls, because we don't need
to register and unregister the write event in epoll.
2013-11-06 21:52:24 +01:00
Max Kellermann
5b213b0504
event/FullyBufferedSocket: make WriteFromBuffer() protected
...
.. and rename it to Flush().
2013-11-06 21:52:09 +01:00
Max Kellermann
ad27d06979
PlayerThread: enable buffering when starting playback
...
For some reason, this got lost in commit 975deca8
.
Re-enabling this fixes stuttering at the beginning of radio streams.
2013-11-06 20:14:38 +01:00
Max Kellermann
c4b1251d0a
configure.ac: require libaudiofile 0.3 due to API breakage
...
Prior to version 0.3, the "length" callback returned a "long" instead
of AFfileoffset. Now that this API bug fix is a few years old, let's
drop 0.2 support for good.
2013-11-06 20:04:21 +01:00
Max Kellermann
01891f8815
input/curl: fix bug with redirected streams
...
Migrate from the old curl_multi_perform() API to the newer
curl_multi_socket_action() API (since CURL 7.16).
This allows working around a bug with HTTP redirections with epoll:
when CURL closes a socket and the new one happens to have the same
file number, MPD did not have a chance to remove the old one from
epoll and subsequently attempted to use EPOLL_CTL_MOD, which was not
allowed by epoll, because it's a new socket now.
2013-11-06 19:14:22 +01:00
Max Kellermann
adb68450ce
input/curl: move code into class CurlMulti
...
Move all global variables there, and keep just one global variable:
the pointer to the CurlMulti instance. Prepares for the next commit.
2013-11-06 19:07:10 +01:00
Max Kellermann
2520f6fe49
input/curl: remove the global list of requests
...
Unused.
2013-11-06 19:06:14 +01:00
Max Kellermann
c9278bfcdf
input/curl: don't abort all requests on curl_multi_perform() error
...
Eliminate some complicated code that's not worth the trouble.
2013-11-06 19:06:02 +01:00
Max Kellermann
8b838ff9ea
input/curl: use CURLOPT_PRIVATE
...
Replaces the loop in input_curl_find_request().
2013-11-06 19:05:45 +01:00
Max Kellermann
154bdf0bca
event/SocketMonitor: add method Abandon()
2013-11-06 19:05:45 +01:00
Max Kellermann
ed436c6f0c
system/ByteOrder: fix big-endian support
...
D'oh!
2013-11-05 22:08:53 +01:00
Max Kellermann
ae5dd2da4f
playlist/pls: fix reversed song order
...
Remove the forward_list::reverse() call. It was not necessary,
because pls_parser() already reads the playlist in reverse order.
2013-11-05 18:22:34 +01:00
Jurgen Kramer
f4b61e8c8d
decoder/dsf: enable DSD128
2013-11-05 17:38:48 +01:00
Max Kellermann
e49a3d377f
NEWS: add missing line
2013-11-05 17:38:41 +01:00
Max Kellermann
b631b552bb
test/*: add more missing stdlib.h includes
2013-11-05 17:28:23 +01:00
Natanael Copa
3f21581a81
add various missing headers
...
Fixes building with gcc-4.8
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
2013-11-05 11:08:36 +01:00
Max Kellermann
bb62ecf157
configure.ac: prepare for 0.18.2
2013-11-05 11:08:17 +01:00
Max Kellermann
a268ab35ea
release v0.18.1
2013-11-04 23:46:14 +01:00
Max Kellermann
62baec1841
output/alsa: avoid endless loop in Raspberry Pi workaround
...
See code comment.
2013-11-04 23:40:34 +01:00
Max Kellermann
7bca61f5bb
event/ServerSocket: don't abort if IPv6 is not available
...
First check if an IPv6 socket can be created.
2013-11-04 23:36:02 +01:00
Max Kellermann
ecf12a60e8
Log: add level "DEFAULT"
...
Map LogLevel::INFO to G_LOG_LEVEL_INFO, and LogLevel::DEFAULT to
G_LOG_LEVEL_MESSAGE. Now client connect/disconnect message are only
logged on log_level "secure".
2013-11-04 22:27:49 +01:00
Max Kellermann
6de85cb047
Log: document the LogLevel items
2013-11-04 22:17:53 +01:00
Max Kellermann
39257717d8
test/test_mixramp: add threshold to floating point comparisons
...
Fixes bogus test failures on Debian build machines due to rounding
errors (hopefully).
2013-11-04 22:08:59 +01:00
Max Kellermann
b54762a8f6
event/ServerSocket: fix assertion failure
...
Regression from previous commit. D'oh!
2013-11-04 20:16:28 +01:00
Max Kellermann
bcae86196c
event/ServerSocket: open sockets in the order they were configured
...
Use a std::list which can be appended at the end.
2013-11-04 20:10:46 +01:00
Max Kellermann
7adfea8ca2
system/resolver: return path of UNIX domain sockets
...
getnameinfo() doesn't work well - it always returns "localhost".
2013-11-04 19:13:05 +01:00
Max Kellermann
eab1a77683
ClientRead: always ignore whitespace at the end of the line
2013-11-04 18:11:15 +01:00
Max Kellermann
84f5e0c0de
Makefile.am: distribute missing files
2013-11-04 08:26:10 +01:00
Max Kellermann
2ce3900071
filter/AutoConvert: modify child_audio_format, not in_audio_format
...
This prevented using the "volume_normalization" feature with some
codecs (e.g. mp3), because the normalization code requires 16 bit
samples. If the codec happens to deliver formats other than S16, the
AutoConvert filter succeeds to initialize the conversion filter, but
the returned input audio format was wrong.
2013-11-04 08:00:00 +01:00
Max Kellermann
bf2c1f3e9e
configure.ac: prepare for 0.18.1
2013-11-04 08:00:00 +01:00
Max Kellermann
8ccd8a008d
release v0.18
2013-10-31 00:23:41 +01:00
Max Kellermann
9513c1a8d6
AUTHORS: add new authors
2013-10-31 00:23:41 +01:00
Max Kellermann
0a1be2bfc3
AUTHORS: new formatting
2013-10-31 00:18:44 +01:00
Max Kellermann
8c6727949c
CommandLine: simplified program name line
2013-10-31 00:12:31 +01:00
Max Kellermann
ff9b717bf6
Makefile.am: add missing header file
2013-10-31 00:08:14 +01:00
Max Kellermann
8c834a4ff6
system/FatalError: use _exit() instead of exit()
...
Skip the global destructors. We don't need them here - we bail out as
quickly as we can.
2013-10-30 23:42:16 +01:00
Max Kellermann
8c01004219
system/FatalError: move code to Abort()
2013-10-30 23:41:02 +01:00
Max Kellermann
8555b65c50
*: update copyright year to 2013
2013-10-30 23:37:06 +01:00
Max Kellermann
304fa5ecac
ClientList: disconnect all clients in destructor
...
Fixes assertion failure.
2013-10-30 23:12:45 +01:00
Max Kellermann
88e630170e
mixer/software: fix double free bug
2013-10-30 23:12:45 +01:00
Max Kellermann
da8bdd62c8
PlaylistState: ignore "mixrampdelay:nan"
...
mixramp_delay==nan() causes severe problems with cross-fading.
2013-10-30 22:33:02 +01:00
Max Kellermann
54abeab80b
increase default buffer size to 4 MB
...
2 MB was too small for cross-fading a 24 bit file. Increasing to 4 MB
is still not too large for weak machines, but is enough for
cross-fading.
2013-10-30 21:46:40 +01:00
Max Kellermann
1dc8a9f0e7
db/proxy: remove obsolete #undefs
2013-10-30 20:51:41 +01:00
Max Kellermann
a62d54425c
db/proxy: auto-reconnect
2013-10-30 19:50:22 +01:00
Max Kellermann
c8b2591ac2
configure.ac: move -Werror before all other CFLAGS
...
Without -Werror, clang will not fail on -ftree-vectorize.
2013-10-30 19:17:07 +01:00
Max Kellermann
ee1d8e1091
configure.ac: default to enable_openal=auto
2013-10-30 19:02:59 +01:00