diff --git a/NAudio.Core/Wave/WaveFormats/WaveFormat.cs b/NAudio.Core/Wave/WaveFormats/WaveFormat.cs index 6a5be4e4..0a830ffa 100644 --- a/NAudio.Core/Wave/WaveFormats/WaveFormat.cs +++ b/NAudio.Core/Wave/WaveFormats/WaveFormat.cs @@ -302,14 +302,24 @@ public override int GetHashCode() /// the output stream public virtual void Serialize(BinaryWriter writer) { - writer.Write((int)(18 + extraSize)); // wave format length + if(Encoding == WaveFormatEncoding.Pcm) + { + writer.Write((int)(16)); // wave format length + } + else + { + writer.Write((int)(18 + extraSize)); // wave format length + } writer.Write((short)Encoding); writer.Write((short)Channels); writer.Write((int)SampleRate); writer.Write((int)AverageBytesPerSecond); writer.Write((short)BlockAlign); writer.Write((short)BitsPerSample); - writer.Write((short)extraSize); + if(Encoding != WaveFormatEncoding.Pcm) + { + writer.Write((short)extraSize); + } } ///