Commit Graph

15552 Commits

Author SHA1 Message Date
Oystein Kristoffer Tveit 7b77aebb19
fixup! WIP: rtkit support 2024-11-25 16:48:29 +01:00
Oystein Kristoffer Tveit 06c56eb047
WIP: rtkit support 2024-11-25 08:52:41 +01:00
borine 78e643150f output/Source: fix Close()
Close the filter before cancelling when closing a source.
Fixes #2148
2024-11-19 10:59:35 +00:00
Max Kellermann 6dce8dcaa5 io/FileDescriptor: add readv()/writev() wrappers 2024-11-13 10:44:03 +01:00
Max Kellermann fc4a579d83 io/FileDescriptor: remove Read()/Write() with void pointers
Obsolete and unsafe.
2024-11-13 10:43:34 +01:00
Max Kellermann 263b9916c2 unix/PidFile: pass std::span to FileDescriptor::Read() 2024-11-13 10:43:33 +01:00
Max Kellermann 16604997d6 system/{Event,Signal}FD: pass std::span to FileDescriptor::Read() 2024-11-13 10:43:08 +01:00
Max Kellermann 7a6672b7ed util/IntrusiveTreeSet: update the counter, fixing constant_time_size 2024-11-13 10:36:57 +01:00
Max Kellermann 8db14c9cb3 Instance: add method FindOutput()
Move code from handle_moveoutput().
2024-11-11 19:08:45 +01:00
Max Kellermann 370df37596 io/uring/Ring: add more API documentation 2024-11-11 19:04:24 +01:00
Max Kellermann 84e3501084 io/uring/Queue: remove redundant include 2024-11-11 19:04:21 +01:00
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