public WaveFormatExtensible(int channels, int samplesPerSecond, int bitsPerSample,
			int validBitsPerSample, SpeakerPositions channelMask, Guid subFormat)
            : base(WaveFormatTag.Extensible, channels, samplesPerSecond, bitsPerSample)
        {
            extraDataSize = (short) (StandardSizeExtensible - StandardSize);
            _validBitsPerSample = (short) validBitsPerSample;
            _channelMask = channelMask;
            _subFormat = subFormat;
        }
 public WaveFormatExtensible(int channels,
                             int samplesPerSecond,
                             int bitsPerSample,
                             int validBitsPerSample,
                             SpeakerPositions channelMask,
                             Guid subFormat) : base(WaveFormatTag.Extensible, channels, samplesPerSecond, bitsPerSample)
 {
     extraDataSize       = (short)(StandardSizeExtensible - StandardSize);
     _validBitsPerSample = (short)validBitsPerSample;
     _channelMask        = channelMask;
     _subFormat          = subFormat;
 }
 internal override void Read(BinaryReader reader)
 {
     base.Read(reader);
     try
     {
         if (extraDataSize < StandardSizeExtensible - StandardSize && formatTag != WaveFormatTag.Extensible)
         {
             return;
         }
         _validBitsPerSample = reader.ReadInt16();
         _channelMask        = (SpeakerPositions)reader.ReadUInt32();
         _subFormat          = new Guid(reader.ReadBytes(16));
     }
     finally
     {
         reader = null;
     }
 }
 internal override void Read(BinaryReader reader)
 {
     base.Read(reader);
     try
     {
         if (extraDataSize < StandardSizeExtensible - StandardSize &&
             formatTag != WaveFormatTag.Extensible)
             return;
         _validBitsPerSample = reader.ReadInt16();
         _channelMask = (SpeakerPositions) reader.ReadUInt32();
         _subFormat = new Guid(reader.ReadBytes(16));
     }
     finally
     {
         reader = null;
     }
 }