Max Kellermann
acb798e544
release v0.18.21
2014-12-17 19:13:47 +01:00
Max Kellermann
c5720a15c7
LogBackend: force-flush stderr on WIN32
...
setvbuf() does not seem to have an effect on Windows.
2014-12-17 19:12:25 +01:00
Max Kellermann
90709b332a
LogInit: make stderr line-buffered
...
Make sure everything gets logged right away. No delays because
stdio's buffer is not yet full.
2014-12-17 19:12:01 +01:00
Max Kellermann
81f17d10c8
util/HugeAllocator: enable MEM_COMMIT on Windows
...
Without MEM_COMMIT, the reserved address space is not accessible, and
MPD crashes.
2014-12-17 19:10:58 +01:00
k44
773de38bd9
playlist/embcue: fix filename suffix detection
...
The definition of the playlist_plugin struct member of the embcue
plugin was incorrect.
2014-12-16 18:43:05 +01:00
Max Kellermann
ae8bdd473c
win32/build.py: remove unused variable "build_arch"
2014-12-16 12:11:31 +00:00
Max Kellermann
adfc5db3d2
Merge branch 'v0.19.x'
2014-12-15 00:46:56 +01:00
Max Kellermann
a48704925d
storage/nfs: add timeout
2014-12-15 00:45:13 +01:00
Max Kellermann
fa4beeee75
decoder/ffmpeg: detect and fix negative time stamps
...
Works around assertion failure due to something that appears to be a
(minor) FFmpeg bug.
2014-12-15 00:40:46 +01:00
Max Kellermann
d8351772d3
configure.ac: prepare for 0.18.21
2014-12-15 00:39:52 +01:00
Max Kellermann
68d1abdb85
storage/nfs: clear last_error in SetState()
...
Fixes bogus assertion failure.
2014-12-15 00:39:30 +01:00
Max Kellermann
7e8474a85a
lib/nfs/Connection: unregister socket with SocketMonitor::Steal()
...
SocketMonitor::Cancel() does not actually unregister the socket; it
only disables the event.
2014-12-15 00:31:12 +01:00
Max Kellermann
82da364b8b
lib/nfs/Connection: implement mount timeout
2014-12-15 00:05:53 +01:00
Max Kellermann
7fa91ec175
lib/nfs/Connection: add debug flag "in_destroy"
2014-12-15 00:03:30 +01:00
Max Kellermann
1d3a09d377
lib/nfs/Connection: add assertion
2014-12-14 22:51:37 +01:00
Max Kellermann
02563a35f0
lib/nfs/Connection: fix reconnect after mount failure
...
When mounting had not yet finished, SocketMonitor::IsDefined() was
always false, due to the workaround at the beginning of the function
that calls SocketMonitor::Steal(). This commit drops the IsDefined()
check because it was never necessary and breaks reconnect.
2014-12-14 22:49:16 +01:00
Max Kellermann
d653f35bb7
lib/nfs/Connection: fix typo in code comment
2014-12-14 22:49:09 +01:00
Max Kellermann
a543627abd
lib/nfs/Connection: fix memory leak (and assertion failure)
...
nfs_destroy_context() will invoke all pending callbacks with
err==-EINTR. In CancellableCallback::Callback(), this will invoke
NfsConnection::DeferClose(), which however is only designed to be
called from nfs_service(). In non-debug mode, this will leak memory
because nfs_close_async() is never called.
Workaround: before nfs_destroy_context(), invoke nfs_close_async() on
all pending file handles.
2014-12-14 16:02:47 +01:00
Max Kellermann
80f2ba7fca
lib/nfs/Connection: move code to Service()
2014-12-14 15:45:10 +01:00
Max Kellermann
32bca64920
lib/nfs/Connection: add assertions
2014-12-14 15:40:29 +01:00
Max Kellermann
7fa1a84ec3
lib/nfs/Connection: move code to method InternalClose()
2014-12-14 15:38:09 +01:00
Max Kellermann
ab4bb26a0a
lib/nfs/Connection: make in_service and in_event debug-only flags
2014-12-14 15:20:40 +01:00
Max Kellermann
4b8d258cff
lib/nfs/Connection: fix crash while canceling a failing Open()
...
The method NfsConnection::CancellableCallback::Callback() will always
invoke NfsConnection::Close() on the file handle, even if the void
pointer is not a nfsfh. This can happen if the Open() was not
successful, e.g. when the file does not exist.
2014-12-14 15:16:01 +01:00
Max Kellermann
3c29aa6271
event/Loop: read the "again" flag while holding mutex
2014-12-14 14:47:36 +01:00
Max Kellermann
51464b4317
lib/nfs/Connection: add assertions
2014-12-14 14:24:49 +01:00
Max Kellermann
3f32a6b607
input/nfs: include cleanup
2014-12-14 14:21:11 +01:00
Max Kellermann
21aa1631a4
input/async: add API documentation
2014-12-14 14:21:11 +01:00
Max Kellermann
49968541fd
sticker/Match: add inequality operators
2014-12-12 22:26:04 +01:00
Max Kellermann
cc143105b8
sticker/Match: add operator "EQUALS"
...
Mapped to "=" in the MPD protocol. This is the first operator,
initially supporting value matches in the MPD protocol.
2014-12-12 22:16:00 +01:00
Max Kellermann
fed44e95b3
sticker/Song: add enum StickerOperator to sticker_song_find()
2014-12-12 22:10:24 +01:00
Max Kellermann
71ece56470
sticker/Database: move code to BindFind()
2014-12-12 22:04:43 +01:00
Max Kellermann
204a1de3fd
sticker/Database: use the Error library
2014-12-12 21:43:54 +01:00
Max Kellermann
80ddf4aecf
sticker/Database: always invoke sqlite3_reset() and sqlite3_clear_bindings()
2014-12-12 21:43:54 +01:00
Max Kellermann
12b4a666bc
lib/sqlite/Util: add ExecuteModified()
2014-12-12 21:43:54 +01:00
Max Kellermann
cfdbaf331e
sticker/Database: add wrapper for sqlite3_step()
2014-12-12 21:43:54 +01:00
Max Kellermann
052d350b19
sticker/Database: move SQLite helpers to lib/sqlite/Util.hxx
2014-12-12 21:42:51 +01:00
Max Kellermann
2ca18a7ee5
lib/sqlite/Domain: add Domain instance for SQLite
...
Replaces the sticker_domain for Error::domain.
2014-12-12 20:49:00 +01:00
Max Kellermann
7dbe5f4640
sticker/Database: remove redundant sqlite3_reset() calls
...
Call sqlite3_reset() only after a sqlite3_stmt* has been used, not
before. Assume it is already in reusable state.
2014-12-12 20:43:26 +01:00
Max Kellermann
432ecd1b6a
sticker/Database: require SQLite 3.7.3
...
SQLite 3.7.3 is the version shipped in Debian Squeeze (oldstable);
should be old enough to be the required version. Drop the
compatibility #ifdef.
2014-12-12 20:41:36 +01:00
Rasmus Steinke
7d9aa5b716
vorbiscomments: Remove support for non-standard "album artist" tags.
...
MPD used both "album artist" and "albumartist" tags and mapped them to one tag.
This could lead to issues, if a file had both tags, causing MPD to send
a list of albumartists instead of a single one.
Since "album artist" is not a standard tag anyway and even its originators
started to use the proper alternative, its time to say goodbye!
2014-12-12 18:28:11 +01:00
Max Kellermann
43267dc892
sticker/Database: make variables more local
2014-12-12 14:27:47 +01:00
Max Kellermann
3ec6c26e6c
sticker/Database: add sqlite3_bind_text() wrapper
2014-12-12 14:13:35 +01:00
Max Kellermann
7de684668b
sticker/Database: remove C-style (void)
2014-12-12 14:12:31 +01:00
Max Kellermann
2fec463542
util/HugeAllocator: disable MEM_LARGE_PAGES on Windows
...
MEM_LARGE_PAGES does not appear to work. Instead, MEM_RESERVE appears
to be necessary. Until I figure this out, this large pages are
disabled.
2014-12-12 13:20:58 +01:00
Max Kellermann
1affc641c4
input/Init: eliminate double colon from log message
2014-12-12 13:20:37 +01:00
Max Kellermann
4741d7bfe2
Merge branch 'v0.19.x'
2014-12-12 13:14:29 +01:00
Max Kellermann
aea99a1222
decoder/ffpmeg: make variables more local
2014-12-11 10:58:33 +01:00
Max Kellermann
7c8038e2da
decoder/ffpmeg: simplify ffmpeg_send_packet()
2014-12-11 10:58:06 +01:00
Max Kellermann
673336297d
decoder/ffmpeg: support stream tags
2014-12-11 10:52:40 +01:00
Max Kellermann
ee4b7042ce
decoder/ffpmeg: move code to FfmpegScanMetadata()
2014-12-11 10:08:08 +01:00