diff --git a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp index a2459c6db0..ac5a70fc58 100644 --- a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp @@ -1052,8 +1052,15 @@ public: } else if (chunkType == chunkName ("data")) { - if (! isRF64) // data size is expected to be -1, actual data size is in ds64 chunk + if (isRF64) + { + if (dataLength > 0) + chunkEnd = input->getPosition() + dataLength + (dataLength & 1); + } + else + { dataLength = length; + } dataChunkStart = input->getPosition(); lengthInSamples = (bytesPerFrame > 0) ? (dataLength / bytesPerFrame) : 0;