public void Read(BoxReader reader, byte version, uint LengthSizeOfTrafNum, uint LengthSizeOfTrunNum, uint LengthSizeOfSampleNum) { if (version == 1) { ulong tmpTime = reader.ReadUInt64(); // if (tmpTime < LastTime) BaseTime = LastTime; this.Time = BaseTime + tmpTime; this.MoofOffset = reader.ReadUInt64(); LastTime = Time; } else { this.Time = reader.ReadUInt32(); this.MoofOffset = reader.ReadUInt32(); } switch (((LengthSizeOfTrafNum + 1) * 8)) { case 0x18: this.TrafNumber = reader.ReadUInt24(); break; case 0x20: this.TrafNumber = reader.ReadUInt32(); break; case 8: this.TrafNumber = reader.ReadByte(); break; case 0x10: this.TrafNumber = reader.ReadUInt16(); break; } switch (((LengthSizeOfTrunNum + 1) * 8)) { case 0x18: this.TrunNumber = reader.ReadUInt24(); break; case 0x20: this.TrunNumber = reader.ReadUInt32(); break; case 8: this.TrunNumber = reader.ReadByte(); break; case 0x10: this.TrunNumber = reader.ReadUInt16(); break; } switch (((LengthSizeOfSampleNum + 1) * 8)) { case 8: this.SampleNumber = reader.ReadByte(); return; case 0x10: this.SampleNumber = reader.ReadUInt16(); break; case 0x18: this.SampleNumber = reader.ReadUInt24(); return; case 0x20: this.SampleNumber = reader.ReadUInt32(); return; } }
public void Read(BoxReader reader, byte version, uint LengthSizeOfTrafNum, uint LengthSizeOfTrunNum, uint LengthSizeOfSampleNum) { if (version == 1) { ulong tmpTime = reader.ReadUInt64(); // if (tmpTime < LastTime) BaseTime = LastTime; this.Time = BaseTime + tmpTime; this.MoofOffset = reader.ReadUInt64(); LastTime = Time; } else { this.Time = reader.ReadUInt32(); this.MoofOffset = reader.ReadUInt32(); } switch (((LengthSizeOfTrafNum + 1) * 8)) { case 0x18: this.TrafNumber = reader.ReadUInt24(); break; case 0x20: this.TrafNumber = reader.ReadUInt32(); break; case 8: this.TrafNumber = reader.ReadByte(); break; case 0x10: this.TrafNumber = reader.ReadUInt16(); break; } switch (((LengthSizeOfTrunNum + 1) * 8)) { case 0x18: this.TrunNumber = reader.ReadUInt24(); break; case 0x20: this.TrunNumber = reader.ReadUInt32(); break; case 8: this.TrunNumber = reader.ReadByte(); break; case 0x10: this.TrunNumber = reader.ReadUInt16(); break; } switch (((LengthSizeOfSampleNum + 1) * 8)) { case 8: this.SampleNumber = reader.ReadByte(); return; case 0x10: this.SampleNumber = reader.ReadUInt16(); break; case 0x18: this.SampleNumber = reader.ReadUInt24(); return; case 0x20: this.SampleNumber = reader.ReadUInt32(); return; } }