Commit Graph

12528 Commits

Author SHA1 Message Date
Max Kellermann 18f350cd04 player/Thread: initialize MusicChunk::bit_rate in SendSilence()
This attribute is not particularly important, but it was
uninitialized.
2017-12-03 10:54:14 +01:00
Yue Wang 7ba7ce3af7 Correctly set the mixer plugin for osx output 2017-12-02 23:29:23 -08:00
Max Kellermann 478180ebe4 queue/PlaylistEdit: shuffle appended songs only within its priority group
Fixes #165.
2017-12-02 17:17:02 +01:00
Max Kellermann 4a3059f509 queue/PlaylistControl: don't skip highest priority song on "play"
When starting playback with a specific song which does not have the
highest priority, the previous highest priority song was skipped
completely because its order was "swapped".  This commit changes to a
more expensive operation which inserts the selected song into the
order list.

This fixes a small part of #165
2017-12-02 16:25:32 +01:00
Max Kellermann 78728138a0 lib/upnp/Compat: disable the 1.8 API emulation with libupnp 1.6.24
libupnp 1.6.24 added a few badly designed macros which break the MPD
build:

 8177a4195a/

To work around this, we disable our emulation functions (from
714011c81e) on this libupnp version.

Closes #163
2017-12-02 14:47:27 +01:00
Max Kellermann 087fcc4e6e queue/Save: fix inverted check
That '!' accidently got lost in commit
75582d47b9

D'oh!

Closes #162
2017-11-27 23:02:45 +01:00
FlashSystems 63fc98591d Fix for "Mount-Points are purged from database on update/rescan."
Signed-off-by: FlashSystems <developer@flashsystems.de>
2017-11-27 22:34:49 +01:00
Max Kellermann 53def9a682 increment version number to 0.20.13 2017-11-27 22:32:55 +01:00
Max Kellermann 520c520512 player/Listener: add "noexcept" 2017-11-26 12:39:09 +01:00
Max Kellermann a6910313b4 Queue: add "noexcept" 2017-11-26 12:25:53 +01:00
Max Kellermann 2f32df1f09 queue/IdTable: make non-copyable 2017-11-26 12:24:35 +01:00
Max Kellermann 23adf50194 queue/IdTable: make "data" pointer const 2017-11-26 12:24:24 +01:00
Max Kellermann 0691ecc052 queue/IdTable: add "noexcept" 2017-11-26 12:23:46 +01:00
Max Kellermann d917f44b5b Queue: make configuration attributes const 2017-11-26 12:22:50 +01:00
Max Kellermann 602bb7170a Queue: use C++11 initializer 2017-11-26 12:21:36 +01:00
Max Kellermann 75582d47b9 SongSave: wrap DetachedSong* in std::unique_ptr 2017-11-26 12:18:31 +01:00
Max Kellermann 28fdf1e9ed decoder/Control: wrap DetachedSong* in std::unique_ptr 2017-11-26 12:16:53 +01:00
Max Kellermann 9a8a3beae4 decoder/Control: add "noexcept" 2017-11-26 12:16:53 +01:00
Max Kellermann 2a774a1fea playlist/{flac,m3u}: use std::make_unique 2017-11-26 12:10:33 +01:00
Max Kellermann b13b023c6b player/Control: wrap DetachedSong* in std::unique_ptr 2017-11-26 12:06:38 +01:00
Max Kellermann b652ad9568 queue/Playlist: cast next_song to bool, because that is all we need in SyncWithPlayer() 2017-11-26 12:06:29 +01:00
Max Kellermann 624e679e35 player/Control: add "noexcept" 2017-11-26 12:02:08 +01:00
Max Kellermann 618704f504 thread/*: add "noexcept" 2017-11-26 11:58:53 +01:00
Max Kellermann 3b3ec402d6 command/CommandListBuilder: use C++11 initializer 2017-11-26 11:11:36 +01:00
Max Kellermann 2b3c1d640e release v0.20.12
-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAloZt0YQHG1heEBtdXNp
 Y3BkLm9yZwAKCRAjbopYxttFElF7D/9DIkK8ArcrqtGvLQFseOucf0FPmAD7csoq
 oDN4TL8UGUSYxcSt3wQqt6rp5JyWAFTuXPpneytqkZ0tW04y4kkvmIrRkYzuBLgt
 yupg1G5fRmidwcqdnb6LqgSdW66pY3U6keaED7LVnMrJbd5MM8R7FejiZFoWmD4C
 c9pUU79MbeRk0w2F9Ws0bkd+yU7lUiolcqOg2VK25MZnObI7qf+/fIKOVK0Q9Q2W
 AdHLHNliySYPBT/po5YN+VAWPcxSFHXkfN552x0N/U1D/klPLmP1q724frFT+DRQ
 vXC5ojDDmSc+uUGr8D5IESfzMOPFj5ag0SqPSNe7Cp5amcy/chNqmo/XKEGqtB+X
 BI/DfRHEPGz5wtz6x+AcxFdE6LBAjMpQ2H3ybxGDK1396dNsngAA/g8eyvnzie/2
 USQO10O9Ymhezt7lMqhMLxJC/5Q0JLsKRIgqCxABQfTh14JF+c5bkT3zetabA87r
 CSyHGr3+tN4KtSJwefGjaGTCy5lN1SB8bRgWVLVVpPYAvtsNS1LwwTyeI3AtYmxr
 fylkATAHawSXzdgxgzFA8GmscxaxO/gLud+9ekb33ZIq9bnXiOXpY5u98bxCPWkn
 JgzeC4E6xnI3Ft+Ss7Bu0zOgSl2jUiOV7zAy7z8Lo9Qv6QYuIvSi9m+Snxstkul0
 9QwG6bA+YA==
 =BUsZ
 -----END PGP SIGNATURE-----

Merge tag 'v0.20.12'

release v0.20.12
2017-11-25 19:47:56 +01:00
Max Kellermann 323231d1dd release v0.20.12 2017-11-25 19:32:37 +01:00
Max Kellermann 714011c81e lib/upnp: adapt to libupnp 1.8 API changes
Closes #155
2017-11-16 11:39:11 +01:00
Max Kellermann 952ff4207b lib/upnp/Callback: make "evp" parameter const 2017-11-16 11:37:58 +01:00
Max Kellermann 150b16ec2c lib/upnp/Discovery: make Upnp_Discovery pointers const 2017-11-16 11:37:04 +01:00
Max Kellermann f70b4e02c4 Merge branch 'v0.20.x' 2017-11-14 21:21:14 +01:00
Max Kellermann c98bc4a243 playlist/PlaylistRegistry: use LockRewind() instead of Rewind()
Fixes a deadlock caused by commit
31ab78ae8e.  That commit was not
actually bad - just these two calls have always been bad, which went
unnoticed for a long time.
2017-11-14 21:19:22 +01:00
Max Kellermann 7d579e7400 lib/alsa/NonBlock: throw exception on error
Avoid another potential deadlock: if no file descriptors are
registered, our non-blocking ALSA code cannot ever work.
2017-11-14 21:08:07 +01:00
Max Kellermann e0f777d4eb output/alsa: move code to LockCaughtError() 2017-11-14 21:07:59 +01:00
Max Kellermann febd1ad09c output/alsa: fix deadlock bug
After UnlockActivate() returns, we not only need to check for errors,
but also for more room in the ring buffer.  If we don't check the ring
buffer, it may be drained already, and the cond.wait() call will never
finish.

Closes #151
2017-11-14 21:02:53 +01:00
Max Kellermann 1040b85785 lib/{curl,upnp}: add more exception handlers
Bugs found by Coverity.
2017-11-14 20:05:44 +01:00
Max Kellermann e2c81aa9ea Merge branch 'v0.20.x' 2017-11-14 12:31:13 +01:00
Max Kellermann 014f8cd693 output/httpd: flush encoder after tag
Without the flush, ReadPage() may not return any data, or not all
data.  This may result in incomplete ddata the new "header" page,
corrupting streams with some encoders such as Vorbis.

Fixes #145
2017-11-14 12:00:14 +01:00
Max Kellermann aea37e46e3 encoder/vorbis: default to quality 3
Don't require a quality or bitrate setting.  If nothing is set, don't
fail startup - just go with a good default.  A quality setting of 3 is
what "oggenc" defaults to as well.
2017-11-14 11:30:28 +01:00
Max Kellermann 31ab78ae8e input/{cdio,ffmpeg,file,smbclient}: unlock the mutex during blocking I/O
InputStream::Read() and InputStream::Seek() are called with the mutex
locked.  That means the implementation must not block, or unlock the
mutex before calling into blocking code.

Previously, a slow CD drive could stall the whole MPD process,
including the main thread, due to this problem.

Closes #149
2017-11-13 17:13:10 +01:00
Max Kellermann f82e1453e4 input/smbclient: use std::lock_guard 2017-11-13 17:13:10 +01:00
Max Kellermann e4a147218b Merge branch 'v0.20.x' 2017-11-12 18:55:12 +01:00
Max Kellermann a2b77c8813 decoder/ffmpeg, test/test_protocol: catch exceptions by reference
Work around -Werror=catch-value.
2017-11-12 18:54:29 +01:00
Max Kellermann 18add29472 configure.ac: disable -Wnoexcept-type
Workaround for #146.
2017-11-12 18:54:29 +01:00
Max Kellermann 4b2b89eb5e lib/xiph: add "noexcept" 2017-11-12 18:35:49 +01:00
Max Kellermann 4b2bb88375 lib/upnp: add "noexcept" 2017-11-12 18:33:58 +01:00
Max Kellermann fb01e41e8a lib/sqlite: add "noexcept" 2017-11-12 18:26:03 +01:00
Max Kellermann ff9759c09d lib/pulse: add "noexcept" 2017-11-12 18:25:16 +01:00
Max Kellermann a92e0e8540 lib/nfs: add "noexcept" 2017-11-12 18:09:07 +01:00
Max Kellermann 9d47b220a4 lib/curl: add "noexcept" 2017-11-12 17:49:58 +01:00
Max Kellermann c582a9faae event/MultiSocketMonitor: add "noexcept" 2017-11-12 17:42:50 +01:00