From d0812e9019706ebb380a66f056f707962ea42dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Offenh=C3=A4user?= Date: Thu, 3 Dec 2020 00:33:24 +0100 Subject: [PATCH] LibAudio: Fix parsing of WAV files from memory The WavLoaderPlugin now loads the file header correctly when reading from a ByteBuffer. --- Libraries/LibAudio/WavLoader.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Libraries/LibAudio/WavLoader.cpp b/Libraries/LibAudio/WavLoader.cpp index adac8c7a0d..2cd4849eb0 100644 --- a/Libraries/LibAudio/WavLoader.cpp +++ b/Libraries/LibAudio/WavLoader.cpp @@ -120,9 +120,12 @@ bool WavLoaderPlugin::parse_header() u8 value; if (m_file) { *file_stream >> value; - if (file_stream->handle_read_failure()) { + if (file_stream->handle_read_failure()) + ok = false; + } else { + *m_stream >> value; + if (m_stream->has_any_error()) ok = false; - } } return value; }; @@ -131,9 +134,12 @@ bool WavLoaderPlugin::parse_header() u16 value; if (m_file) { *file_stream >> value; - if (file_stream->handle_read_failure()) { + if (file_stream->handle_read_failure()) + ok = false; + } else { + *m_stream >> value; + if (m_stream->has_any_error()) ok = false; - } } return value; }; @@ -142,9 +148,12 @@ bool WavLoaderPlugin::parse_header() u32 value; if (m_file) { *file_stream >> value; - if (file_stream->handle_read_failure()) { + if (file_stream->handle_read_failure()) + ok = false; + } else { + *m_stream >> value; + if (m_stream->has_any_error()) ok = false; - } } return value; };