Max Kellermann
52eff41379
remove Haiku support
...
Haiku support has been unmaintained for many years, and this issue has
been open for more than 5 years, but apparently the Haiku people have
lost interest:
https://github.com/MusicPlayerDaemon/MPD/pull/183
Haiku support was therefore deprecated by this commit 4 years ago:
7de8fd04a4
- but in those 4 years, nobody stepped up to adopt
maintainership.
I don't have any computer (or VM) with Haiku and there is no CI with
Haiku support, so I'm unable to adapt the Haiku specific code to API
changes.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/182
Closes https://github.com/MusicPlayerDaemon/MPD/issues/185
2022-07-12 13:14:49 +02:00
Max Kellermann
eb7d321cb8
Merge branch 'v0.23.x'
2022-07-12 11:59:49 +02:00
Max Kellermann
79f9b268bb
increment version number to 0.23.9
2022-07-12 11:50:47 +02:00
Max Kellermann
349882ed75
decoder/wavpack: require libwavpack version 5
2022-07-11 22:04:15 +02:00
Max Kellermann
4464310e74
release v0.23.8
...
-----BEGIN PGP SIGNATURE-----
iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmLIuEINHG1heEBibGFy
Zy5kZQAKCRAjbopYxttFEm1JD/9j/a82cNccPLUfTptgb8ak5fAnYA65edbtGPr9
dLv1BSjMrsTpMpgJ8FT5wjQn7H5drmE2GLvCN+oZUqaSz99F5BC+Hof7bfvv/sVF
opLTiZn2iAtanwtHP6ZEPPswTbdN2FgtZeFhJIGmFspghJV5hdbM7vbwNX1SIpc6
LH+WvE42ZG/w5wNajRvr6/lPYQhJc70wUqODXLzgdYu3WYmIclUAyFv7tVr067Hh
uXP6b6MZV60cqh+a0xX01n5kwDo2reqmmE0IY0Le7H6xg5quE7DzCVElTOAa7R1x
MZJCqY/thjvXl3JfHW5/ZwmiNrxsmx8nzGhrDyg4tb3hjbwip1iEI/OgnDyacdl4
34njeFxO40AJhienDWLAp2oSYh4pNdfjFvnfSJXeQ9HD2sIzGi692WUgzjdM1VmA
83iVRe9Bx4OTyAg1jwPOFyAYnRqhWsYFSp7GjwNBQwTRSwwBtmOxwAhWKwuspuLi
YfDoF7wGYVY5lOXuDBw+rvhGRWqGKsbQzZFy0bQFoD8dbwG9huLJCumNWZCbqELF
TAfU5sRcQlAjwSGncEpKOitYjdrtylYRb12p2DSedFuBWxcRGGPiCFfTVUKV8hz1
LGD1xj1g/4ClEUbfDNVwa7sAEO7o84Qojfkt/siBjhE427i11CpPGIlMCVeO2FkG
fI1f3Q==
=KgWM
-----END PGP SIGNATURE-----
Merge tag 'v0.23.8'
release v0.23.8
2022-07-09 01:08:16 +02:00
Max Kellermann
1f28790476
release v0.23.8
2022-07-09 01:05:38 +02:00
Max Kellermann
c8dae95eff
output/PipeWire: after Cancel(), refill buffer before resuming playback
...
Deactivate the stream in Cancel(). This fixes stuttering after a
manual song change by refilling the whole ring buffer before
reactivating the stream.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1354
2022-07-09 01:03:36 +02:00
Max Kellermann
547a084c7e
output/PipeWire: call pw_stream_flush() in Cancel()
...
Clear not only MPD's ring buffer, but also libpipewire's buffers, to
avoid playing some audio from the previous song after a manual song
change.
Fixes part 1 of https://github.com/MusicPlayerDaemon/MPD/issues/1354
2022-07-09 01:01:29 +02:00
Max Kellermann
6b430ba271
output/PipeWire: activate stream in Drain()
2022-07-09 00:53:20 +02:00
Max Kellermann
bc6924d303
output/snapcast: fix busy loop while paused
...
Removing the LockHasClients(); this code was copied from the "httpd"
output plugin, but unlike "httpd", the SnapCast output plugin does not
feed silence while paused, so we need to implement a delay to avoid
busy-looping the CPU.
As a side effect, this eliminates the suttering after resuming
playback, because the timer now gets reset even if there is a client.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1394
2022-07-08 22:55:41 +02:00
Max Kellermann
02b00f9146
output/PipeWire: don't force initial volume=100%
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1484
2022-07-08 18:25:41 +02:00
Max Kellermann
f08944253b
output/PipeWire: check SPA_PROP_channelVolumes, not control name
...
Since PipeWire 0.3.53, there is no control name anymore, therefore the
name check doesn't work anymore, breaking volume change events.
This obsoletes the crash bug fix in commit 2ee57f9b0d
2022-07-08 18:06:36 +02:00
Max Kellermann
6857286b42
decoder/Thread: don't scan for replay gain tags in PCM streams
...
This disables a long delay for playing songs from the cdio_paranoia
input plugin if ReplayGain is enabled.
2022-07-08 16:33:19 +02:00
Max Kellermann
c32dceb4d4
input/CdioParanoia: remove loop from Read()
...
The Read() method is not required to fill the whole buffer. By
returning as soon as at least one byte was read, we allow faster
cancellation.
2022-07-08 16:01:23 +02:00
Max Kellermann
8eb3164878
input/CdioParanoia: fix crash if no drive was found
...
cdio_get_devices_with_cap() can return nullptr if no drive was found,
or it can instead return an empty list. The latter caused MPD to
crash.
2022-07-08 12:05:20 +02:00
Max Kellermann
4d6ae6ffdd
output/PipeWire: add nullptr check to SetVolume()
...
If the PipeWire output has not yet been enabled and no thread_loop has
been created yet, a nullptr dereference in SetVolume() was possible
because nullptr was passed to pw_thread_loop_lock().
2022-07-08 11:32:59 +02:00
Max Kellermann
47680f936b
mixer/All: auto-open "global" mixers
...
If a mixer is "global", it is available even if the output isn't
open. However, since the check was changed from IsEnabled() to
IsReallyEnabled(), enabled outputs have not yet been used have not
been "really" enabled yet, preventing using the mixer.
Fixes a regression by commit 35dbc1a90c
(part of https://github.com/MusicPlayerDaemon/MPD/pull/1480 ).
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1563
2022-07-08 11:05:26 +02:00
Max Kellermann
2d7181105d
output/MultipleOutputs: SetVolume() throws on error
...
This reveals more about the nature of an error instead of just
returning "problems setting volume".
2022-07-08 10:56:55 +02:00
Max Kellermann
138738075b
libfmt 9 support
...
libfmt version 9 broke the API by removing fmt::make_args_checked().
Fixes https://bugs.debian.org/1014543
2022-07-08 10:06:53 +02:00
Max Kellermann
7dd65f3028
Merge branch 'v0.23.x'
2022-07-04 19:21:18 +02:00
Max Kellermann
2ee57f9b0d
output/PipeWire: add nullptr check, fixing crash with PipeWire 0.3.53
...
Since PipeWire 0.3.53, control names can apparently be nulled, leading
to crashes in applications assertion that the string cannot be
nullptr.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1558
2022-07-04 19:20:08 +02:00
Max Kellermann
af951dc08a
Merge branch 'v0.23.x'
2022-07-01 12:45:07 +02:00
Max Kellermann
5a5655b790
lib/curl/Adapter: catch and postpone exceptions in WriteFunction()
...
This fixes a std::terminate() crash in the CURL storage plugin when
PropfindOperation::OnHeaders() throws an exception after receiving a
non-207 status.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1559
2022-07-01 12:43:42 +02:00
Max Kellermann
3bb7693200
decoder/HybridDsd: remove
...
This is a proprietary extension which nobody appears to use.
2022-05-20 10:08:17 +02:00
Max Kellermann
0e9e213324
meson.build: switch to C++20
2022-05-19 09:46:59 +02:00
Max Kellermann
86e6f4fcc0
Merge branch 'v0.23.x'
2022-05-19 09:27:06 +02:00
Max Kellermann
122db76781
release v0.23.7
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmJ5gd4QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEi1vD/9mcxGKnkx4yTDJZhtSWfsSE/5v+oFu09Qy
Uk5ggk6PN18hMFZ2mcVYXdh7Yc1QiiAycgVFnchiVMYaF+K3LXefXvtkn81xuUNN
QnJLX/o2hbnmr5Or/Ps+hgiQ0PEn0ui1+t70jJ8a3Ad9sJy3YFQc/HjLUeOZqT0p
4qVyp614TtjtPlw/q0GHgiD1BxpH/pbcdMvioGj80MwBlwyrvA5IlV4HxxAAervw
4KKT9XbtnHzR+fyUPv633CDU/bWNkTgbpMVyEhRXxE3heNaXMC4wSfsD/5XKDYLb
zt/q1pAj6totKJwgdm76MoOKuVeNvw54jBE7st46+lPoH97h5uN9rpEAk00dXtSA
2FuOw8bc79uN5ZRsWXJ6ZBWzwUvssAtx9ee2seR9BUpdeSGurdOfkKq0h/c/aUzN
Qn6oWX75e7fMAB9MZhdCpM8lC0Nm5l9il+pA9811qaeZLO6yveW6by2Hmbo6BU0Q
3MQKyhXJkLFAOwPR9qMAtr3rQ/Wyl4WsJ/kXIYBu7I7HjOxSHjNnZOMsvcLfCMC9
dcRmtHOPjuVbafiypZ88SekIS0U+deXg33mKaWhH7FrCFEFbXf6GTBzXh/hHKtBm
icGTwGoOHX53fTgQ9GwC0XBpVBFbY5/gGr2KuzABecU2TeL3QqLl8tolsnBGVYun
JJ9n+RP0dQ==
=iQJC
-----END PGP SIGNATURE-----
Merge tag 'v0.23.7'
release v0.23.7
2022-05-09 23:14:07 +02:00
Max Kellermann
106ad08cd2
increment version number to 0.23.8
2022-05-09 23:12:17 +02:00
Max Kellermann
0341ca1b6a
release v0.23.7
2022-05-09 23:04:30 +02:00
Max Kellermann
112fcd206d
Merge branch 'fix-hls-seeking' of https://github.com/burrocargado/MPD into v0.23.x
2022-05-09 22:44:53 +02:00
Max Kellermann
ce88dee14d
Merge branch 'v0.23.x'
2022-04-26 18:30:34 +02:00
Rosen Penev
50d35c9677
upnp: use UpnpInit2 always
...
libupnp 1.14 removes the non 2 function. Fixes compilation there.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1499
2022-04-26 17:57:48 +02:00
Arsen Arsenović
c7a4355153
outputs/pipewire: fix ParamChanged incorrectly setting volume
...
Previous versions of MPD would, on parameter change, set the PipeWire
volume before clearing the restore_volume flag, causing the call to
short circuit and do nothing. Instead, clear the flag before the call.
2022-04-26 17:44:19 +02:00
Max Kellermann
c779fc37eb
output/shout: declare minimum version 2.4.0
...
This version was released 7 years ago, and it's reasonable to require
at least this version.
2022-04-26 16:46:36 +02:00
Max Kellermann
3929f17aef
NEWS: mention the libiconv fix
2022-04-26 15:56:54 +02:00
Max Kellermann
a360475c7b
Merge branch 'v0.23.x'
2022-03-26 06:49:51 +01:00
Vitaly Ostrosablin
ac06088948
Make volume changes to apply to disabled software mixers.
...
Move audio output state check ahead of mixer check and force volume
applying even for disabled software mixed outputs.
This fixes incorrect software mixer volume that used to occur when
volume was changed while output being disabled.
This is easily reproduced with following sequence of commands on
multi-output software mixed MPD setup.
mpc volume 38; mpc disable 3; mpc volume 88; mpc enable 3
On current MPD, following commands would result in output 3 playing at
volume 38, while all other enabled outputs would play at volume
88. Moreover, global volume would display average of outputs real
volumes. In my case, it's 75.
After applying this patch, following commands would produce expected
behavior. All outputs play at expected (88) volume. And volume is
correctly displayed as 88.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1423
Signed-off-by: Vitaly Ostrosablin tmp6154@yandex.ru
Signed-off-by: Vitaly Ostrosablin <tmp6154@yandex.ru>
2022-03-26 06:29:18 +01:00
Max Kellermann
a757eebfbb
decoder/OggSyncState: allow skipping up to 64 kB after seek
...
This is more of what we did in commit 70bd35abe2
because it turns
out there are Ogg-Opus files with pages larger than 40 kB.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1487
2022-03-16 16:54:50 +01:00
Tim Sweet
3a3f605a56
decoder/opus: Implement bitrate calculation
2022-03-15 10:34:23 +01:00
Max Kellermann
407fa2720a
release v0.23.6
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmIvgaMQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEpzhEACOJOyOjtmeuu7Uc147O4YzL/7g5PEZMKHI
yB/H2QOWnbgAKh+8AFT2YudR89mIXslfuIILRg8/NYkEFgNCrkBQETWsATPyqrCr
rYJxPtjlC2fAlKkl9XM+qL1WMATIhvRVD9SZajZKwa+9H1y5mZGlMBWdzdxaJoUY
bhlu7fYvyRMXsStUncyYfsKsuHyibq3d4Pk/jegZhJeMI9/MOKdjc9GJE6Rzz0cT
dWGqpfBJ/WMZ9aKXB3fh7WVtiIl/hr/5K1QizL10pwmJ5o/LBNKk7eEREbPUvNc6
S5BHBOyVYaqVTGZyaoF9XkMKv7qnKYNoD2g2H+J5cN87rMRI8DzY/MqUxmX0bCGc
jOQinMcQuL7zMvYx0ypKdTiMas2OG/RlKluOgzhNIvzkWYCxh9iCozm7Wl3qsvY5
uJEsaeIb/zgSmUC2637ltBE37lW/8m7RYWpuq82M2CnFx9oL6W3ah8SMm5ToBzYB
jHrN7h+YcKoIrFcZsYVTCbLzGQnQ2kmzsyGecDeCK9aP16gTkALZdpexn0oIzEKv
fNtNSU7MgYXLs0knrcBoQw0nQnH9ICuswqFiyr4jcFfqxbIw9mvHyLRIWnyhL9zj
XiYEr3SqnuVnmuLSgHlYk6g4zpYFLJEHo+/7IlEqTItXeAcsIhjn6B/NDyKVvYQa
Pfb1ORoumQ==
=jMu8
-----END PGP SIGNATURE-----
Merge tag 'v0.23.6'
release v0.23.6
2022-03-14 18:58:47 +01:00
Max Kellermann
4a5c7d8261
increment version number to 0.23.7
2022-03-14 18:55:55 +01:00
Max Kellermann
f591193dda
release v0.23.6
2022-03-14 18:55:47 +01:00
Max Kellermann
2aed7378cc
TagAny: support CUE tracks
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1482
2022-03-14 18:42:31 +01:00
Richard Schorrig
aeaef85507
WasapiOutputPlugin pause bug fix
...
Wasapi output plugin won't start playing after being paused
The cause is that the scope guard in the WASAPI work thread
(WasapiOutputPlugin.cxx, function WasapiOutputThread::Work(), in the
while (true) loop) is set up too 'late' in the execution. There is one
condition ("if (data_in_frames >= buffer_size_in_frames)") when it is
hit, the loop will continue without executing the scope guard. This
scope guard is responsible for emptying the buffer again, and if the
buffer is not emptied, the above mentioned condition will stay true.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1451
2022-03-14 14:26:00 +01:00
jcorporation
5ad1a01d7a
Remove bmp, tiff and add webp for coverimage filenames
...
- supporting bmp and tiff seems outdated
- webp is more widely used for coverimages
2022-03-14 14:09:23 +01:00
Max Kellermann
8f84e1befd
decoder/plugins/FfmpegIo: return AVERROR_EOF at end of file
...
This part of the AVIOContext API is not documented :-(
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1448
2022-03-14 14:00:28 +01:00
Max Kellermann
9975905faf
output/PipeWire: initialize field "stream" in Open()
...
Must be initialized for the check in SetVolume().
2022-03-09 14:29:46 +01:00
Max Kellermann
fdc0329e64
archive/List: add option to disable archive plugins in mpd.conf
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1384
2022-02-14 17:54:21 +01:00
Max Kellermann
2172aaf1ce
song/PrioritySongFilter: new filter
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1412
2022-02-14 14:06:37 +01:00
Max Kellermann
c3be961ccf
queue/Print: implement sorting
2022-02-14 13:07:13 +01:00