From 1caad457efb9edca2c6dec22508963deec67d2fe Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Thu, 12 Jan 2023 16:16:27 +0100 Subject: [PATCH] LibAudio: Don't assume that a non-full span means EOF Especially if buffered streams are involved, not filling the span completely can also mean that we just ran out of filled buffer space and we need to refill it on the beginning of the next read call. --- Userland/Libraries/LibAudio/MP3Loader.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Userland/Libraries/LibAudio/MP3Loader.cpp b/Userland/Libraries/LibAudio/MP3Loader.cpp index fd13f8dea8..22b4c0a225 100644 --- a/Userland/Libraries/LibAudio/MP3Loader.cpp +++ b/Userland/Libraries/LibAudio/MP3Loader.cpp @@ -233,8 +233,7 @@ ErrorOr MP3LoaderPlugin::read_frame_data(MP3::Header auto& buffer = maybe_buffer.value(); size_t old_reservoir_size = m_bit_reservoir.size(); - if (LOADER_TRY(m_bitstream->read(buffer)).size() != buffer.size()) - return LoaderError { LoaderError::Category::IO, m_loaded_samples, "Could not find another whole frame." }; + LOADER_TRY(m_bitstream->read_entire_buffer(buffer)); if (m_bit_reservoir.write(buffer) != header.slot_count) return LoaderError { LoaderError::Category::IO, m_loaded_samples, "Could not write frame into bit reservoir." };