diff --git a/Userland/Libraries/LibAudio/Loader.cpp b/Userland/Libraries/LibAudio/Loader.cpp index c3080a9842..62933e600b 100644 --- a/Userland/Libraries/LibAudio/Loader.cpp +++ b/Userland/Libraries/LibAudio/Loader.cpp @@ -69,7 +69,7 @@ ErrorOr, LoaderError> Loader::create_plugin(NonnullO LoaderSamples Loader::get_more_samples(size_t samples_to_read_from_input) { - if (m_plugin_at_end_of_stream) + if (m_plugin_at_end_of_stream && m_buffer.is_empty()) return FixedArray {}; size_t remaining_samples = total_samples() - loaded_samples(); diff --git a/Userland/Libraries/LibAudio/Loader.h b/Userland/Libraries/LibAudio/Loader.h index d6d5b9e3e8..e1f0d80679 100644 --- a/Userland/Libraries/LibAudio/Loader.h +++ b/Userland/Libraries/LibAudio/Loader.h @@ -103,7 +103,7 @@ public: return m_plugin->seek(position); } - int loaded_samples() const { return m_plugin->loaded_samples(); } + int loaded_samples() const { return m_plugin->loaded_samples() - (int)m_buffer.size(); } int total_samples() const { return m_plugin->total_samples(); } u32 sample_rate() const { return m_plugin->sample_rate(); } u16 num_channels() const { return m_plugin->num_channels(); }