Commit Graph

15541 Commits

Author SHA1 Message Date
Max Kellermann
a7d41a99a1 util/ForeignFifoBuffer: pass std::span to constructor 2024-11-11 19:03:31 +01:00
Max Kellermann
c9c5e84119 util/ForeignFifoBuffer: store buffer as std::span 2024-11-11 19:02:58 +01:00
Max Kellermann
8a3b48754e util/ForeignFifoBuffer: use Read() in MoveBuffer() and Shift() 2024-11-11 19:02:43 +01:00
Max Kellermann
849c4012c0 filter/Filter: add method ReadMore()
This allows FilterPCM() to return more data, which some
implementations may need to do (e.g. FFmpeg).
2024-11-08 19:31:16 +01:00
Max Kellermann
d8bb833ba3 output/Source: convert runtime check to assert()
Flush() may only be called if the source is open.
2024-11-08 19:09:31 +01:00
Max Kellermann
4d8a2ea688 output/Source: add assert(filter) 2024-11-08 18:50:48 +01:00
Max Kellermann
a7a61e9e41 output/Source: add inline 2024-11-08 18:34:22 +01:00
Max Kellermann
415cf096e9 output/Thread: add another inline 2024-11-08 18:24:48 +01:00
Max Kellermann
7774c3369e filter/two: check empty() instead of data()==nullptr
See bcab29d53a
2024-11-05 22:37:36 +01:00
Max Kellermann
bcab29d53a filter/Filter: Flush() returns empty span, not nullptr 2024-11-05 13:19:25 +01:00
Max Kellermann
d6195025fb filter/Filter: clarify Flush() documentation 2024-11-05 13:11:25 +01:00
Max Kellermann
d7ae512b5e filter/Filter: clarify that the FilterPCM() return value may be empty
And adjust TwoFilter accordingly.
2024-11-05 12:35:10 +01:00
Max Kellermann
b7b4c6b4ea filter/Filter: Flush() also invalidates the returned buffer
Just API documentation.
2024-11-05 12:35:09 +01:00
Max Kellermann
f59f17013d MusicChunk: add method ReadData() 2024-11-05 12:34:35 +01:00
Max Kellermann
4beedec3ad MusicChunk: add missing include 2024-11-05 12:31:30 +01:00
Max Kellermann
950888d161 output/Source: fix indent 2024-11-05 12:28:41 +01:00
Max Kellermann
0676ab7f47 filter/two: use if with initializer 2024-11-02 22:48:02 +01:00
Max Kellermann
fc5d258890 filter/ffmpeg: fill AVFrame::pts
Some libavfilter plugins don't produce any output if `pts` is never
set, e.g. the `lowpass` plugin.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/2114
2024-11-02 22:24:53 +01:00
Max Kellermann
7dce7ad32d Merge branch 'tagtypes_reset' of https://github.com/jcorporation/MPD 2024-11-02 20:58:06 +01:00
Max Kellermann
fa29693550 filter/ffmpeg: implement method Flush() 2024-11-02 20:55:04 +01:00
jcorporation
fd7d251358 Add "reset" subcommand to tagtypes.
This subcommand combines "clear" and "enable" in one command.
2024-11-01 18:07:06 +01:00
Max Kellermann
acb9ee9792 filter/ffmpeg: move code to ReadOutput() 2024-10-30 22:49:20 +01:00
Max Kellermann
3d99f1d8a6 filter/ffmpeg: use if with initializer 2024-10-30 22:47:21 +01:00
Max Kellermann
d7b4634e5e io/FileLineReader: add missing include 2024-10-30 21:47:37 +01:00
Max Kellermann
f807345022 event/Loop: use std::chrono::ceil()
Thanks to C++17, we don't need our custom implementation anymore.
2024-10-30 21:29:16 +01:00
Max Kellermann
b745d1f226 util/StringCompare: add constexpr 2024-10-30 21:29:16 +01:00
Max Kellermann
52e2130d51 util/StringCompare: simplify StringIsEqual() using operator== 2024-10-30 21:28:15 +01:00
Max Kellermann
1930ed16cb Merge branch 'icu76-support' of https://github.com/cho-m/MPD 2024-10-27 15:22:04 +01:00
Michael Cho
1a063fee7e
meson.build: support building with ICU 76
ICU 76 decided to reduce overlinking[^1] thus `icu-i18n` will no longer
add `icu-uc` when linking to shared libraries. This results in failure:
```
src/lib/icu/libicu.a.p/Converter.cxx.o: undefined reference to symbol 'ucnv_fromUnicode_76'
```

[^1]: 199bc82702
2024-10-27 09:57:22 -04:00
jcorporation
51e0fefda7 Fix order of commands 2024-10-26 11:32:36 +02:00
Max Kellermann
449f8af7d0 Merge branch 'protocol_features' of https://github.com/jcorporation/MPD 2024-10-26 08:18:56 +02:00
Max Kellermann
38b46e680a Merge branch 'stickernames-types' of https://github.com/jcorporation/MPD 2024-10-26 08:16:53 +02:00
Max Kellermann
17d0cd0abd Merge branch 'queue_loaded_playlist' of https://github.com/jcorporation/MPD 2024-10-26 08:15:23 +02:00
Max Kellermann
98bc63251e Merge branch 'searchplaylist_pos' of https://github.com/jcorporation/MPD 2024-10-26 08:14:31 +02:00
Max Kellermann
030bac441f Merge branch 'playlistlength_fix' of https://github.com/jcorporation/MPD 2024-10-26 08:13:14 +02:00
jcorporation
052719c0e4 Fix integer overflow calculating length of very large playlists 2024-10-20 12:12:50 +02:00
jcorporation
bfbff31860 Store last loaded playlist
Stores the last loaded playlist uri in the queue struct.
Last loaded playlist is set on load command and cleared with the clear command.
The last loaded playlist is printed in the status command and saved / restored from the partition state file.

Resolves issue #938
2024-10-20 12:03:31 +02:00
jcorporation
b1067333dc Print positions in the search playlist functions. 2024-10-20 11:55:52 +02:00
jcorporation
23c2bba483 This commit adds a new protocol command to toggle protocol features
for a client connection. It works like the tag_mask and the associated
tagtypes command.

New commands:

- protocol
  Shows enabled protocol features.

- protocol available
  Show all available protocol features.

- protocol enable {feature...}
  Enables protocol features.

- protocol disable {feature...}
  Disables protocol features.

- protocol all
  Enables all available protocol features.

- protocol clear
  Disables all protocol features.

This commit adds also the first protocol feature.

hide_playlists_in_root
  Disables the listing of playlists in the root folder
  for the lsinfo command.
2024-09-28 22:41:35 +02:00
jcorporation
25e8ce2d37 New command tagtypes available
Shows the list of tag types configured by the ``metadata_to_use`` setting.
2024-09-28 22:40:29 +02:00
Max Kellermann
752c6c1f03 lib/fmt/ExceptionFormatter: move the exception_ptr 2024-09-27 08:48:30 +02:00
Max Kellermann
def2221dfd Merge branch 'searchplaylist_syntax' of https://github.com/jcorporation/MPD 2024-09-27 08:47:02 +02:00
Max Kellermann
9ff8e02e54 net/Resolver: use StringIsEqual() 2024-09-04 17:26:45 +02:00
Max Kellermann
32dd9704ce util/DeleteDisposer: add const and noexcept 2024-09-04 17:24:42 +02:00
Max Kellermann
523519182a util/IntrusiveHashSet: add concept checks 2024-09-04 17:24:24 +02:00
jcorporation
3f718e8924 Change the semantic of the searchplaylist protocol command
Old: searchplaylist {NAME} {FILTER} [{START:END}]
New: searchplaylist {NAME} {FILTER} [window {START:END}]

This is more similar to the other search commands and we can reuse search specific functions in libmpdclient.
2024-08-30 21:06:50 +02:00
jcorporation
26c4211cd4 New command stickernamestypes
Lists sticker names with their types and optionally filters by type
2024-08-30 20:14:55 +02:00
Max Kellermann
a3a07280e8 Merge branch 'mpd-2100-nested-and' of https://github.com/m7a/mpd 2024-08-30 12:57:20 +02:00
Max Kellermann
ed755f04e9 lib/fmt/meson.build: suppress -Warray-bounds with GCC 14
The bug is still present in GCC 14.
2024-08-30 12:48:41 +02:00
Max Kellermann
2809db8b40 Merge branch 'searchplaylist' of https://github.com/jcorporation/MPD 2024-08-30 12:47:24 +02:00