From 1450ca18e88861312c83657d6d0d5923448cc464 Mon Sep 17 00:00:00 2001 From: manongjohn Date: Thu, 20 May 2021 07:36:19 -0400 Subject: [PATCH] Internally store all WAVs as 32bit fixed --- toonz/sources/sound/wav/tsio_wav.cpp | 10 ++++++++++ toonz/sources/toonzlib/txshsoundcolumn.cpp | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/toonz/sources/sound/wav/tsio_wav.cpp b/toonz/sources/sound/wav/tsio_wav.cpp index 49b349b1..f70e063d 100644 --- a/toonz/sources/sound/wav/tsio_wav.cpp +++ b/toonz/sources/sound/wav/tsio_wav.cpp @@ -4,6 +4,7 @@ #include "tsio_wav.h" #include "tsystem.h" #include "tfilepath_io.h" +#include "tsop.h" using namespace std; @@ -303,6 +304,15 @@ TSoundTrackP TSoundTrackReaderWav::load() { } break; } + + // Convert all WAV to 32bit PCM + if (fmtChunk->m_bitPerSample != 32 || fmtChunk->m_encodingType != WAVE_FORMAT_PCM) { + TSoundTrackP origTrack = track; + TSoundTrackFormat fmt = track->getFormat(); + fmt.m_bitPerSample = 32; + fmt.m_formatType = WAVE_FORMAT_PCM; + track = TSop::convert(origTrack, fmt); + } } /*if (!TNZ_LITTLE_ENDIAN) diff --git a/toonz/sources/toonzlib/txshsoundcolumn.cpp b/toonz/sources/toonzlib/txshsoundcolumn.cpp index 468c482e..648ee849 100644 --- a/toonz/sources/toonzlib/txshsoundcolumn.cpp +++ b/toonz/sources/toonzlib/txshsoundcolumn.cpp @@ -1116,7 +1116,8 @@ TSoundTrackP TXshSoundColumn::mixingTogether( // Per ora perche mov vuole solo 16 bit TSoundTrackFormat fmt = mix->getFormat(); - if (fmt.m_bitPerSample != 16) fmt.m_bitPerSample = 16; + if (fmt.m_bitPerSample != 32) fmt.m_bitPerSample = 32; + if (fmt.m_formatType != WAVE_FORMAT_PCM) fmt.m_formatType = WAVE_FORMAT_PCM; mix = TSop::convert(mix, fmt); return mix; }