From 8168b1fc92717be3413d1b5483b0300620205f5a Mon Sep 17 00:00:00 2001 From: Dimitri Diakopoulos Date: Sun, 17 May 2015 18:41:22 -0700 Subject: [PATCH] support padding byte on wav encoder --- include/libnyquist/Common.h | 6 ++++++ src/WavEncoder.cpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/include/libnyquist/Common.h b/include/libnyquist/Common.h index 54ec118..4debe25 100644 --- a/include/libnyquist/Common.h +++ b/include/libnyquist/Common.h @@ -112,6 +112,12 @@ static inline uint64_t Swap64(uint64_t value) ((value & 0xff00000000000000LL) >> 56)); } +inline bool isOdd(const uint32_t x) +{ + return (x & 0x1); +} + + #ifdef ARCH_CPU_LITTLE_ENDIAN #define Read16(n) (n) #define Read24(n) (n) diff --git a/src/WavEncoder.cpp b/src/WavEncoder.cpp index cca2d2d..9fa9b0c 100644 --- a/src/WavEncoder.cpp +++ b/src/WavEncoder.cpp @@ -125,6 +125,12 @@ int WavEncoder::WriteFile(const EncoderParams p, const AudioData * d, const std: fout.write(reinterpret_cast(d->samples.data()), samplesSizeInBytes); } + // Padding byte + if (isOdd(samplesSizeInBytes)) + { + fout.write(reinterpret_cast(1), 1); + } + // Find size long totalSize = fout.tellp();