/// <summary> /// Reads the full box properties from stream. /// </summary> /// <param name="reader">The binary reader with the stream.</param> protected override void ReadFullBoxPropertiesFromStream(BoxBinaryReader reader) { this.TrackId = reader.ReadUInt32(); uint num = reader.ReadUInt32(); this.reserved = ((int)(num >> 6)) & 0x3ffffff; this.LengthSizeOfTrafNum = (byte)((num >> 4) & 3); this.LengthSizeOfTrunNum = (byte)((num >> 2) & 3); this.LengthSizeOfSampleNum = (byte)(num & 3); this.NumberOfEntry = reader.ReadUInt32(); for (int i = 0; i < this.NumberOfEntry; i++) { TrackFragmentRandomAccessEntry entry = new TrackFragmentRandomAccessEntry(); if (base.Version == 1) { entry.Time = reader.ReadUInt64(); entry.MoofOffset = reader.ReadUInt64(); } else { entry.Time = reader.ReadUInt32(); entry.MoofOffset = reader.ReadUInt32(); } entry.TrafNumber = ReadIntValueFromBytes(reader, this.LengthSizeOfTrafNum); entry.TrunNumber = ReadIntValueFromBytes(reader, this.LengthSizeOfTrunNum); entry.SampleNumber = ReadIntValueFromBytes(reader, this.LengthSizeOfSampleNum); this.TrackFragmentRandomAccessEntries.Add(entry); } }