1c6d0ba4a4c5 — Chris Cannam 9 months ago
Ensure we reset the retry count whenever we read anything, even if it isn't yet the whole amount we have been asked for
1 files changed, 6 insertions(+), 4 deletions(-)

M src/SimpleWavFileReadStream.cpp
M src/SimpleWavFileReadStream.cpp +6 -4
@@ 400,6 400,11 @@ SimpleWavFileReadStream::getFrames(size_
     size_t requested = count * m_channelCount;
     size_t got = 0;
 
+#ifdef DEBUG_SIMPLE_WAV_FILE_READ_STREAM
+    std::cerr << "SimpleWavFileReadStream::getFrames: count = " << count
+              << ", requested = " << requested << std::endl;
+#endif
+
     while (got < requested) {
         if (m_dataChunkSize > 0 && m_dataReadOffset >= m_dataChunkSize) {
             break;

          
@@ 419,6 424,7 @@ SimpleWavFileReadStream::getFrames(size_
         case 32: frames[got] = convertSampleFloat(buf); break;
         }
         ++got;
+        m_retryCount = 0;
     }
 
     if (got < requested) {

          
@@ 431,10 437,6 @@ SimpleWavFileReadStream::getFrames(size_
     if (m_file->eof() && !m_file->bad()) {
         m_file->clear();
     }
-
-    if (got > 0) {
-        m_retryCount = 0;
-    }
     
     return got / m_channelCount;
 }