From f9068c7f2e72f2aefbdb464caaa2e7ea15dc16cd Mon Sep 17 00:00:00 2001 From: Zaggy1024 Date: Sat, 11 Nov 2023 20:30:11 -0600 Subject: [PATCH] LibAudio: Ensure that Serenity playback streams are always stereo The Serenity AudioServer assumes that all audio is stereo, so we cannot output audio with a channel count other than 2. --- Userland/Libraries/LibAudio/PlaybackStreamSerenity.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibAudio/PlaybackStreamSerenity.cpp b/Userland/Libraries/LibAudio/PlaybackStreamSerenity.cpp index 7cc3bec2150..c9fb0d1a254 100644 --- a/Userland/Libraries/LibAudio/PlaybackStreamSerenity.cpp +++ b/Userland/Libraries/LibAudio/PlaybackStreamSerenity.cpp @@ -10,8 +10,12 @@ namespace Audio { -ErrorOr> PlaybackStreamSerenity::create(OutputState initial_state, u32 sample_rate, [[maybe_unused]] u8 channels, [[maybe_unused]] u32 target_latency_ms, AudioDataRequestCallback&& data_request_callback) +ErrorOr> PlaybackStreamSerenity::create(OutputState initial_state, u32 sample_rate, u8 channels, [[maybe_unused]] u32 target_latency_ms, AudioDataRequestCallback&& data_request_callback) { + // ConnectionToServer can only handle stereo audio currently. If it is able to accept mono audio + // later, this can be removed. + VERIFY(channels == 2); + VERIFY(data_request_callback); auto connection = TRY(ConnectionToServer::try_create()); if (auto result = connection->try_set_self_sample_rate(sample_rate); result.is_error())