Commit Graph

1008 Commits

Author SHA1 Message Date
Max Kellermann 8b217d5313 fs/io/FileOutputStream: use O_TMPFILE if available
The Linux feature allows writing new files to an invisible file, and
then replace the old file.  This preserves the old file if we get
interrupted by some event.
2015-01-06 19:38:55 +01:00
Max Kellermann 674d14879f Merge branch 'v0.19.x' 2015-01-06 12:54:46 +01:00
Max Kellermann 37e9010887 input/async: reset the "open" flag after seeking successfully
Fixes a problem with the "curl" input plugin: IsEOF() always returns
true because the "open" flag was cleared by
CurlInputStream::RequestDone() when end-of-stream was reached.  This
flag stays false even when seeking to another position has succeeded.

This patch resets the "open" flag to true after seeking successfully.
2015-01-06 12:46:28 +01:00
Max Kellermann 4bd2c75056 thread/Name: disable pthread_setname_np() on NetBSD
NetBSD's pthread_setname_np() prototype is incompatible with the rest
of the world, and it requires to pass the string argument as a
non-const pointer.  Instead of working around this misdesign, I hereby
disable the feature on NetBSD.
2015-01-06 12:08:36 +01:00
Max Kellermann b3435ae432 output/recorder: implement send_tag() 2014-12-26 15:03:22 +01:00
Max Kellermann 412bedb697 Merge branch 'v0.19.x' 2014-12-26 14:40:32 +01:00
Max Kellermann 940cab8620 Merge branch 'v0.18.x' into v0.19.x 2014-12-26 14:28:52 +01:00
Max Kellermann 53f4044890 util/{ASCII,UriUtil}, ...: work around -Wtautological-pointer-compare
New in clang 3.6.
2014-12-26 13:43:32 +01:00
Max Kellermann 805caa30ce configure.ac: prepare for 0.18.22 2014-12-26 13:23:04 +01:00
Max Kellermann c4c2da06b7 output/jack: use jack_ringbuffer_get_write_vector()
Reduce number of libjack calls.
2014-12-24 23:14:15 +01:00
Max Kellermann a56949e9fa decoder/ffmpeg: support interleaved floating point 2014-12-23 20:51:08 +01:00
Max Kellermann ea96919b80 Merge branch 'v0.19.x' 2014-12-23 20:43:15 +01:00
Max Kellermann 43da4c0eca input/mms: limit the mmsx_read() size 2014-12-23 20:34:45 +01:00
Jan Brittenson 35db88affe DSF ID3 tags hitting 4k size limit
Here's a change to dynamically allocate the DSD ID3 tag buffer.
Pretty much anything with cover art is going to exceed the existing,
static 4k limit...  Here's a change to dynamically allocate the buffer
and sanity check it at some upper limit.  I rather arbitrarily pulled
256k out of thin air just to keep a corrupt file from causing it to
trying to allocate a buffer larger than available memory.
2014-12-23 09:49:33 +01:00
Max Kellermann e38faca455 configure.ac: prepare for 0.19.8 2014-12-23 09:48:31 +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 6d89020f80 release v0.19.7 2014-12-17 19:20:54 +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 acb798e544 release v0.18.21 2014-12-17 19:13:47 +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 d8351772d3 configure.ac: prepare for 0.18.21 2014-12-15 00:39:52 +01:00
Max Kellermann 82da364b8b lib/nfs/Connection: implement mount timeout 2014-12-15 00:05:53 +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 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 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 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
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 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 4741d7bfe2 Merge branch 'v0.19.x' 2014-12-12 13:14:29 +01:00
Max Kellermann 673336297d decoder/ffmpeg: support stream tags 2014-12-11 10:52:40 +01:00
Max Kellermann 310ab7d41b NEWS: mention ffmpeg/MixRamp 2014-12-10 14:01:12 +01:00
Max Kellermann fc1796f3e8 decoder/ffmpeg: support ReplayGain and MixRamp 2014-12-10 13:45:29 +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 8904127c10 configure.ac: prepare for 0.19.7 2014-12-09 13:09:03 +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 c46f48abec release v0.19.6 2014-12-08 15:12:41 +01:00
Max Kellermann 4acbf7b90d android/build.py: update FFmpeg to 2.5 2014-12-08 15:05:49 +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 1b5f33a435 release v0.18.20 2014-12-08 14:57:17 +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 dc11dea7cc configure.ac: prepare for 0.18.20 2014-12-08 14:13:20 +01:00
Max Kellermann d435dcdca4 configure.ac: make GLib optional by default
Only very few (minor) features still depend on GLib.
2014-12-05 00:21:48 +01:00
Max Kellermann 0debba0f6e mixer/null: new mixer plugin 2014-12-02 18:20:44 +01:00
Max Kellermann be492ed108 android: update libFLAC to 1.3.1
Due to security vulnerabilities.
2014-11-28 21:08:27 +01:00
Max Kellermann 03d2fb450f configure.ac: prepare for 0.19.6 2014-11-28 20:13:57 +01:00