Commit Graph

2179 Commits

Author SHA1 Message Date
Marius Feraru 7b6909f2c0 db/update/Walk:FindAncestorLoop: uint64_t inode & device
Previously, inode numbers were truncated to 32 bits, which could lead
to problems on XFS where inodes are 64 bit; this could lead to bogus
"recursive directory found" errors during database update.

[mk: added commit description and NEWS line]

Closes https://github.com/MusicPlayerDaemon/MPD/issues/2000
2024-03-11 13:34:27 +01:00
jcorporation 45553c5f61 This commit adds the sort and window parameter to "sticker find"
The three new compare operators "eq", "gt" and "lt" are casting the values to int.

Sort supports:
- uri: sort by uri
- value: sort by value as string
- value_int: casts value to int

Closes #1894
2024-03-07 20:52:11 +01:00
Max Kellermann 9eb26ab90c Merge branch 'countplaylist' of https://github.com/jcorporation/MPD 2024-02-15 11:28:11 +01:00
jcorporation f801f299c9 New command playlistlength
Count the number of songs and their total playtime in the playlist.
2024-02-15 11:25:34 +01:00
jcorporation a3794f8c3b Allow range in listplaylist and listplaylistinfo 2024-02-08 21:26:28 +01:00
kaliko fa6ef6f1c7 Add NEWS entry about the switch to sphinx_rtd_theme
Change introduced in 6913148d99
2024-01-13 11:32:55 +01:00
Max Kellermann 5f54a8e94e release v0.23.15
-----BEGIN PGP SIGNATURE-----
 
 iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmWDBpUNHG1heEBibGFy
 Zy5kZQAKCRAjbopYxttFEm/yD/oCg59J/hUm+pyVtS9X74UAaoVH+icwZetvj5Ui
 DMFCZ7N3sCeXq+at7ZBsSCFXEIynjMZwyXMusJbz3lGmjOC7eZ5QH/jNlMNu1ERg
 m3cninK3MJ5+hWQoKJJGbSkLHCwer2gBBI7NMe1w9evZLXLAZd6+YHV3xTeBSm1d
 uAaIJgVe6qM6UTRKn8x5XBK3KK8f2joXSaWF+gKrZELEEo4zrVHR3ANqajxpSN+j
 QA3rcWghUD9pDilpDZoV5/DxkMDceuK10uM5Bxfjstq4EUpk6QvSf37CPOtYs5FE
 52X68yWix7HsNjljC2TYSogmBqzhRc9JnYM4lP8d7XE0y3mrF+Xsc8psfZAjFE0v
 TKxQKJRjXJnl6/2k7zTOV5hE5HNEouIuJg7QtQa2Z1mWv95k+iqVYO4xbBPKWt+7
 VboWGTHZMOmOWReweDnDcJ092f1AAfIe3oItjjkMWwRC2yhNLb+6tlM4UtHS4Wga
 2eZHYUAnk80vI/l4Bly5KLvR9WBv5x0nDe5sWaZ1k3heSUxtQrtm0LzFG/bXcyoD
 rgz0N6wRoHKvg3Ztobe4N1RqtcLCLlO8s9ZvlgPsjQH0+QJaJ+xxRJiu976VxD+C
 UOCBedcLuJLZF+rXh1EJAxrAwYm3y3QZ6KH6TJvgVK8vGQXz505dhFIbMM5ks2vl
 DkTq2Q==
 =n4dl
 -----END PGP SIGNATURE-----

Merge tag 'v0.23.15'

release v0.23.15
2023-12-20 16:23:58 +01:00
Max Kellermann b8bfc98618 release v0.23.15 2023-12-20 16:21:57 +01:00
borine 17d944f6ce input/plugins/Alsa: limit ALSA buffer time to 2 seconds maximum
Some ALSA capture devices can have very large buffers, holding 10
seconds or more audio. Using the maximum buffer size with such
devices leads to unacceptably large, and unnecessary, latency.
Also, some ALSA drivers (e.g. HDA Intel PCH) report an invalid
maximum period size, and the period size that mpd calculates from
the maximum buffer size results in "Invalid argument" error when
applying the hw_params. Note that the "default" capture device on
many cards includes the "dsnoop" plugin which imposes a buffer
size of 16384 frames, so that "alsa://" works OK but
"alsa://plughw" or "alsa://hw" both fail.

Limit the maximum buffer time for ALSA input devices to a more useable
2 seconds, thereby avoiding both the above problems.
2023-12-20 13:26:24 +01:00
Max Kellermann 634b38169a Merge branch 'alsa_input_buffer' of https://github.com/borine/MPD 2023-11-26 08:24:51 +01:00
Max Kellermann 273fc329e0 Merge branch 'added-since' of https://github.com/jcorporation/MPD 2023-11-25 20:36:38 +01:00
Max Kellermann 5ab2c31500 Merge branch 'v0.23.x' 2023-11-21 20:37:46 +01:00
skidoo23 50c1e3738a decoder/ffmpeg: Fix build error with ffmpeg 6.1
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1898
2023-11-21 20:36:37 +01:00
Max Kellermann 7a939746ae increment version number to 0.23.15 2023-11-21 20:32:45 +01:00
jcorporation 1615fbc30e Add "added-since" filter expression 2023-11-04 17:25:24 +01:00
Max Kellermann ac25f3456a Merge branch 'added_time' of https://github.com/jcorporation/MPD 2023-11-02 10:42:31 +01:00
gd 432675d4c2 Stickers: added support for stickers on playlists and some tag types 2023-10-15 11:25:16 +02:00
Max Kellermann 3a86956257 release v0.23.14
-----BEGIN PGP SIGNATURE-----
 
 iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmUiZBkNHG1heEBibGFy
 Zy5kZQAKCRAjbopYxttFEiKQD/9kvDc7xvg72IKD80uU3Z7pN6zOeSgsJqSAOaaF
 F/j1gsDzwWYkIwlFM/Rr4zt9FkwKgusEknZGj3mUVLRATYk+oZpH4PzwHcqjk/x6
 jBimj/IFvW51E2hYTpvjTa3UwDBIXuuRG+URcsub1zUMfdMWYS5N4CZgXKf/Nx+i
 EOqfZFhNxdl53wNKt8buyNBvXaX6JvV1dIkF6tDrJLXVphwNTvWRRNtO+ll9VHCG
 r5vTH2E1N9K14P8He/pMMnJ4ykJ2zIGQl9GQLagcKbWQUNqn1Nv7gnKIjO09VT3Z
 HLHirYWAlC8kp2kOhxC+UuTcc4uRPqgLMYg/XRaJezf5b8wZYxMHeNBypRBPiNbG
 6h2Hme4xwsAM0r7G+SEwCkBD91AGr61BxHYTPbU58hFe6w4jbtmrXWZJ6jJnSepr
 HJSsI5/fhdGsJMEMF5QbsNb2cHmvJjUurgJvoae52+5MnZEIVQUgOBxvtm8h3/x3
 ixO+UIW6T7RFXEF95pDHLgEFeMIuFKes1ANDVsqaE5ioIbeXzZnBVW/Y6DpbsHuN
 5onhMdPmvHu6+CCuE3505HSKFXe8ctzefrVJlA8pzDdptuLZpnGGgSG069Zoj9JC
 xJ0iFComqJC8uELySJvJfHwC44ElSfRjXDKzlyxYQdrJgxGF5QqCgPaP03tjbe47
 8KlqLg==
 =oxwG
 -----END PGP SIGNATURE-----

Merge tag 'v0.23.14'

release v0.23.14
2023-10-08 10:12:34 +02:00
Max Kellermann feac1a3f56 release v0.23.14 2023-10-08 10:11:05 +02:00
Max Kellermann 39476bed85 Merge branch 'v0.23.x' 2023-09-26 15:36:26 +02:00
Max Kellermann dd89ea4505 android/AndroidManifest.xml: raise minSdkVersion to 24
This is needed to build libFLAC which uses ftello().
2023-09-26 12:04:05 +02:00
Max Kellermann a868dbce3b android/AndroidManifest.xml: raise minSdkVersion to 24
This is needed to build libFLAC which uses ftello().
2023-09-11 22:14:23 +02:00
Max Kellermann 9c19368fc7 Merge branch 'v0.23.x' 2023-06-02 14:36:02 +02:00
Naïm Favier 42a01822bf meson: use correct prefix for systemd dirs
See https://www.bassi.io/articles/2018/03/15/pkg-config-and-paths/

Fixes the build in nixpkgs
2023-06-02 14:33:09 +02:00
Shen-Ta Hsieh 38f1237d49 output/wasapi: cast to `const char *` for fmt 10 compatible 2023-06-02 14:29:43 +02:00
Shen-Ta Hsieh fef6b9df80 flac: Try `InputStream` interface if flac failed to read through a `wchar_t` path 2023-06-02 14:28:22 +02:00
Shen-Ta Hsieh 70879f0abc thread/WindowsFuture: remove wrong address_of operator 2023-06-02 14:27:24 +02:00
Simon Arlott 6ee3d0102b decoder/mad: Fix decode of LAME peak value
6d91b5c7b2 ("fix double promotions") changed
how LAME peak values are decoded, producing large incorrect values that
cause some MP3 files to play silently.

Restore the original decode from MAD fixed-point format to double and
document what it's doing.

Fixes #1823
2023-06-02 14:15:48 +02:00
Max Kellermann fc9626e2f4 increment version number to 0.23.14 2023-06-02 14:15:14 +02:00
Max Kellermann 45f81cde6d Merge branch 'null-always-off' of https://github.com/nomis/MPD 2023-05-25 10:42:58 +02:00
Max Kellermann 7bb251dad8 db/update/Walk: use marker to remove deleted items
This eliminates all `Storage::GetInfo()` calls from
`UpdateWalk::PurgeDeletedFromDirectory()` and instead uses a "marker"
field to mark items that have been visited; later, all unmarked items
can be deleted.

This eliminates a lot of redundant I/O which is noticable with the
`curl` storage plugin (i.e. WebDAV).
2023-05-22 20:13:01 +02:00
Max Kellermann 9027e5c5bb release v0.23.13
-----BEGIN PGP SIGNATURE-----
 
 iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmRrqn4NHG1heEBibGFy
 Zy5kZQAKCRAjbopYxttFErXiD/9QIaeO5d+U7BJK1yGkQgu5vHo4Pm34ewP8LTxs
 K2MYxQQ2jZc7PXqi5Z04wmUw8ymq1BVA2D0ytMdl1Ejcbrste7UrP+1TuD8L9JBj
 WCE+4otNVYDpx1PB32BN+gxCmJqiFtAQS+eMIz/SXdEXZ9sJvIgYRRkSiSFd0WHM
 dT3OeeZ0V8cANbXpgI+RLghRGkVdpZJo4uXh3c0OHog1fjEBWPw6+7tH/mkotM0n
 /hQjI5j14wnzZuIpkDR1kuzvGYmxJKG6LkuUqcm1WexNFbxMqDSbAlXeCmzJn7eK
 NQvtROOGNjQ84thxRPLlDlYa6vbxoTqdYgZsVHzsQZWejhqw8zsPsF+Ea0A4tkLd
 UKDQFTphZMVqx74+1u7IjQyW7x+k02iXWLwH2IheEl+BJhvEB7zEflN9TR81jek4
 RrGx7jcTArdpt7okAe2ONkHvTYtIpaK5E2voza8K4TGOMzpkVlOkyvJ+rpn8CDRf
 w0faVvmCQdSrgHKfwUUY8Z47a7d+kkKpFLlvvzNoDV8drQXfgIj5t9HOLATSVVux
 l2pbgauXFsKyd4IsByXj+m8cBSvmy2C4eLJCsmguiZEvcobdJtzwOr4KuwQDjBsC
 8HW0BD0t9S1dSL59vJdMG+CfK/QU5rmAIkxdydD42uo9UmSS78xw1uQgi9oDaPa8
 XNCGdQ==
 =nOGh
 -----END PGP SIGNATURE-----

Merge tag 'v0.23.13'

release v0.23.13
2023-05-22 19:52:08 +02:00
Max Kellermann 8842650c33 release v0.23.13 2023-05-22 19:46:38 +02:00
Max Kellermann 5cd86e272f input/curl: disable `CURLOPT_FAILONERROR`
Let OnHeaders() check the status.

The status checking code was added by commit 4f021cbced in 2011,
but in 2008, commit a8e81326d0 enabled `CURLOPT_FAILONERROR`, which
means the status checking code never had any effect.

This allows `LoadExcludeListOrLog()` to hide boring "404 Not Found"
log messages via `IsFileNotFound()`.
2023-05-22 19:03:12 +02:00
Max Kellermann 068cd559e1 db/update/Walk: clear `Song::in_playlist`
Without clearing all `in_playlist` flags, the songs will never be
revealed again if they were hidden once by a CUE sheet, not even after
the CUE sheet gets deleted or modified.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1784
2023-05-22 15:41:58 +02:00
Max Kellermann 4bb4611e78 Merge branch 'v0.23.x' 2023-05-21 21:18:45 +02:00
latex 381934985a reorder ffmpeg to be lower priority than gme
This should prevent ffmpeg from taking priority over the gme plugin.
The ffmpeg plugin is more buggy than gme.
One of the prominent bugs of preferring ffmpeg over gme is that ffmpeg
cannot seek SAP files while gme can. This should prevent that from
happening.
2023-05-21 20:58:53 +02:00
Max Kellermann a8042885ac TimePrint: minor fixup for libfmt 10
libfmt version 10 has difficulties formatting a `StringBuffer`, and we
need to help it by explicitly invoking the `c_str()` method.
2023-05-21 20:58:19 +02:00
Max Kellermann 1417578b3d db/update/Archive: validate directory names
Fixes assertion failure if the ZIP file contains a path that begins
with a slash.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1793
2023-05-21 20:57:38 +02:00
kaliko 4ec6d0555a check systemd unit dir from systemd.pc in meson 2023-05-21 20:51:33 +02:00
Max Kellermann 0206a46d39 decoder/gme: require GME 0.6 or later
This allows dropping a few compile-time version checks and we can use
pkg-config to detect the library.
2023-05-21 20:50:03 +02:00
Max Kellermann a0f6932ebe unix/SignalHandlers: shut down if parent process dies in --no-daemon mode
By default, if the parent of a process dies, the process gets SIGHUP
and is supposed to shut down.  This however doesn't work for MPD,
because MPD redefines SIGHUP with a different meaning (like most
daemons do).

To work around this, we configure the kernel to send SIGTERM instead
of SIGHUP.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1706
2023-05-21 20:40:47 +02:00
Naïm Favier 949d72e368 output/PipeWire: lock thread loop in SendTag 2023-05-21 20:40:29 +02:00
Max Kellermann 541468f0ca input/async: check for errors in Seek()
Fixes a busy loop in BufferingInputStream::RunThreadLocked() because
the method never learns that seeking is ignored, even though the HTTP
stream is already broken and can never be read; nobody cared to check
for errors.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1727
2023-05-21 20:34:19 +02:00
Max Kellermann 258830e913 increment version number to 0.23.13 2023-05-21 20:29:23 +02:00
Max Kellermann f869593ac8 TimePrint: minor fixup for libfmt 10
libfmt version 10 has difficulties formatting a `StringBuffer`, and we
need to help it by explicitly invoking the `c_str()` method.
2023-05-15 21:00:24 +02:00
Max Kellermann 31dc8b73b7 db/update/Archive: validate directory names
Fixes assertion failure if the ZIP file contains a path that begins
with a slash.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1793
2023-04-30 08:46:52 +02:00
Max Kellermann 3c798b4907 decoder/ffmpeg: query supported demuxers at runtime 2023-03-12 19:37:09 +01:00
Max Kellermann 5388759bd5 db/proxy: require libmpdclient 2.15 or later 2023-03-10 13:45:37 +01:00
Max Kellermann e927655774 db/proxy: require MPD 0.21 or later 2023-03-10 13:43:49 +01:00