gd
f9d47502d8
player/Thread: update song tag from remote stream only if changed.
...
Some streams send the same tags frequently, causing unnecessary player queue update events.
2025-01-29 16:00:37 +02:00
gd
f15014b6af
tag/Item: made TagItem constructor private and friend TagPoolItem
...
To only allow construction as part of TagPoolItem with its special var size allocator in TagPoolItem::Create.
2025-01-29 16:00:37 +02:00
gd
2a9c3a2e50
tag/Tag: added operator==(Tag&)
2025-01-29 16:00:37 +02:00
gd
3e9c2cce71
tag/Item: added operator== to TagItem
2025-01-29 16:00:37 +02:00
gd
93bf99f639
util/DereferenceIterator, TerminatedArray: added operator-(const IteratorType&) to DereferenceIterator and TerminatedArray::iterator
...
It is required by std::distance and some std algos.
2025-01-29 16:00:20 +02:00
Max Kellermann
c0a9434f34
command/file: "albumart" tries to send larger chunks if available
...
If we only receive very little data from the InputStream, try a second
Read() call to get more data. This works around tiny reads at input
buffer boundaries with the io_uring input plugin. These tiny reads
are inefficient, and we can afford to wait one more low-level I/O
iteration to finish (but not more).
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2186
2025-01-29 13:07:05 +01:00
Max Kellermann
d7212624b0
input/{async,thread}: clear the CircularBuffer when it becomes empty
...
First step towards fixing https://github.com/MusicPlayerDaemon/MPD/issues/2186
2025-01-29 13:05:24 +01:00
Max Kellermann
70a0a781c8
input/async: move the IsEOF() check to a separate block
2025-01-29 12:59:04 +01:00
Max Kellermann
ab011adf77
meson.build: require GCC 12 or clang 14
...
GCC 10 doesn't have std::make_unique_for_overwrite(), so let's drop it.
2025-01-29 12:24:48 +01:00
Max Kellermann
8ea3f86f43
Revert "meson.build: disable -Wsuggest-override with GCC 8"
...
This reverts commit 56c0733b427b444beebb9e1a85d5082a20e2a72b. GCC 8
is no longer supported.
2025-01-29 12:22:11 +01:00
Max Kellermann
bd78307940
input/{async,thread}: add an additional Cond field
...
This eliminates the ScopeExchangeInputStreamHandler kludge.
2025-01-29 12:14:42 +01:00
Max Kellermann
3cc7b7dbf9
Merge branch 'v0.23.x'
2025-01-29 12:09:18 +01:00
Max Kellermann
57e7fb3f62
tag/Id3Load, ...: use std::make_unique_for_overwrite()
...
Don't zero-initialize the buffers. This removes some useless
overhead.
2025-01-29 12:01:27 +01:00
Max Kellermann
687475cf3c
db/update/InotifyUpdate: handle IN_CREATE without IN_ISDIR
...
A new symlink causes `IN_CREATE`. Usually, we catch `IN_CREATE` only with
IN_ISDIR to watch the new directory, but otherwise `IN_CREATE` is not
handled. Regular files are "created" but they have usable content
only with `IN_CLOSE_WRITE`. Yet symlinks have only `IN_CREATE` and
they are immediately usable.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2192
2025-01-29 09:41:08 +01:00
Max Kellermann
c48dbd5dd4
lib/nfs/meson.build: reject libnfs 6
...
libnfs version 6 has major API changes and MPD 0.23 has never been
adapted to these. This additional configure-time check fixes
potential compile-time failures.
2025-01-29 09:04:55 +01:00
Max Kellermann
37049aab36
lib/nfs/Connection: remove EnableCloseOnExec() call
...
SOCK_CLOEXEC has been added to libnfs version 2, and since we require
at least version 4, we can safely remove this call.
2025-01-29 09:02:05 +01:00
Max Kellermann
18495fbb4e
lib/nfs/meson.build: require libnfs 4.0
...
All Linux distributions have at least version 4, and thus I cannot
test with older versions.
2025-01-29 09:00:37 +01:00
Max Kellermann
cdcee16738
client/File: improve error message
...
Users are confused by "Access denied". Let's write an error message
that is more clear.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2184
2025-01-29 08:28:30 +01:00
Max Kellermann
83c2d9c964
test/meson.build: add another missing dependency on libevent.a
...
Necessary for including Client.hxx.
2025-01-28 19:52:25 +01:00
Max Kellermann
074a041760
test/meson.build: add missing dependencies on libevent.a
2025-01-28 19:47:36 +01:00
Max Kellermann
083d39ea80
decoder/plugins/meson.build: add missing dependency to libid3tag
2025-01-28 19:38:50 +01:00
Max Kellermann
a5da7fd51a
Merge branch 'v0.23.x'
2025-01-28 19:33:19 +01:00
Max Kellermann
cf9a2eb508
.github/workflows/build.yml: disable yajl on macOS
...
This yajl on Homebrew comes with broken headers:
/opt/homebrew/Cellar/yajl/2.1.0/include/yajl/yajl_parse.h:22:10: fatal error: 'yajl/yajl_common.h' file not found
#include <yajl/yajl_common.h>
^~~~~~~~~~~~~~~~~~~~
2025-01-28 19:31:35 +01:00
Max Kellermann
0aeda01ba6
lib/yajl: drop "yajl/" prefix from #include paths
...
According to the yajl API documentation, #include lines should have
the "yajl/" path prefix, but the actual pkg-config file contains:
includedir=${dollar}{prefix}/include/yajl
.. which already contains this directory name, and thus the "yajl/"
prefix cannot work. Unfortunately, the yajl project hasn't been
maintained for nearly 10 years, and there's little chance this bug
will ever be fixed.
2025-01-28 19:27:46 +01:00
Max Kellermann
3798d11a8d
.github/workflows/build.yml: disable NFS support
...
Homebrew comes with libnfs 6 which is not supported by MPD 0.23.
2025-01-28 19:23:36 +01:00
Max Kellermann
fab03f800a
subprojects: remove libmicrohttpd
...
This one will be pulled in by libnpupnp automatically. No need to
have it here.
2025-01-28 19:17:06 +01:00
Max Kellermann
5b5b101c56
subprojects: add id3tag
2025-01-28 19:15:43 +01:00
Max Kellermann
7770accee0
python/build/libs.py: remove libmad (unused)
2025-01-28 19:14:03 +01:00
Max Kellermann
eb3cd7bed3
subprojects: add lame
2025-01-28 19:13:59 +01:00
Max Kellermann
56cc2f4c65
subprojects: add libmpdclient wrap
2025-01-28 19:13:46 +01:00
Max Kellermann
9723af3f35
subprojects: add openssl
2025-01-28 19:13:45 +01:00
Max Kellermann
dcf3cf4216
subprojects: add ogg, flac, opus
2025-01-28 19:13:19 +01:00
Max Kellermann
578c94081f
subprojects: add curl
2025-01-28 19:12:57 +01:00
Max Kellermann
efa8304d2d
subprojects/.gitignore: sort
2025-01-28 19:12:42 +01:00
Max Kellermann
2752f67877
lib/nfs/meson.build: add missing dependency on libevent.a
2025-01-28 19:05:09 +01:00
Max Kellermann
f55e0df614
lib/curl/meson.build: add missing internal dependency on libevent.a
2025-01-28 18:52:37 +01:00
Max Kellermann
177ffde90f
Merge branch 'v0.23.x'
2025-01-28 18:45:02 +01:00
Max Kellermann
0d1fb9a02c
meson.build: build libnpupnp and libmicrohttpd statically as submodules
2025-01-28 18:43:23 +01:00
Max Kellermann
a0a39ae828
.github/workflows/build.yml: update actions/checkout to v4
2025-01-28 18:39:17 +01:00
Max Kellermann
e57c60e3d8
.github/workflows/build.yml: update hendrikmuhs/ccache-action to v1.2
2025-01-28 18:38:59 +01:00
Max Kellermann
53090e3745
.github/workflows/build.yml: update actions/setup-python to v5
2025-01-28 18:37:06 +01:00
Max Kellermann
93eb3da48a
subprojects: add liburing
2025-01-28 18:35:21 +01:00
Max Kellermann
75a3d9340e
python/build/libs.py: update FFmpeg to 7.1
2025-01-28 18:34:29 +01:00
Max Kellermann
9445ea1565
subprojects: add libnpupnp
2025-01-28 18:34:29 +01:00
Max Kellermann
a5a26d304b
subprojects: update sqlite3 to 3.48.0-1
2025-01-28 18:34:29 +01:00
Max Kellermann
1d8d298a22
subprojects: update fmt to 11.1.1-2
2025-01-28 18:34:28 +01:00
Max Kellermann
508bfbe334
pipewire/meson.build: add "include_type:system"
...
This suppresses a compiler warning due to sloppy code in PipeWire:
/usr/include/spa-0.2/spa/utils/json-core.h:440:29: error: implicit conversion increases floating-point precision: 'float' to 'double' [-Werror,-Wdouble-promotion]
440 | return spa_dtoa(str, size, val);
| ~~~~~~~~ ^~~
2025-01-28 18:34:12 +01:00
Max Kellermann
1385212572
io/uring/meson.build: detect liburing with include_type=system
...
This avoids breakages due to `-Wgnu-anonymous-struct`.
2025-01-28 18:34:07 +01:00
Max Kellermann
8dcd6ea2b4
increment version number to 0.23.17
2025-01-28 18:13:07 +01:00
Max Kellermann
75d0914373
Merge branch 'fix-handle-status' of https://github.com/geneticdrift/MPD
2025-01-28 06:18:19 +01:00