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);
+ }
}
///