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();