Commit Graph

18674 Commits

Author SHA1 Message Date
Max Kellermann fae5d16d43 subprojects: update curl to 8.9.1-1 2024-08-30 12:23:41 +02:00
Max Kellermann 7bc2259b35 subprojects: update sqlite3 to 3.46.1-1 2024-08-30 12:23:27 +02:00
Max Kellermann f66aed921c python/build/libs: update FFmpeg to 7.0.2 2024-08-30 12:22:37 +02:00
Max Kellermann 965c466e9b Merge branch 'mpg-duration-fix' of https://github.com/boedy/MPD 2024-08-10 16:54:48 +02:00
boedy 731f20111a Override the value for file size in bytes. Useful for getting sensible track length values in feed mode or for HTTP streams.
https://www.mpg123.de/api/group__mpg123__status.shtml#gad0301e80dbc3f48e47e27d39cd328755
2024-08-08 18:43:15 +02:00
Max Kellermann f7790430a0 lib/curl/Multi: add SetSocketFunction(), SetTimerFunction() 2024-07-31 10:06:29 +02:00
Max Kellermann 959826d1d1 input/ffmpeg: offload FFmpeg calls to thread
Prepare for interruptible I/O.
2024-07-30 12:43:05 +02:00
Max Kellermann ec30716e01 input/thread: implement size and seek 2024-07-30 12:33:44 +02:00
Max Kellermann dc51015c75 input/mms: move MMS_BUFFER_SIZE into the class 2024-07-30 12:33:30 +02:00
Max Kellermann 72b0eeb7b1 input/mms: invoke Start() in constructor 2024-07-30 12:31:58 +02:00
Max Kellermann b050e0132e input/{async,thread}: add an additional Cond field
This eliminates the ScopeExchangeInputStreamHandler kludge.
2024-07-29 23:17:33 +02:00
Max Kellermann cf962d94c7 input/thread: remove bogus `inline` 2024-07-29 23:14:16 +02:00
Max Kellermann c29d23b4c3 input/thread: use notify_one() instead of notify_all()
There's only ever one waiter, and notify_one() may be faster than
notify_all().
2024-07-29 23:09:07 +02:00
Max Kellermann 61e8df913d input/thread: check IsEOF() in IsAvailable() 2024-07-29 23:05:00 +02:00
Max Kellermann 4a55e3e8bd input/thread: check buffer.empty() in IsEOF() 2024-07-29 23:03:00 +02:00
Max Kellermann 2e78bd430c input/thread: use pass std::span<std::byte> to ThreadRead() 2024-07-29 22:32:52 +02:00
Max Kellermann dbaa72cb40 util/CircularBuffer: use std::span internally 2024-07-29 22:24:54 +02:00
Max Kellermann 596d2d93dd util/CircularBuffer: use `using` instead of `typedef` 2024-07-29 22:21:38 +02:00
Max Kellermann 10311b3a65 util/CircularBuffer: explicitly forbid the copy operator 2024-07-29 22:20:15 +02:00
Max Kellermann 332ba42073 util/HugeAllocator: add std::span cast operator 2024-07-29 22:20:12 +02:00
Max Kellermann 4262d29965 util/HugeAllocator: add `constexpr` 2024-07-29 22:19:28 +02:00
Max Kellermann 0899d80ae0 util/CircularBuffer: add `noexcept` and `constexpr` 2024-07-29 22:14:59 +02:00
Max Kellermann 9fe6493fc2 util/CircularBuffer: use inline initializer 2024-07-29 22:13:50 +02:00
Max Kellermann 902cb8efac input/thread: use std::byte instead of uint8_t 2024-07-29 22:13:50 +02:00
Max Kellermann f54210bf68 input/async: move enum definition down 2024-07-29 22:13:42 +02:00
Max Kellermann fb151c8662 lib/fmt/meson.build: suppress -Warray-bounds with GCC 13 2024-07-29 22:13:11 +02:00
Max Kellermann 323517753d lib/fmt/meson.build: remove obsolete clang 14 workaround
Android NDK r27 has clang 18 and I don't feel like supporting clang 14.
2024-07-29 22:11:20 +02:00
Max Kellermann 5726d9f06a mixer/Memento: include cleanup 2024-07-29 17:04:53 +02:00
Max Kellermann 0992fab1c8 filter/ReplayGain: include cleanup 2024-07-29 17:04:30 +02:00
Max Kellermann b546ddc54c client/Idle: include cleanup 2024-07-29 17:03:59 +02:00
Max Kellermann d45b7cc972 IdleFlags: move to procool/ 2024-07-29 17:02:33 +02:00
Max Kellermann 12eaaef210 output/Thread: allow Delay() to return duration::max()
Eliminate the periodic wakeups while paused in some output plugins.
2024-07-29 16:52:36 +02:00
Max Kellermann 5b8ef9a62b python/build/__init__.py: add missing file 2024-07-29 16:51:40 +02:00
Max Kellermann 196258ea13 .github/workflows/build_android.yml: update NDK to r27 2024-07-29 16:38:26 +02:00
Max Kellermann 0a035f3ce0 output/alsa: add option "close_on_pause"
This allows keeping the ALSA PCM open even if playback is paused.  As
a side effect, this allows using the "always_on" option with ALSA
outputs, because "always_on" pauses the output.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1623
2024-07-29 16:31:09 +02:00
Max Kellermann 7ab789fbaf doc/user.rst: add clarification to the "always_on" option 2024-07-29 16:30:15 +02:00
Max Kellermann 9c8f4aaf99 lib/alsa/meson.build: require libasound 1.2 or later
This allows us to drop the 1.1.4 snd_pcm_drain() bug workaround (added
by commit f85d4d28d1).
2024-07-29 15:42:46 +02:00
Max Kellermann 3bef4f839a output/alsa: fix coding style 2024-07-29 15:40:52 +02:00
Max Kellermann 1dfda3a5e1 output/alsa: reorder fields to improve packing 2024-07-29 15:38:02 +02:00
Max Kellermann 9d9c4045e2 output/alsa: move redundant code to UnregisterSockets() 2024-07-29 15:28:58 +02:00
Max Kellermann d466deedad output/alsa: fix lambda indent 2024-07-29 15:28:27 +02:00
Max Kellermann bbbbf5f4bd event/MultiSocketMonitor: reschedule epoll/EPERM workaround forever
Fixes a regression by commit 3558317dc9 which caused the ALSA null
plugin to cease to work because the workaround timer was never rescheduled.
2024-07-25 20:16:53 +02:00
Max Kellermann f030b22bec player/thread: wait for the first chunk in CheckCrossFade()
This fixes MixRamp problems which occur because CheckCrossFade() is
called before the decoder has parsed MixRamp tags after
DecoderClient::Ready().

Closes https://github.com/MusicPlayerDaemon/MPD/issues/2084
2024-07-25 20:07:52 +02:00
Max Kellermann a693052f2c Merge branch 'feat/showmovement' of https://github.com/mayanez/MPD 2024-07-25 14:01:19 +02:00
Miguel A. Arroyo e3809bd4f0 feat: Add ShowMovement Tag
This commit adds the `SHOWMOVEMENT` [tag](https://picard-docs.musicbrainz.org/en/appendices/tag_mapping.html#show-work-movement-4). Historically, this tag originates from iTunes' MP4, but has since become widely used. It is created by Picard's Classical music [plugins](https://picard-docs.musicbrainz.org/en/variables/variables_classical.html) (such as "Classical Extras" or "Work & Movement").

The reasoning behind this tag is to display Work & Movement titles without redundant information and in a more uniform way. Moreover, it additionally serves as an implicit marker denoting classical music tracks (genre tags aren't sufficient).

If the client so chooses to support this tag, they can display `Work` and `Movement` instead of the track title allowing for cleaner display. Other clients can continue to display the `%title%` as before without any fuss.
2024-07-23 21:09:31 -07:00
Max Kellermann 41cc695848 Instance: fix io/rtio thread mixup
Fixes regression by commit 43d633f560
2024-07-23 15:12:30 +02:00
Max Kellermann 3558317dc9 event/MultiSocketMonitor: remove force-refresh on every iteration
libasound guarantees that the file descriptors never change for a
"prepared" PCM device, thus we can omit this defensive kludge.
2024-07-23 15:08:55 +02:00
Max Kellermann 18cb34825d input/alsa: use libfmt instead of std::string concatenation 2024-07-23 15:04:49 +02:00
Max Kellermann 4c4a3c8664 event/TimerList: use FineTimerEvent::GetDue()
Avoid accessing the private field from an inner class of the friend
class, because some compilers apparently don't like it (Apple clang).
2024-07-23 13:38:05 +02:00
Max Kellermann b4374ddb35 python/build/libs.py: update libopenmpt to 0.7.9 2024-07-23 13:08:04 +02:00