Max Kellermann
0cf4c6ffea
decoder/ffmpeg: add "pure" attributes
2014-12-18 20:17:15 +01:00
Max Kellermann
25f89afbfb
output/winmm: show detailed error messages
2014-12-17 19:43:14 +01:00
Max Kellermann
8400da9934
release v0.19.7
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUkcmtAAoJECNuiljG20USLuwP/3MjssxpUkq6aN1beyNACWJ8
Zgr/ibDjxYJY+UAHUOycnJQ8WNpgfXNSR4F5jQHznJdpemJCZCeBd2s5yelEdu0C
SBjJ9FiKPeu8or5N34CPmRQDmDGHv0II4/ySmzlBhH4XRV5JF5li/j4KtAlOCqCT
GNnlmgn05o+oX4Olpg/id6H7wvny+YDY3p33sJmi+djBnSbJyJNvk9NhAr9n4I7Q
FfGHbTzRLSZKHa47zzXag30PBj2X8x7NOAcAX7/evQpw9Gud/8CwXKk21kp6L/fv
RJnj4lLtkj8MRc+8vskZ9EXgYr3yC/cldP8Fw8qsY/t7d8UFUN8qFqpq9O8IPnga
D4hNpq7VF9ZxMhQtxBiT3cRvjTXBp8J/B7p2YDuYHBhIZh8IPzjDCyF4CzlN/470
3zTqq/aar93AeI/6MQlpQPBK1DGvrrHBVP3Mj7cCTbx61P7/1xEIxYntRIfJw449
JRJDJKjdyOY4+Sqm3Agu3WiQlyOzZXmqM3E3FFeul4mUvcOKhfbZxjayYsGlfigA
MHge1wif2aOe6IU334DUD5V0m61MMoefznEvWUdAZHtdvQox0ovDmwwFRizX2fGc
rlUhoUOXWjjGbTI2VjXsBklzh8P+MxQ8OiJGw+V4DBI0XL+A2tpqISs9mpCVPwQ0
T37uc6kdDB99noMuD2cw
=+4Cz
-----END PGP SIGNATURE-----
Merge tag 'v0.19.7'
2014-12-17 19:27:59 +01:00
Max Kellermann
9c56c49e73
release v0.18.21
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUkcgMAAoJECNuiljG20UShwAP/3qGPv1feFJMOQbhHF+K8eL9
4oeKJAblVR98+jsdu8Z7GidGGXrvIX8pxGWJPLLYSa2naR9/gtTxpiYZPEd2ex4G
1jbFzI0GmU08I5x9sUPstX4GoDVfWnV3ICYzY7z1VVhlxYXlI+dHOPz61FxaLWYM
i/H4WR7lvSwyOsYaFtfqZC9SD71XQ0V56yDqaDK6a/NbMg0WQQMghmH0swkEk/FK
wN6nxEpFpTtOjBLjF51TyNC5JT1lxXDYwxYmrtd6rxkNqhN8duCRXq9IK7MEGync
LNtHKGMrcXwLBSAPM6GTrY0StCch6fEBhOg0Tr7JQ81BSb/1XKzimbxCCULDwx/P
/hN4lGr66tudXHFaRQX0GLxRpkpKtanp7+xtZ5AhGh4Wk7YQ62nb8RN3qCc5x2Oi
cvnK6bewMi7rZoIejAhaXtbKNPho/H5TpE404C+ScnWyEAVtly45xgECNdzllhfk
k4Kp4rW2CNmHTNbZRFh1Qre2g47a9rhZxoxXx4X0fi6YSruekQC3qjdloom5VN2I
8d7NloQoJ+wjkYXuZ3EoxdBhbdViZBMg8CP99KFc7sYQTGmYtrKyjZ5EiOAVw3p5
rHoTrGdZr8aKPMcKQPo4GaTkB9njE4a4l+uVq5SOiRSfpDeRqvhIqOrUz4EOf8Ic
ryT0jwFGfKhSHG4tz+9K
=WjqC
-----END PGP SIGNATURE-----
Merge tag 'v0.18.21' into v0.19.x
2014-12-17 19:19:13 +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
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
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
Max Kellermann
fc1796f3e8
decoder/ffmpeg: support ReplayGain and MixRamp
2014-12-10 13:45:29 +01:00
Max Kellermann
d8926ea5eb
decoder/ffpmeg: use forward declarations
2014-12-10 13:42:34 +01:00
Max Kellermann
0c1e428c7d
decoder/ffpmeg: rename functions to CamelCase
2014-12-10 13:05:28 +01:00
Max Kellermann
bcd97f5887
decoder/ffmpeg: optimize ffmpeg_scan_dictionary()
...
Don't scan tag items if the handler doesn't implement the tag()
method.
2014-12-10 09:35:28 +01:00
Max Kellermann
0faf86c2b9
ReplayGainInfo: add method IsDefined()
2014-12-10 07:57:46 +01:00
Max Kellermann
b30957c89c
ReplayGainInfo: make IsDefined() constexpr
2014-12-10 07:57:07 +01:00
Max Kellermann
dbbcbc3616
Util/Manual: cast via void* to avoid alignment warnings
2014-12-09 23:10:05 +01:00
Max Kellermann
1889150013
Util/Manual: use Get() in Destruct()
2014-12-09 23:08:53 +01:00
Max Kellermann
14f9cdde6b
Util/Manual: add assertion to Get()
2014-12-09 23:08:22 +01:00
Max Kellermann
3ab0691eec
Util/Manual: add method Get()
...
May be more clear than operators.
2014-12-09 23:07:43 +01:00
Max Kellermann
1e073a196f
util/Manual: use gcc_alignas()
2014-12-09 23:05:47 +01:00
Max Kellermann
7b60e3916c
DespotifyUtils: make string buffers temporary
2014-12-09 22:14:47 +01:00
Max Kellermann
c486c5bf5b
DespotifyUtils: fix coding style
2014-12-09 22:10:17 +01:00
Max Kellermann
fc0b6d143a
DespotifyUtils: use ARRAY_SIZE()
2014-12-09 22:06:22 +01:00
Max Kellermann
5f4252bcd2
ConfigTemplates: use ARRAY_SIZE()
2014-12-09 22:04:34 +01:00
Max Kellermann
a588aef921
output/oss: make the static arrays "constexpr"
2014-12-09 22:02:18 +01:00
Max Kellermann
b70df57f7b
ls: make the static array "const"
2014-12-09 22:01:15 +01:00
Max Kellermann
e813c93e08
decoder/mad: convert "const" to "constexpr"
2014-12-09 21:59:11 +01:00
Max Kellermann
900c4977cc
AllCommands: use ARRAY_SIZE()
2014-12-09 21:58:01 +01:00
Max Kellermann
bb39fffab9
ConfigParser: make the static arrays "const"
2014-12-09 21:57:07 +01:00
Max Kellermann
f52aefb341
decoder/ffmpeg: make the tag_table constexpr
2014-12-09 21:56:22 +01:00
Max Kellermann
aecb5630cb
configure.ac: use MPD_ENABLE_AUTO_LIB for libfaad
2014-12-09 21:36:52 +01:00
Max Kellermann
0f0245625a
configure.ac: add macro MPD_ENABLE_AUTO_LIB
2014-12-09 21:19:09 +01:00
Max Kellermann
1ecde309e4
src/win32: move resources to win32/
2014-12-09 14:04:33 +01:00
Max Kellermann
d62a738460
Merge branch 'v0.19.x'
2014-12-09 14:04:11 +01:00
Max Kellermann
0cfd4fff62
playlist/Print: don't skip non-existent songs in "listplaylist"
...
Skipping those songs silently will confuse the client, because
commands specifying the song index within a playlist
(e.g. playlistdelete) will be out of sync.
This copies spl_print()'s behavior to playlist_file_print().
2014-12-09 13:36:48 +01:00
Max Kellermann
0f1b1bb44d
configure.ac: add option to disable CUE
2014-12-08 22:33:50 +01:00
Max Kellermann
36f0bd432c
CommandLine: merge printf() calls
2014-12-08 18:31:30 +01:00
Max Kellermann
457ab8b2ce
CommandLine: use printf() instead of puts()
2014-12-08 18:25:03 +01:00
Thomas Guillem
31726737df
ConfigGlobal: fix params not fully cleaned
2014-12-08 18:15:13 +01:00
Max Kellermann
de43bddc1a
release v0.19.6
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUhbH6AAoJECNuiljG20USe/4QAJdMAjnggHbcC/JO9pdJ/5B1
vK+wJqqpNkTpjRaI1OGmxWJCUYKFLCDhoSoPjkyxZ7qmvEDdhQo105/iSod1DOb7
4wAbtrCCfkHKwNZHI2Zf713urBTkT4AZNkSmqBnFRF+sJbiKlQ4Y1EXYG/cwsu63
8RZx3mOURi52OCYuhzurZ2UDqLj0xJ4bFxRiqHV0LLeOAyGa7P6O2M4WwjNsDB9e
9o2ckwis3Yl+0E8FYW57WkFiSkZ40xgNa6O6gOWOYsjpey45IQrxhB5ewy/svIwZ
jeVVnd12mkFAXG3ZBQjwAe+/H8yG5NdqhL7llznuYaX6Ii9zeAPgccK/rZ+kYKe8
gg126KqI9lvUFV45tfoxVqUFiJu5zB0etSto/hNsIdt6ngnuU86WJ3c/X0tDxhN/
GoIKRQxPkJ5XjNdBuRx3ELWx4Jj1UM7CHgQBaqnr0bwfWfFa0IinBwnPw0HqYyBn
p9HZqeVrD3/JDFxungZlWaDk52iScs4Jc4ovGP8UKQVfdkS66awxcWn1gXroXla6
UOslSkB/Gu7WluGzgCkmvD43PY/8oZlOeiP3xmsDgoq5Dg+z4GAw3NCn7/i8Mt5I
HTjNBhLhLLoTjFmcD9MwQtV5/E1UnY1VHTpoZa8dXueyxPgMFmh14BazY+bPnfpw
lSNAo7p0Mh8MdWrRN2Vc
=QvY3
-----END PGP SIGNATURE-----
Merge tag 'v0.19.6'
2014-12-08 15:22:44 +01:00
Max Kellermann
cbc1a58e93
release v0.18.20
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUha5vAAoJECNuiljG20USdLEP/0NCwdnvCPVdkZ7RwsdCRp53
jv86eu92uFVQJrW5/NQahngOwqNRsjNRX1EiEalbEjqCzMxDjuKCBukdteXg0Q2A
igwDDrDwpm9tvzilsTAdjEH3gRcuxDRWfF259bZXbnxksVMuwzo31YraU6dBUkSc
qPpQtbS4Op0paFG0TieBAt07TZ8Wb4KkAM86vBu31JpXZkXGyT6B6N3qe4WtpAN8
l5qAWstBRog5JM3Q99FNDnCFG/2n93CEZjwN8FlQgkFhyhhDKF5YOhZNQpqTEbh9
nxdo5V3OC42cx92V1CxrzkPKhnBIrSTGLg+Yb9S+vF3nWX+cBPpalr/rw5xZTrdH
3zER+hOHvkMZpEZDiyUx5bkF9Ay2BvJkdJCSFSTq9HmzksTnEJ+0r44cO2rwqOpx
R6KZPLTmObjCjmnMM+kbd6e/T8WEkcEotuYoocf3lep45roGAYuHErWW3+B89+4Z
f0Y8uwPQTWrOGSRKXh2liWcHeN114Uwvb0ZyO+/0Oe7v1Id/IW7zC2XfSpY58dok
/yRXiElow1LVLISixBBUAnwkx0M+CyQJqCS/nQpedPArLos+g4Wo3R+QnQEnOu9C
e1cRY3qa56lre6BnE+rQ3aMNVGgfjsU4t3mSjQlCp1PbU7izvlgMHJcyErt6d5aj
nA8VwjS+1PCODS/HkCqc
=APdC
-----END PGP SIGNATURE-----
Merge tag 'v0.18.20' into v0.19.x
2014-12-08 15:03:09 +01:00
Max Kellermann
41b4a63f2b
decoder/ffmpeg: support FFmpeg 2.5
...
Version 2.5 fixed an API oddity, however it broke API compatibility,
at least with C++. Disable the workaround when a libavformat version
is detected that is recent enough.
2014-12-08 14:25:34 +01:00
Max Kellermann
d8fc2db910
thread/Id: drop "::" prefix before pthread function names
...
The "::" to explicitly refer to the global namespace appeared like a
good idea in C++, but it breaks with C libraries that implement
standard functions using macros (e.g. musl).
2014-12-08 14:17:17 +01:00
Max Kellermann
6edfc56c9d
command: use ConstBuffer<const char *> for argument list
2014-12-08 13:30:35 +01:00
Max Kellermann
5837a63942
AllCommands: simplify the tokenizer loop
2014-12-08 13:25:41 +01:00
Max Kellermann
3a28f456b1
AllCommands: assign current_command early
2014-12-08 13:25:00 +01:00
Max Kellermann
4f6fc2675c
AllCommands: remove redundant initializer
2014-12-08 13:09:12 +01:00
Max Kellermann
c7da1821c3
CommandLine: show id3tag support in --version
2014-12-07 17:14:19 +01:00
Max Kellermann
1a8c3271da
AllCommands: make variables more local
2014-12-06 00:10:34 +01:00
Max Kellermann
bd49e8e76f
AllCommands: make the commands array "constexpr"
2014-12-06 00:07:07 +01:00
Max Kellermann
533699abe7
playlist/soundcloud: drop support for libyajl1
...
Require the version 2 which has a more sane API.
2014-12-05 00:37:02 +01:00
Max Kellermann
267ccc98d3
Win32Main: make the service table "constexpr"
2014-12-05 00:26:48 +01:00
Max Kellermann
cd3c2fdb49
Win32Main: make variables more local
2014-12-05 00:25:48 +01:00
Max Kellermann
5cbc319e96
configure.ac: require GLib 2.32 (if enabled)
...
Since version 2.32, g_thread_init() is deprecated and a no-op. Let's
upgrade that (optional) dependency so we can remove all those
g_thread_init() calls.
2014-12-05 00:21:48 +01:00
Max Kellermann
e5ab456df3
Win32Main: use FatalSystemError()
2014-12-05 00:21:48 +01:00
Max Kellermann
08bf4f74a9
system/FatalError: add FatalSystemError() overload with WIN32 error code
2014-12-05 00:19:07 +01:00
Max Kellermann
a838a03412
system/FatalError: use FormatMessage() instead of g_win32_error_message()
2014-12-05 00:15:30 +01:00
Max Kellermann
ad4e597f74
util/Error: use FormatMessage() instead of g_win32_error_message()
2014-12-05 00:10:44 +01:00
Max Kellermann
88b75b57d0
playlist, InotifySource, ...: update GLib comments
2014-12-04 23:33:08 +01:00
Max Kellermann
aa4c7055f8
playlist/pls: custom INI parser
...
Don't use GLib.
2014-12-04 23:10:50 +01:00
Max Kellermann
4b70f9d213
util/DivideString: add option "strip"
2014-12-04 23:05:44 +01:00
Max Kellermann
79d2d1c201
decoder/sidplay: pass SidTuneMod to get_song_length()
...
Eliminate duplicate SidTune construction.
2014-12-04 21:58:09 +01:00
Max Kellermann
406bda9b95
decoder/sidplay: simplify the SidDatabase::length() call
2014-12-04 21:53:45 +01:00
Max Kellermann
405f1dd027
decoder/sidplay: include cleanup
2014-12-04 21:53:45 +01:00
Max Kellermann
51f349d504
decoder/sidplay: use class SidDatabase
...
Remove our own songlength database parser.
2014-12-04 21:40:38 +01:00
Max Kellermann
4f201d1e85
decoder/sidplay: use config_param::GetBlockPath()
2014-12-04 21:30:59 +01:00
Max Kellermann
03cfef100f
decoder/sidplay: make "songlength_file" local
2014-12-04 21:30:59 +01:00
Max Kellermann
ff89b491dd
ConfigData: update API documentation
2014-12-04 21:30:59 +01:00
Max Kellermann
7552dff0e5
decoder/sidplay: pass parsed path to get_song_length()
...
Eliminates duplicate ParseContainerPath() call.
2014-12-04 21:21:49 +01:00
Max Kellermann
110589c0f3
decoder/sidplay: merge get_container_name() and get_song_num()
2014-12-04 21:11:33 +01:00
Max Kellermann
5c244e9a8c
SongSticker: remove obsolete documentation
2014-12-04 20:53:48 +01:00
Max Kellermann
4e2f4e2091
util/StringUtil: add ToUpperASCII()
...
Replaces g_ascii_strup() and allows building the Vorbis encoder
without GLib.
2014-12-04 17:43:01 +01:00
Max Kellermann
e69bef3ce3
util/SplitString: new utility class
...
Replaces GLib's g_strsplit().
2014-12-04 09:14:28 +01:00
Max Kellermann
c1c0fc79bc
output/jack: use usleep() instead of g_usleep()
2014-12-04 09:14:28 +01:00
Max Kellermann
050f0c3d8f
util/SplitString: rename to DivideString
2014-12-03 21:38:06 +01:00
Max Kellermann
90e6c727da
encoder/vorbis: convert pointers to references
2014-12-02 22:33:40 +01:00
Max Kellermann
d3d9a04e62
output/ao: use class SplitString instead of g_strsplit()
2014-12-02 22:29:41 +01:00
Max Kellermann
a66051216f
TagId3: add "pure" attributes
2014-12-02 22:17:47 +01:00
Max Kellermann
0debba0f6e
mixer/null: new mixer plugin
2014-12-02 18:20:44 +01:00
Max Kellermann
f2bd2c318c
MixerType: convert to strictly-typed enum
2014-12-02 18:20:44 +01:00
Max Kellermann
21c42819c7
MixerType: rename to CamelCase
2014-12-02 18:19:31 +01:00
Max Kellermann
5899a272ef
decoder/gme: simplify ParseContainerPath()
...
Use simple string and path parsing functions instead of GLib's
g_pattern_match(), which was used in a very clumsy way.
2014-12-02 07:11:11 +01:00
Max Kellermann
27b4c62bc1
decoder/gme: merge get_container_name() and get_song_num()
...
There is duplicate code in the two.
2014-12-02 06:53:33 +01:00
Max Kellermann
b227fddec7
fs/Path: add methods GetBase() and GetDirectoryName()
2014-12-02 06:45:57 +01:00
Max Kellermann
2c1f1de33c
decoder/gme: get_song_num() returns unsigned
2014-12-01 23:28:21 +01:00
Max Kellermann
c26622cf8f
decoder/gme: move code to ScanMusicEmu()
2014-12-01 23:01:58 +01:00
Max Kellermann
9e91873428
decoder/gme: move code to ScanGmeInfo()
2014-12-01 22:56:48 +01:00
Max Kellermann
7363d50a1e
output/httpd/IcyMetaDataServer: use CopyString() instead of g_strlcpy()
2014-12-01 22:33:57 +01:00
Max Kellermann
15213a041d
output/httpd/IcyMetaDataServer: don't use GLib types
2014-12-01 22:31:29 +01:00
Max Kellermann
fb70a34c80
output/httpd/IcyMetaDataServer: make variables more local
2014-12-01 22:28:14 +01:00
Max Kellermann
fbf76c6d21
input/cdio_paranoia: use CopyString() instead of g_strlcpy()
2014-12-01 22:22:29 +01:00
Nix
811af02f56
Output: start with a null mixer.
...
There are code paths (mostly error cases) in which it is possible to
initialize an AudioOutput and then kill it without ever calling
audio_output_new(). In such a case, its destructor will attempt to
free a mixer that was never initialized, leading to an attempt to
take out a lock on a mutex that was similarly never initialized,
which hangs forever.
Fix by always initializing the mixer appropriately.
2014-12-01 22:14:09 +01:00
Max Kellermann
bc00c38f9d
lib/icu/Converter: add ICU-based backend
2014-12-01 21:56:48 +01:00
Max Kellermann
6eb1caa417
fs/Config: add HAVE_GLIB check
2014-11-30 20:35:26 +01:00
Max Kellermann
41efc1376e
fs/Config: swap #if/#else
2014-11-30 20:34:32 +01:00
Max Kellermann
0f35016773
lib/icu/Converter: add TODO comment
2014-11-30 19:08:38 +01:00
Max Kellermann
c641ca90a9
lib/icu/Collate: move code to Util.cxx
2014-11-30 10:53:05 +01:00
Max Kellermann
87c88fcb27
fs/Charset: move code to wrapper class IcuConverter
...
Prepare for a ICU-based backend without GLib.
2014-11-30 00:31:13 +01:00
Max Kellermann
4f80a129f1
fs/Charset: return std::string from PathFromUTF8()
...
Don't expose pointer that requires the caller to invoke g_free(),
because that's GLib-only.
2014-11-30 00:28:27 +01:00
Max Kellermann
6987f2ba82
fs/Charset: use macro HAVE_FS_CHARSET internally
2014-11-30 00:27:58 +01:00
Max Kellermann
563db580ae
fs/Charset: add DeinitFSCharset()
2014-11-29 23:47:48 +01:00
Max Kellermann
125daea16a
fs/Charset: add macro HAVE_FS_CHARSET
2014-11-29 23:36:44 +01:00
Max Kellermann
fd2c6b8a4b
fs/Charset: return Error on SetFSCharset() failure
...
Don't abort the process, let the caller decide instead.
2014-11-29 23:36:44 +01:00
Max Kellermann
5b1db917bc
fs/Config: remove bogus WIN32 check
2014-11-29 23:36:44 +01:00
Max Kellermann
849b0563ce
util/Alloc: add fallback for gcc 4.6
2014-11-28 19:44:32 +01:00
Max Kellermann
16a99ad515
Compiler.h: exclude clang from GCC_CHECK_VERSION()
2014-11-28 19:33:09 +01:00
Max Kellermann
d93172bee8
Compiler.h: add macro CLANG_OR_GCC_VERSION()
2014-11-28 19:09:56 +01:00
Max Kellermann
25429af122
Compiler.h: add macro GCC_OLDER_THAN()
2014-11-28 19:09:52 +01:00
Max Kellermann
4bfd104a23
util/Manual: reimplement GCC_CHECK_VERSION() using GCC_MAKE_VERSION()
2014-11-28 19:07:59 +01:00
Max Kellermann
7745067d99
Compiler.h: add macro GCC_MAKE_VERSION()
2014-11-28 19:00:26 +01:00
Max Kellermann
b19d3629b9
util/Manual: use GCC_CHECK_VERSION
2014-11-28 19:00:26 +01:00
Max Kellermann
84c519df09
util/Alloc: remove bogus "unused" attribute
2014-11-27 18:21:50 +01:00
Max Kellermann
737a56a030
release v0.19.5
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUdiYnAAoJECNuiljG20USDB4P/3RGHBV5XgdInmYKjGg89hex
YRiy3BVvrBri53wkj+3YwOi05Cx0fp0pCuwQ9Nm7bmPCwfdC3ASF+UBlBBhnLdfc
dlISXDHciuKDJwiTtTlBvaKCENoZhjAJQ1SOa5zceH7j/V/XbY0FauHCeE8Ek7ht
KjimIt1ft0mdgsGNfyisdfbnh/3r4T9V9tBs/wnr7oDTYS/eUX8vCDr5qYIZipjx
W6pug2m4nfDtHYtN5gv53WYCIm7MiXo9vh7hCjJHd3T3xqKwdWVuz5RRcZcgd9yT
WWlzOKAI1cgmU7rZaV6Gu+tAq9g7MpNLOGoeN6mhH9E8V16rKqvCiLaXMK5wEGs9
JWGsTBcbTnSCdG1iivJtP2kOGVHXvNthbSunzwmbowMATi6xIBm8AoqidSzCaW1F
C7mss8VlhkHdCtHTvyK3XCE2wGEbx4OfsfsL3PWBonrs0DpNOR2AqWQYLsZUhbff
RV7aeyphMVvgLP67cT9YnGswKGEPOqP2EO9Mh51AQ7wiUESZ+O5J9YHWCc0E3SML
qs9A+lpA8fstj0QJewx/HNofiHXw5A2THjs/BVqs3vYkcHnTI94Nmdxps82r/rEA
oy9d6nQqglkPJZF3JwHqJMj1VtBIhihaHBpnLeyegjtiajZV6mVNVg9ezt9EpEA6
OjJFh2xzQJ7w5qL0gy2R
=1kbY
-----END PGP SIGNATURE-----
Merge tag 'v0.19.5'
2014-11-26 20:19:17 +01:00
Max Kellermann
27ce80544f
release v0.18.19
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUdiMjAAoJECNuiljG20USjnMP/jQl/aIEiUwbwqq1F8+0wlFh
lX5xix5+7QuvTH2Lw5brNSRdVRsHGGeDqVcSi1zY4tgNXK/EBmS1mDVKWQO5qJd9
v+ueDRr7xI3HFECe0J7h2Q5GGD/YkeSyjB2k7C7I7t1axukLOXbP+qVyz6/d1azZ
SkUKKmIUD4KdJuDWy34JYYiltGl94JNyTBvC+jJV4Mbg2qd7XV6MSvJipiK6aM05
UsEza9bF/jG2aHL/xtR+dEnNLAoFoZ/h1RqUoYw4DLEKxfip+E3MD4sEx6Sg8XSv
v2rZQrMhl2LvJkwCjo57KrJ4YmHK0U3zg3ElDefqRsW4J10x5d3hhOINJPpHUpyZ
T5RvoDCJ5BL+6wg0tA57338pNydSBQDV5+WjI9+vD8ahnZlFgjY+OoJDxkxtFlYz
pLazEQbkUWlU62ZGW/dVpwgYInalNH9ZTrvelwXtGmwMfLhp01S4DHX3ipFgmMGd
do3x/FoVRyOnFWQPotga3+ZoARqmXhfQ70DqESoajBHeLTzYBs9vh+fw6y1iVeGb
rIBEIyMPlyuPt+2NrLflo6o0VMYB8MV3nh3P3DX8Ywavae3+k4WPGx2w/MEM34lF
sWUDXfZeCwJ5rrXeyP/s2C9ZmJ+Bm6WlxQ0gUZXMtrfDShPBY8gHzGi4m3ooslde
OZCIokCaATDa9Fp6CRD8
=I9PV
-----END PGP SIGNATURE-----
Merge tag 'v0.18.19' into v0.19.x
2014-11-26 20:02:57 +01:00
Max Kellermann
12b6959ea2
Playlist: reset song priority on playback
...
A priority should be a volatile thing: it should schedule a song for
playing back once, but it should not affect the next time the queue
gets played.
2014-11-26 08:54:16 +01:00
Max Kellermann
7519768cb1
Queue: add "reorder" parameter to SetPriority()
2014-11-26 08:50:58 +01:00
Max Kellermann
9af470c92d
Playlist: add method SongStarted()
...
Empty currently, but code will be added song.
2014-11-26 08:49:19 +01:00
Max Kellermann
ac8c1d0a01
Playlist: move more functions into the class
2014-11-26 08:34:51 +01:00
Max Kellermann
921d01b59d
Playlist: add another assertion
2014-11-26 08:25:48 +01:00
Max Kellermann
8aa4a66ba0
Playlist: move playlist_song_started() into the class
2014-11-26 08:24:25 +01:00
Max Kellermann
2e7153d8d6
DatabasePrint: cast int to unsigned before comparison
...
Fixes compiler warning.
2014-11-26 08:21:55 +01:00
Max Kellermann
70b5a81a29
{Tag,Song}Print, PlayerCommands: report song duration with milliseconds precision
2014-11-25 17:46:43 +01:00
Max Kellermann
83fd822e8b
ApeTag: drop support for non-standard tag "album artist"
...
This was used by proprietary software. MPD adopted it a few years
ago, which turns out to be a mistake, because it now creates problems
for some MPD users (http://bugs.musicpd.org/view.php?id=4168 ).
2014-11-25 17:07:08 +01:00
Max Kellermann
e72eef421b
lib/nfs/FileReader: clean up on disconnect
...
Avoids crash because Close() invokes a call on a destructed
NfsConnection.
2014-11-25 14:02:15 +01:00
Max Kellermann
016063c810
lib/nfs/FileReader: move code to CancelOrClose()
2014-11-25 14:00:32 +01:00
Max Kellermann
38f19981b2
lib/nfs/FileReader: reset state in OnNfsConnectionFailed()
...
Avoid calling NfsConnection::RemoveLease(), because the lease has been
removed already.
2014-11-25 13:51:09 +01:00
Max Kellermann
40dd968f13
lib/nfs/FileReader: update "state" in OnNfsError()
...
Clean up the "state" to indicate that there is no longer any
asynchronous operation. Fixes another NFS-related crash due to
cleanup of a non-existing asynchronous operation.
2014-11-25 13:39:42 +01:00
Max Kellermann
3cef348f30
lib/nfs/Manager: defer NfsConnection destruction
...
Avoids a crash that occurs when NfsConnection::OnSocketReady()
dereferences itself before returning.
2014-11-25 13:31:18 +01:00
Max Kellermann
b293b16007
lib/nfs/Connection: broadcast error before closing connection
...
During the NfsLease::OnNfsConnectionFailed() call, the old (defunct)
nfs_context may be used to close file handles. Such code does not yet
exist, but will be added soon to fix other bugs.
2014-11-25 13:27:06 +01:00
Max Kellermann
f5f43db2da
lib/nfs/Connection: cancel DeferredMonitor on disconnect
...
Fixes potential second mount attempt after the old connection to the
NFS server was shut down.
2014-11-25 13:22:25 +01:00
Max Kellermann
029555d192
lib/nfs/FileReader: include Compiler.h for "final" fallback
2014-11-25 13:18:22 +01:00
Max Kellermann
fa4d202e71
decoder/mp4v2: remove because of incompatible license
...
libmp4v2 is licensed under MPL 1.1, which is incompatible with GPLv2.
Unfortunately, this means that we must remove the plugin.
More information can be found in the Debian bug report:
http://bugs.debian.org/767504
2014-11-25 13:10:52 +01:00
Max Kellermann
a8ebfd7a92
event/DeferredMonitor: include cleanup
2014-11-25 10:44:06 +01:00
Max Kellermann
a254f5a3a8
archive/zzip: fix inverted error handler
...
Set the Error when zzip_seek()==-1 and not on success. Fixes a crash
after seeking.
2014-11-24 22:08:50 +01:00
Max Kellermann
bf15cac980
Merge branch 'v0.19.x'
2014-11-24 09:00:14 +01:00
Max Kellermann
951bad46e0
decoder/{dsdiff,dsf,opus}: fix deadlock while seeking
2014-11-24 08:54:30 +01:00
Max Kellermann
0709065f50
Java/File: fix include guard
2014-11-24 07:51:25 +01:00
Max Kellermann
c643b6ff16
configure.ac: add macro MPD_ENABLE_AUTO_PKG_LIB
2014-11-22 23:50:21 +01:00
Max Kellermann
b3f5b4932c
configure.ac: add macro MPD_ENABLE_AUTO_PKG
...
Simplify the definition of many build options.
2014-11-21 22:19:57 +01:00
Max Kellermann
ed001e0cfb
configure.ac: add option "--disable-daemon"
2014-11-20 20:38:37 +01:00
Max Kellermann
26382713c2
release v0.19.4
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUa674AAoJECNuiljG20USNMUQAIpl0/cJI98dljXWZ4uzaRoc
JMPTvWkVUP9qBN3VnNISR+2NXsL7iGO6rXh9MACpfv8mcOf+/jg8LCX/3/RzDkP+
lnhFqQ+xnl3TUjwpABKM2lU87I8QXamtCbxEvONTpcH4Dt/GVfBolrlzBu1G17cF
7f07uZntpz/Dhtg0SWCVLS+QDGQtDNCgpXcfGlxWsGfEBWKAC+Aifv+2QDA0nXOU
WfOU2r3vV3UNmQSu0/O6cyB5Du01SVVYSa5BNpLu3o6CHawAhVcTXdLX12JSDahk
Qjy9VAF9bX+odZJ9M4xAlRBZYZWKfiZ6Dt0FevevqAllkd2GlQJPXWWXWXJ4PWd+
a3K/js1hLgCIO2qk8aDKaFGTOnVk5F5eFN6d+jh5gwcuFiGa0CcSWxaCEe7vBVy3
CTukuUBlgN4hA9gBNNvJrpbV+BO8ZY1LkS6w3E95Qz3VrwclTl5qKW2+6TYLMKBA
VIBQM8TwOHAKyhn50vhBfk6Zz6c28LkrMc0Ycm5xFD1I3fC6E62vqDVfBUMr9HJi
fG3PmxcrSTH8ZKgSADjF7DtR0M5munUrQhw7w0pwXUpKuDvUg3nIHulu88Dl9rZq
MDODNRpBkQwGXs9i4SxLTSA9nQtlAh3x3mqtjOf1i2jhkuSJ8R8jQne+8wDaT0Bt
dXD9h+qc/8+FOnrB0uYd
=LYOC
-----END PGP SIGNATURE-----
Merge tag 'v0.19.4'
2014-11-18 21:47:20 +01:00
Max Kellermann
dc03f003ac
release v0.18.18
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUa62OAAoJECNuiljG20US1CkP/3YaAg76hJDaeFAyi7/10lOs
yI8tPmpQk8S+nuclsBJeIr+9xNRsjb1ebW4tI9uBRxqMT10SF7rMCH/qAmgnS9tQ
6M48hF0o9xegjz4x5BosEJjXtiekYN068Xi/hk+H27guVy14f6Xx7oRpdr5oI/O0
F83D1V2+vs6FuOyn42UQQNHVlYMac5SScHoSFomnwRYWI2wb2ay4H5Dlykb5BUl0
tTjJ2lYwN18vUoMxjmCNS+bLd7jag6FZ/PXntB1zXe22R17eAIuFZAMKaQvnQtUi
QZjFPhpd+mBsZLfokB3belyNNb4F6qSG2W6lZrFRB+SU/LqnY2AL/dxPJD9eiufs
5jEIOw9hNBBKo217+hkPwp5pAF50u11tKXUXbKGeR42zAO0zll/+g2afVwoqdAfD
llPDyQyXiB3tmA1bgJD7u9gaud3UaaXoxajPb5LnmklzGxiN5u1rnoo+E5ppBvQ4
31wPHGpzsjxEC7Xn9hErPP17jYXY1HT/xRb8XZNrFqJVZxSyjqQlDWomhCWDcvPc
Du1PyKaQ08zgElEM5trwC9RjJxQdr0sckQcTnYC/0ksfJ7Nhh8M2yepEI/gmWbnO
JBQ7YzpQhE9oMMH8jzVLLdC44yF6QvXcGQ3D9eUfwvPk9Z70mHlNI3Q6kbZ76U5j
RHLp+oSaxFUXfPdciZaw
=GO+k
-----END PGP SIGNATURE-----
Merge tag 'v0.18.18' into v0.19.x
2014-11-18 21:38:44 +01:00
Max Kellermann
460cfba6ff
QueueCommands: workaround for buggy clients that send "add /"
2014-11-18 21:31:54 +01:00
Max Kellermann
c8b93d6573
Client: assume uid==0 is local socket
...
A negative uid value means it's not a "local socket" (PF_LOCAL).
uid==0 means user "root" connected.
2014-11-18 20:56:27 +01:00
Max Kellermann
3f5f96ac91
event/ServerSocket: fix get_remote_uid() error value
...
Must return -1 on error, not 0. 0 is root.
2014-11-18 20:53:59 +01:00
Max Kellermann
f37481f843
DatabaseCommands: add "window" parameter to "search"/"find"
2014-11-18 14:31:27 +01:00
Max Kellermann
7c6b991de7
decoder/opus: add MIME types audio/ogg and application/ogg
2014-11-12 15:16:34 +01:00
Florent Le Coz
7e7b403043
Construct a Null AllocatedPath if the filename conversion into UTF8 failed
2014-11-11 17:15:19 +01:00
Max Kellermann
c3f6502be2
release v0.19.3
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABAgAGBQJUYeOEAAoJECNuiljG20USToUP/2g/M7jKlM1MpADeFh2TOYEC
dnSDPFCMosu1Hjxyz/rzwqOh7FlMnYPtANtVn90v4D6XVkuhv5WMwSnlMBWJXspy
VWA6bewGihbWvDvOcLcYsb31VH78JnvNjxxDaeakVZ7Bq43wQBJRNi2VKEKMmg27
Shp8MUL+UXsMMtLABvZlhajPQS+CNQB1DijP7wlemrbPpmUtmeHEgbpmQk9BKBq0
eXJt5QRQRgI9J51j1yaXSaeKsPFk/2AV36KMBv3kh+rgCGWetd1XeBkknN/HjNw4
2qWsQ8Ng3s/kOCZhEa0nXqnR+w2RtpOJ4bOQaIDeBSzCdXSeDWq5yh/kHKHsXzO4
5uq++GwCcm/Odwj17rJ4wJDGnl4DkP8abQIPb4AiwfpuUtQ+fHvQuNU0Dc2SY4Oz
KkNU4nIcJwaHlDAQDsWjowAJJC2W0GPSGzVKCWjH2W3kmJZq2hV3o3y3YOMH8gpN
wmdmqE8JKCOJm5QxnfoiMKoUxUgNMxN3iceMnDkNqz/g1uOq5TUk8B5adLuY0OSg
n+2eDBaUNe2tCbxgIeKxVlXrWVBZyrzwFk3FGyVuGhobmVJ1Wwvx5kOIVvwo0JTC
LSc8FP4R8/87G1XlVMo0alqChLpXbH+ncaGhdN74pKVP8TFtJCoTPgRPj+svF9YY
A7AiNXCXCCOD78gKYCtu
=GH2D
-----END PGP SIGNATURE-----
Merge tag 'v0.19.3'
2014-11-11 11:43:52 +01:00
Max Kellermann
c98cb1d6f9
decoder/opus: support chained streams
2014-11-11 11:20:18 +01:00
Max Kellermann
ba6f2b0467
decoder/opus: move code to HandleEOS()
2014-11-11 11:20:16 +01:00
Max Kellermann
23465ad985
decoder/opus: improved error logging
2014-11-11 11:20:03 +01:00
Max Kellermann
7886a14b74
decoder/opus: fix mistyped LoadEOSPacket() return value
2014-11-11 11:18:51 +01:00
Max Kellermann
466b6a23cd
decoder/opus: eliminate flag "found_opus"
...
Check opus_decoder!=nullptr instead.
2014-11-11 08:30:11 +01:00
Max Kellermann
4a04f73434
decoder/opus: add constexpr output_buffer_frames
2014-11-11 07:45:31 +01:00
Misty De Meo
134cb6a017
Main: fix compilation on OS X using non-Apple compilers
...
Commit d42c0f1dc5
added an OS X-specific
method of calling mpd_main_after_fork(), which uses Grand Central
Dispatch. Since this uses a block literal, it breaks compilation on
compilers which don't support the block extension, e.g. non-Apple
compilers. This affects users on older OS X releases with GCD (which
depend on older Clang releases, or Apple GCCs, which don't support the
C++11 features MPD needs); or which don't support GCD at all (10.5 and
lower).
This patch changes the #ifdef so that the non-GCD code is used
as it was on OS X before this patch if blocks aren't available, via
checking __BLOCKS__ macro.
2014-11-11 06:22:24 +01:00
Max Kellermann
8d036c4b7c
pcm/SoxrResampler: round output buffer size up
...
The old formula calculates the output buffer size with "regular"
rounding (to the nearest integer), however sometimes, that is
insufficient and the last sample cannot be resampled. This causes
audible distortions. By changing the formula to consider the worst
case (always round up), this problem is eliminated.
2014-11-10 22:52:17 +01:00
Max Kellermann
c64ad78c7b
decoder/ffmpeg: support opus
2014-11-10 18:00:30 +01:00