Max Kellermann
d1d6a3871e
Merge branch 'v0.21.x'
2020-05-07 15:04:41 +02:00
Max Kellermann
68349bc55c
android/build.py: use -mfpu=vfpv3-d16 on ARMv7
...
This flag is used by the Android NDK build scripts as well, and this
fixes a build failure (assembler error) with FFmpeg and NDK r21.
2020-05-07 13:50:33 +02:00
Max Kellermann
ba576ffa37
Merge branch 'v0.21.x'
2020-05-05 19:00:53 +02:00
Max Kellermann
209364adf2
db/simple: fix crash when mounting twice
...
The `db->close()` call was a `nullptr` dereference because the `db`
variable had already been moved.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/839
2020-05-05 18:57:29 +02:00
Max Kellermann
dae8da7066
input/uring: new input plugin using io_uring
...
This is the final piece of the series to establish io_uring support on
Linux.
MPD doesn't need io_uring for its efficient bulk I/O support, but to
allow file I/O to be cancelled. This is a big problem on CIFS/NFS
mounts where processes sleep uninterruptable if the file server
disappears, deadlocking MPD.
With io_uring, a flaky NFS connection allows MPD to continue to work
(even though there are still deadlocks inside MPD which need to be
addressed).
This plugin does not yet use cancellable `open()` using
`IORING_OP_OPENAT`. This will be implemented later.
Lots of other optimization opportunities for io_uring are still
missing as well - for example the database update could benefit a lot,
but unfortunately, io_uring doesn't have `readdir()` support just yet.
2020-05-05 17:41:03 +02:00
skidoo23
e251fd0053
Add info about new song length format
2020-04-30 13:35:29 +02:00
Max Kellermann
24afdee35c
command/all: "tagtypes" requires no permissions
...
The command is used to configure the client's connection, and this
shouldn't require any permissions. The client should be able to do
that before sending a password.
2020-04-30 13:08:09 +02:00
Max Kellermann
7aea285361
Revert "Fix unsafe float comparison."
...
This reverts commit a5273d6992
. It was
wrong and broke the MixRamp unit test.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/844
2020-04-30 06:57:36 +02:00
Max Kellermann
6fdae1139f
increment version number to 0.21.24
2020-04-29 23:20:04 +02:00
Max Kellermann
0b3acc3eec
release v0.21.23
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl6huEwQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEgcrD/9jLUkiszNc+QWbUGj+RiTaD6fMxA1M8itn
nB7MKI/g/3ggryWMWNhG51O+8wFNs/4PmJJPGxKoU6i6wmS3YFhTAcs0ryilDGAU
1FumnMg/2qIyi2E6K2BMbi0YwZiJhBPWwD4JSt1KGvwPes/qQPFgHAi7ZWhP3tar
fHmgmjwDZ/Kgpl5/Bn7nVNgVuzk/MpBOSwxX9tFtRxqE9wdpm9idve7SVDT7MTvk
vdONWbAe8jXl/A8JHWaUsws0l7fyK5ZKSOXvdeSbzd67I8Rz3aqJMqUh2k/rDuv/
GrDyeEtLV5cXZsL4B3/34kCTKac2ZJmRbSh+buKeDc1Gf0clWnvRMdsMbSoRBY4F
lTWJbjndfq2+iHHBRfaqRjombv52R11yLT+O0aMLEm6l7xPm/rHZXJIcYSmCafd7
FR1qMaVKP5s+M+MqGePxzCUJSWJ+1bjZwjLaHrYXYPUoXSg3mSaeDE5g7BjQhm1E
2Hcfui9lvqR55UNo0NvDBjRT5FBGBUdjF6DjYplUGApw7xFtdahXlEvG7yfyg3ae
pZ3FQ1MZ4dESAw7EhTEBwajsVRQ9DhGQenYTxxCnGVdCucZRPQ9Abhas0U4iFHUA
wGj7j4WKPi+OUSyiT0j4nGuwEVtCkBFv34DqPMLjx8jqtJ8YgCt4iJD4dFwhk1zz
uoQBhq27Gg==
=sR2r
-----END PGP SIGNATURE-----
Merge tag 'v0.21.23'
release v0.21.23
2020-04-23 18:01:23 +02:00
Max Kellermann
6c240f667c
release v0.21.23
2020-04-23 17:46:20 +02:00
Max Kellermann
8ed533acf3
event/SocketMonitor: handle epoll_ctl()=EBADF/ENOENT in Schedule()
...
This fixes a freeze bug in the NFS input/storage plugins: when libnfs
auto-reconnets after a failure, it installs the new socket on the same
file descriptor number. MPD's attempt to unregister the old socket by
calling SocketMonitor::Steal() from NfsConnection::ScheduleSocket()
fails because the new/old socket number is not registered in epoll, so
epoll_ctl() returns ENOENT. The problem is that it left
`scheduled_flags`, and so subsequent Schedule() calls will use
`EPOLL_CTL_MOD`, which will fail again and again. Instead, we need to
use `EPOLL_CTL_ADD` to register the new socket.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/806
Closes https://github.com/MusicPlayerDaemon/MPD/issues/756
2020-04-23 16:58:26 +02:00
Max Kellermann
159389164a
lib/nfs/FileReader: set `state=IDLE` before invoking callback
...
Fixes assertion failure if the callback fails.
2020-04-23 14:51:43 +02:00
geneticdrift
0a92fbc18e
tag/Fallback: add tag fallback for AlbumSort
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/832
2020-04-22 22:00:38 +02:00
Max Kellermann
138c29320b
gme: adapt to API change in the upcoming version 0.7.0
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/833
2020-04-22 21:53:00 +02:00
Max Kellermann
3b0f8d5516
lib/icu/CaseFold: remove Windows implementation
...
Reverts commit fb3564fbe7
LCMapStringEx() doesn't do what I imagined it would do 5 years ago.
D'oh!
Closes https://github.com/MusicPlayerDaemon/MPD/issues/820
2020-04-22 19:32:36 +02:00
Thomas Guillem
b18074f899
storage/curl: fix path comparison when the server escapes differently
...
Unescape the base path and the path coming from the server (href) to fix the
comparison when the server uses different escaped characters.
The outputted name need to be unescaped. Doing that before or after the
HrefToEscapedName() call should not change the current behavior.
2020-04-15 13:50:12 +02:00
Thomas Guillem
3d8067a041
storage/curl: fix href when file has a '&' char
...
If the file name is "Hello & bye", 3 CharacterData events will be sent with the
State::HREF state:
- "Hello%20"
- "&"
- "%20bye"
Reproduced with files hosted on an apache2 DAV server: 2.4.38-3+deb10u3.
2020-04-15 13:18:16 +02:00
Florian Heese
f6fe001fa9
Added missing channel order setups for ALSA
2020-04-15 13:13:09 +02:00
Max Kellermann
55b8f2c533
NEWS: add line about Solaris change
2020-04-14 16:11:18 +02:00
Max Kellermann
32a5bf043b
player/Thread: drain outputs at end of song in "single" mode
...
Without this, the Pause() call would drop the ring buffers and would
skip a considerable portion of the end of the song.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/824
2020-04-14 16:07:03 +02:00
Max Kellermann
c331c75fde
increment version number to 0.21.23
2020-04-14 13:12:36 +02:00
Max Kellermann
12b97bbe38
release v0.21.22
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl6GCWgQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEvkQD/9qg6cnCgCKSOmTjteJu1ayeXBMDiL3cCCg
AwarHQoxsB0102NpV+MLka+4HIwHn+WNL55TzYgfbSh0nfmnki2fZ0YpsZoQR79w
MP11iMPnFH1oKqj58minBkFNmAis2aLYHJGKaQNUh7wcf0WhbVTqtWBUrKb07RQ0
Zj5lXtg65O/+yaCVdQGS6fMk2t7CqBM+S3RmbXCib/JRMC6aozoC7nWPvj8b2R8d
PgxwKMRzyslyFoxDQZrusDjJ1piyigzUMMr32yzYDED4Xr8jsEELaJfULbr6qWT2
ZNYF91e+D5V7riASAtlFTaVMaISx4QbHjKWR5Xcx0q/SJPAXTxF8RrAqGvqpWYmc
kqmC8iNxQsW5o3sNhI9qg6sOkq2dIu43VasRCvuo19GABR36wwTK5ORoazIi8fbU
/Ki/oZHtZczHRop9Cd6698Qr9jyTPdIs55FbgejzrVADvAmslqtcA6XxCBuG1nSF
Qo48dp9Px7J74qNNuDt5/xLnQGJKaW60/BXrMK9G9QG4x9r4zuCayDO6Qc7FMWWR
DG7k9nYoXJU5YG7xp9Rk+Yj3Ade8kqhTnKfqw0f2JfkLt0ChPG+rZcxICWSdzZm0
AfHxuEQlwKaaFHFEsZhVehlsXkeU9OVywo+QDzmY2uqQ2ddlBZ47Qm2MWgTsv8i/
euVsrzLtag==
=EedX
-----END PGP SIGNATURE-----
Merge tag 'v0.21.22'
release v0.21.22
2020-04-02 18:02:10 +02:00
Max Kellermann
5ccfcffcc1
release v0.21.22
2020-04-02 17:48:56 +02:00
Max Kellermann
b267ba5f0a
tag/Pool: enlarge hash table
...
This consumes more memory (plus 48 kB on 32 bit systems), but reduces
the number of hash collisions, speeding up MPD startup with large
databases.
2020-04-02 15:45:35 +02:00
Max Kellermann
672bc3ab67
time/Convert: fix GetTimeZoneOffset() on Windows
...
Was using the wrong parameter.
2020-04-01 16:21:29 +02:00
Max Kellermann
9c3e1d450a
fs/io/GunzipReader: increase buffer size to 64 kB
...
Reduces I/O overhead while reading a compressed database file.
2020-03-31 15:07:39 +02:00
Thomas Guillem
4ff2532330
android: add TV support
...
TODO: Not sure the app could be accepted on the play store without a valid
banner.
2020-03-26 17:31:20 +01:00
Max Kellermann
e1c43ec65f
Merge branch 'ucl' of git://github.com/neheb/MPD into v0.21.x
2020-03-26 17:28:21 +01:00
Thomas Guillem
4dd10894ba
lib/curl/Request: fix Exception "error" on Android
...
Apparently, it's not possible to change CURLOPT_NETRC on Android.
2020-03-26 17:26:14 +01:00
Thomas Guillem
81c16273c5
output/sles: use the AndroidMixerPlugin
2020-03-25 20:08:53 +01:00
kowalcj0
36a89e8fe7
Support RSS feeds with application/xml MIME-type
2020-03-22 10:49:38 +01:00
Max Kellermann
8e6a21a9c2
increment version number to 0.21.22
2020-03-22 10:48:53 +01:00
Max Kellermann
0da6344726
release v0.21.21
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl5zgCQQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEnkCD/0RNcohFb2svCDYXuAz3BN5hBxUvepMJJId
aNaT+jz8FpWTpIi4TaHqF4iODyDXR9YkVBv2aPqEjJad0tVEHHijyHkA25jd8moz
lR46RRK4CEkBTTlmui9FmajelqoidMxRMQLR8HRTKCQPPZcgXhNOhdciJg1EovMT
maZD81UyuZXPAq+v3IMJHy+H/LUA5yFcsjIdyJs7EEFZXHb9LUVRW/ZxUwFzl1Os
TAiLQ0Ix4ebsy1MmE4n7f9T6dAuPO/+GkHXMKn6ruvAYUKPeKcjjdm5QW+Gyt9X1
IArx0oaEqxPY5r7YruyGoPMj9pIwMVnHMLCTc8sbBNKS8ibtD/mlI+9Vj8C4gCoZ
ZRjMFnPMSC6RmoTWbDw8U28j0vxMbQ/SWrLNIgW44QUHyFPfBgWNwqqKux6b/Mph
u+SjVi/9ds8FKewLVi3dotdS8YmPF/b46Ov0ycfWLbyB7BvcP31o1zR1uLN6BqYj
bzI4n4hKOxT0SsA74odJJDamA60J/DW4tAGxyscKaq8pDFYlBFo9dq+9+/aoDAMj
sFLP32h/HqlO/ilZuuUVES4tg/shzF7VOhI9+GCvc/Ic1NXIdug4pUcXJ8ubXxzD
ObnvF8RX8Vwf/ofwjcHIE7sqJAT5/QZhB1RTg/SkdlaUczjle0gVgCN1hAqlNSCP
mJ8831lArg==
=YxBZ
-----END PGP SIGNATURE-----
Merge tag 'v0.21.21'
release v0.21.21
2020-03-19 15:26:27 +01:00
Max Kellermann
c560ec8ea6
release v0.21.21
2020-03-19 15:22:28 +01:00
Max Kellermann
56c234b410
raise default "max_connections" value to 100
...
Documentation says the limit is 5, but it was really 10 (at least
since 2004). But since MPD wants to promote using many small clients
idling around, and these clients consume only very few resources, it
seems reasonable to raise this limit's default value.
2020-03-19 13:30:46 +01:00
Max Kellermann
82743dfd02
playlist/asx: concatenate multiple CharacterData fragments
...
Similar to c45f113856
2020-03-12 21:07:37 +01:00
Max Kellermann
01632d37ef
Merge branch 'v0.21.x'
2020-03-12 08:11:08 +01:00
Max Kellermann
c45f113856
playlist/xspf: concatenate multiple CharacterData fragments
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/781
2020-03-12 08:02:58 +01:00
Max Kellermann
acb29f792f
tag/Mask: fix yet another typo, this time in Unset()
...
Similar to commits e8f2f98048
and
ff1ff1e54a
Closes https://github.com/MusicPlayerDaemon/MPD/issues/783
2020-03-11 20:34:02 +01:00
Max Kellermann
8d34a1cfc6
archive/iso9660: skip empty filenames
...
Aparently, libcdio sometimes returns empty filenames, causing MPD
crashes. This shouldn't really happen, and I consider this a libcdio
bug - but if it happens, people blame MPD, so let's add a check.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/776
2020-03-07 09:30:56 +01:00
Thomas Klausner
7a68b1e71f
Adapt SolarisOutputPlugin.cxx to be usable on NetBSD.
2020-02-29 10:05:29 +01:00
John Regan
976372ff63
gme: check for empty metadata strings instead of nullptr
...
Using libgme 0.6.2 on macOS, it appears that gme_info_t strings can be
empty, which creates weird track titles: (001/050)
This adds an additional check for an empty string.
2020-02-25 20:12:08 +01:00
Max Kellermann
9abb686eeb
increment version number to 0.21.21
2020-02-16 20:48:46 +01:00
Max Kellermann
07e0a31d02
release v0.21.20
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl5Jm2cQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEj3nEACkdgWh02NT0EGpmumCn4cB1mZ78ef0GyGm
OOJi6qrnfuQdFX89UlL1+Nrx1U4Q6O6XvlIuuWTdKUjRQ+g5ktWuN48uEIKJ38If
5ZbAqEZOvrH2b2lHNX15v7OvwXeGYK28fBbAjKf7txOJtW86azZ3NTjn4bb2a77B
cio+Rhj9+fXzx/nBxHGVhLY3OQWQySFTm2Nbaz6zQoQYgm2xZ0htHNsGYKV6nl8I
2Xt5zPEIlbjqdK9moSL1qyCevLZc7ME1Ha1v45pLwrXeCKlqhr5+6xFe2BEc1+DZ
NHVmVs4e0GqSnyNTEd8eHXn70lpJ5ZSfrrk/HIHkx0Jk2hoGmAasHIUQViYxBiMN
LqET7vM9nslrvuHl1Dd7wE66rrkGW6ILYKB7w48Jw00W5BjBtgcEVSj3PoKwchdh
m4+JNZFJvubrXFKWjuXfRtY3MXsDKfy7lMd0iXDAxjh0YJuC8VGpGwRLL4V2uEzs
tr2UvWIpjlw96kvvjTDnJp5kjA7D77xomxNkCHmj2/LOsA/bd4ljoCcmX033DBRr
b7ddcESVcqTYXtMnYSWxmcHqizGjwIAVr7SsRgNbzZzs0/DVNpFAb/tGz3K9DzzF
vdpm3y5KqdGyVoMAsIZDsxannmxcpivI6iOITAQH5aIRSLN/8ZGzCZ6ucS2GTjwq
TZUR7iOjVQ==
=ejSV
-----END PGP SIGNATURE-----
Merge tag 'v0.21.20'
release v0.21.20
2020-02-16 20:46:13 +01:00
Max Kellermann
f24bcc7f42
release v0.21.20
2020-02-16 20:43:35 +01:00
Max Kellermann
5397d18ed9
protocol/ArgParser: cast seek offset to SignedSongTime
...
"The issue is that ParseCommandArgSignedSongTime parses with
SongTime::FromS, not SignedSongTime::FromS, before casting back to a
SignedSongTime for the return. With x86 overflow rules this doesn't
matter, but on ARM the first cast turns negative values to zero."
Closes https://github.com/MusicPlayerDaemon/MPD/issues/757
2020-02-10 09:18:37 +01:00
Max Kellermann
3fc859c42d
Merge branch 'v0.21.x'
2020-02-04 16:49:18 +01:00
Max Kellermann
50003f6ad2
decoder/ffmpeg: add two more missing commas
2020-02-04 16:30:05 +01:00
Max Kellermann
5ad6e7fec5
decoder/{audio,snd}file: handle MIME type "audio/wav"
2020-02-01 11:26:57 +01:00