From a140946a231d9013b8627c6b149d24bd1a15bc58 Mon Sep 17 00:00:00 2001 From: Andrea Date: Sun, 23 Apr 2023 21:10:51 +0200 Subject: [PATCH] RIFF: fix sizes. (PR #1214) --- source/Riff.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/Riff.cpp b/source/Riff.cpp index acb151ac..71aadc8a 100644 --- a/source/Riff.cpp +++ b/source/Riff.cpp @@ -32,7 +32,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA static HANDLE g_hRiffFile = INVALID_HANDLE_VALUE; static DWORD dwTotalOffset; static DWORD dwDataOffset; -static DWORD g_dwTotalNumberOfBytesWritten = 0; static unsigned int g_NumChannels = 2; bool RiffInitWriteFile(const char* pszFile, unsigned int sample_rate, unsigned int NumChannels) @@ -106,11 +105,13 @@ bool RiffFinishWriteFile() DWORD dwNumberOfBytesWritten; - temp32 = g_dwTotalNumberOfBytesWritten - (dwTotalOffset + 4); + DWORD fileSize = SetFilePointer(g_hRiffFile, 0, NULL, FILE_END); + + temp32 = fileSize - (dwTotalOffset + 4); SetFilePointer(g_hRiffFile, dwTotalOffset, NULL, FILE_BEGIN); WriteFile(g_hRiffFile, &temp32, 4, &dwNumberOfBytesWritten, NULL); - temp32 = g_dwTotalNumberOfBytesWritten - (dwDataOffset + 4); + temp32 = fileSize - (dwDataOffset + 4); SetFilePointer(g_hRiffFile, dwDataOffset, NULL, FILE_BEGIN); WriteFile(g_hRiffFile, &temp32, 4, &dwNumberOfBytesWritten, NULL); @@ -133,7 +134,5 @@ bool RiffPutSamples(const short* buf, unsigned int uSamples) &dwNumberOfBytesWritten, NULL); - g_dwTotalNumberOfBytesWritten += dwNumberOfBytesWritten; - return true; }