public override void ReadFields(Mp4Stream stream) { base.ReadFields(stream); this.QtVersion = stream.ReadUInt16(); this.QtRevision = stream.ReadUInt16(); this.QtVendor = stream.ReadUInt32(); this.ChannelCount = stream.ReadUInt16(); this.SampleSize = stream.ReadUInt16(); this.QtCompressionId = stream.ReadUInt16(); this.QtPacketSize = stream.ReadUInt16(); this.SampleRate = stream.ReadUInt32(); if (this.QtVersion == 1) { this.QtV1SamplesPerPacket = stream.ReadUInt32(); this.QtV1BytesPerPacket = stream.ReadUInt32(); this.QtV1BytesPerFrame = stream.ReadUInt32(); this.QtV1BytesPerSample = stream.ReadUInt32(); } else if (this.QtVersion == 2) { uint num2; uint num3; this.QtV2StructSize = stream.ReadUInt32(); this.QtV2SampleRate64 = stream.ReadDouble(); this.QtV2ChannelCount = stream.ReadUInt32(); this.QtV2Reserved = stream.ReadUInt32(); this.QtV2BitsPerChannel = stream.ReadUInt32(); this.QtV2FormatSpecificFlags = stream.ReadUInt32(); this.QtV2BytesPerAudioPacket = stream.ReadUInt32(); this.QtV2LPCMFramesPerAudioPacket = stream.ReadUInt32(); if (this.QtV2StructSize > 0x48) { uint num = this.QtV2StructSize - 0x48; this.QtV2Extension = new byte[num]; stream.Read(this.QtV2Extension, (int)num); } this.QtV1BytesPerSample = num2 = 0; this.QtV1BytesPerFrame = num3 = num2; this.QtV1SamplesPerPacket = this.QtV1BytesPerPacket = num3; } else { this.QtV1SamplesPerPacket = 0; this.QtV1BytesPerPacket = 0; this.QtV1BytesPerFrame = 0; this.QtV1BytesPerSample = 0; this.QtV2StructSize = 0; this.QtV2SampleRate64 = 0.0; this.QtV2ChannelCount = 0; this.QtV2Reserved = 0; this.QtV2BitsPerChannel = 0; this.QtV2FormatSpecificFlags = 0; this.QtV2BytesPerAudioPacket = 0; this.QtV2LPCMFramesPerAudioPacket = 0; } }