From b76958f23e971e25a38ed2b9525dcca1cb3d954d Mon Sep 17 00:00:00 2001
From: Yoann Lopes <yoann.lopes@qt.io>
Date: Fri, 15 Jul 2016 11:47:41 +0200
Subject: [PATCH] AudioCapture: fix data chunk size in WAV header

The size in the data chunk was missing 8 bytes.

Task-number: QTBUG-54710
Change-Id: I0530ea9d2420dd90d196993e1678003697c0ebaa
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
---
 src/plugins/audiocapture/audiocapturesession.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/plugins/audiocapture/audiocapturesession.cpp b/src/plugins/audiocapture/audiocapturesession.cpp
index 1b183db26..448e8538b 100644
--- a/src/plugins/audiocapture/audiocapturesession.cpp
+++ b/src/plugins/audiocapture/audiocapturesession.cpp
@@ -342,11 +342,12 @@ void AudioCaptureSession::stop()
         file.stopProbes();
         file.close();
         if (m_wavFile) {
-            qint32 fileSize = file.size()-8;
+            qint32 fileSize = file.size();
             file.open(QIODevice::ReadWrite | QIODevice::Unbuffered);
             file.read((char*)&header,sizeof(CombinedHeader));
-            header.riff.descriptor.size = fileSize; // filesize-8
-            header.data.descriptor.size = fileSize-44; // samples*channels*sampleSize/8
+            header.riff.descriptor.size = fileSize - 8; // The RIFF chunk size is the file size minus
+                                                        // the first two RIFF fields (8 bytes)
+            header.data.descriptor.size = fileSize - 44; // dataSize = fileSize - headerSize (44 bytes)
             file.seek(0);
             file.write((char*)&header,sizeof(CombinedHeader));
             file.close();
-- 
GitLab