public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (SttsCountsReader != null) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SttsCountsReader.ReadUInt32()); writer.WriteUInt32(SttsTimeDeltaReader.ReadUInt32()); } } else if ((SampleCount != null) && (SampleDelta != null) && (SampleCount.Length == EntryCount) && (SampleDelta.Length == EntryCount)) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SampleCount[i]); writer.WriteUInt32(SampleDelta[i]); } } else { throw new Exception("Nothing to write"); } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(TrackId); if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.BaseDataOffsetPresent)) { writer.WriteUInt64(BaseDataOffset); } if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.SampleDescriptionIndexPresent)) { writer.WriteUInt32(SampleDescriptionIndex); } if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleDurationPresent)) { writer.WriteUInt32(DefaultSampleDuration); } if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleSizePresent)) { writer.WriteUInt32(DefaultSampleSize); } if (EnumUtils.IsBitSet <TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleFlagsPresent)) { writer.WriteUInt32(DefaultSampleFlags); } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (SyncSampleReader != null) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SyncSampleReader.ReadUInt32()); } } else if ((SampleNumbers != null) && (EntryCount == SampleNumbers.Length)) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SampleNumbers[i]); } } else { throw new Exception("SyncSampleMapBox.Write: nothing to write"); } } }
/// <summary> /// Write - write the ChunkOffsetBox to output file. /// For every chunk offset written out, add fixup. /// ChunkOffset data is either stored in a temp file, or in the chunkOffsetArray. /// Data is in the temp file if we are using PrepareSampleWriting, and in the chunkOffsetArray /// if we are simply copying boxes as they are, no recoding. /// </summary> /// <param name="writer"></param> public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(entryCount); if (entryCount > 0) { if (ChunkOffsetReader != null) { ChunkOffsetReader.BaseStream.Position = 0L; for (int i = 0; i < entryCount; i++) { uint offs = (uint)(ChunkOffsetReader.ReadUInt32() + fixup); writer.WriteUInt32(offs); } } else if ((chunkOffsetArray != null) && (entryCount == chunkOffsetArray.Length)) { for (int i = 0; i < entryCount; i++) { writer.WriteUInt32((uint)(chunkOffsetArray[i] + fixup)); } } else { throw new Exception("ChunkOffsetBox.Write: nothing to write"); } } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(TrackID); writer.WriteUInt32(DefaultSampleDescriptionIndex); writer.WriteUInt32(DefaultSampleDuration); writer.WriteUInt32(DefaultSampleSize); writer.WriteUInt32(DefaultSampleFlags); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.Write(major_brand); writer.WriteUInt32(minor_version); foreach (uint brand in compatible_brands) { writer.WriteUInt32(brand); } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); if (Version == 1) { writer.WriteUInt64(creationTime); writer.WriteUInt64(modificationTime); writer.WriteUInt32(TrackID); writer.WriteUInt32((uint)0); writer.WriteUInt64(Duration); } else { writer.WriteUInt32((uint)creationTime); writer.WriteUInt32((uint)modificationTime); writer.WriteUInt32(TrackID); writer.WriteUInt32((uint)0); writer.WriteUInt32((uint)Duration); } for (int x = 0; x < 2; x++) { writer.WriteUInt32((uint)0); } writer.Write(Layer); writer.Write(AlternateGroup); writer.Write(_volume); writer.Write((UInt16)0); this.Matrix.Write(writer); writer.Write(_width); writer.Write(_height); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(SequenceNumber); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(TrackId); uint num = 0; num = (uint)((LengthSizeOfTrafNum << 4) | (LengthSizeOfTrunNum << 2) | LengthSizeOfSampleNum); writer.WriteUInt32(num); writer.WriteUInt32(NumberOfEntry); for (int i = 0; i < this.NumberOfEntry; i++) { TrackFragmentRandomAccessEntry item = TrackFragmentRandomAccessEntries[i]; item.Write(writer, base.Version, this.LengthSizeOfTrafNum, this.LengthSizeOfTrunNum, this.LengthSizeOfSampleNum); } } }
public void Write(BoxWriter writer) { for (int i = 0; i < 9; i++) { writer.WriteUInt32(matrix[i]); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(MfraSize); } }
public void Write(BoxWriter writer, uint flags) { if (EnumUtils.IsBitSet<TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags) flags, TrackFragmentRunBoxFlags.SampleDurationPresent)) { writer.WriteUInt32(SampleDuration); } if (EnumUtils.IsBitSet<TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags) flags, TrackFragmentRunBoxFlags.SampleSizePresent)) { writer.WriteUInt32(SampleSize); } if (!EnumUtils.IsBitSet<TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)flags, TrackFragmentRunBoxFlags.FirstSampleFlagsPresent) && EnumUtils.IsBitSet<TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)flags, TrackFragmentRunBoxFlags.SampleFlagsPresent)) { writer.WriteUInt32(SampleFlags); } if (EnumUtils.IsBitSet<TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags) flags, TrackFragmentRunBoxFlags.SampleCompositionTimeOffsetsPresent)) { writer.WriteUInt32(SampleCompositionTimeOffset); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (ChunkGroupReader != null) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(ChunkGroupReader.ReadUInt32()); writer.WriteUInt32(ChunkGroupReader.ReadUInt32()); writer.WriteUInt32(ChunkGroupReader.ReadUInt32()); } } else if ((ChunkEntries != null) && (ChunkEntries.Length == EntryCount)) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(ChunkEntries[i].firstChunk); writer.WriteUInt32(ChunkEntries[i].samplesPerChunk); writer.WriteUInt32(ChunkEntries[i].sampleDescriptionIndex); } } else { throw new Exception("SampleToChunkBox.Write: Nothing to write"); } } }
public void Write(BoxWriter writer, uint flags) { if (EnumUtils.IsBitSet <TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)flags, TrackFragmentRunBoxFlags.SampleDurationPresent)) { writer.WriteUInt32(SampleDuration); } if (EnumUtils.IsBitSet <TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)flags, TrackFragmentRunBoxFlags.SampleSizePresent)) { writer.WriteUInt32(SampleSize); } if (!EnumUtils.IsBitSet <TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)flags, TrackFragmentRunBoxFlags.FirstSampleFlagsPresent) && EnumUtils.IsBitSet <TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)flags, TrackFragmentRunBoxFlags.SampleFlagsPresent)) { writer.WriteUInt32(SampleFlags); } if (EnumUtils.IsBitSet <TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)flags, TrackFragmentRunBoxFlags.SampleCompositionTimeOffsetsPresent)) { writer.WriteUInt32(SampleCompositionTimeOffset); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); if (Version == 1) writer.WriteUInt64(FragmentDuration); else writer.WriteUInt32((uint)FragmentDuration); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(SampleCount); if (EnumUtils.IsBitSet <TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)base.Flags, TrackFragmentRunBoxFlags.DataOffsetPresent)) { writer.WriteUInt32(DataOffset); } if (EnumUtils.IsBitSet <TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)base.Flags, TrackFragmentRunBoxFlags.FirstSampleFlagsPresent)) { writer.WriteUInt32(FirstSampleFlags); } for (int i = 0; i < this.SampleCount; i++) { TrackFragmentRunSample item = Samples[i]; item.Write(writer, base.Flags); } } }
public override void Write(BoxWriter writer) { if (this.EntryCount == 0) { // this means we had no CTTS's which were different and thus this file // doesn't need them and most likely has no b-frames... return; } using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (EntryCount > 0) { if (CompToSampleStream != null) { CompToSampleStream.Position = 0L; CompToSampleReader = new BinaryReader(CompToSampleStream); for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(CompToSampleReader.ReadUInt32()); writer.WriteUInt32(CompToSampleReader.ReadUInt32()); } CompToSampleStream.Close(); CompToSampleStream.Dispose(); } else { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SampleCount[i]); writer.WriteUInt32(SampleOffset[i]); } } } } }
public virtual void Write(BoxWriter writer) { Common.Logger.Instance.Info("[Box::Write] writing a box of type [" + this.Type + ", " + this.GetType().Name + "], size [" + this.Size + "], offset [" + Offset + "], details: " + this.ToString()); if (this.expectedType == BoxTypes.Any) { return; } writer.WriteUInt32(this.size); writer.WriteBoxType(expectedType); if (this.size == 1) { writer.WriteUInt64(largeSize); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(sampleSize); writer.WriteUInt32(SampleCount); if (SampleSizeReader != null) { if ((sampleSize == 0) && (SampleCount > 0)) { if (SampleCount * 4 != SampleSizeReader.BaseStream.Length) { throw new Exception("Inconsistent SampleSizeBox array size"); } for (int i = 0; i < sampleCount; i++) { writer.WriteUInt32(SampleSizeReader.ReadUInt32()); } } } else if ((SampleSizeArray != null) && (SampleCount == SampleSizeArray.Length)) { if ((sampleSize == 0) && (SampleCount > 0)) { for (int i = 0; i < sampleCount; i++) { writer.WriteUInt32(SampleSizeArray[i]); } } } // don't throw an exception here (it won't be caught because we are inside multiple levels of using blocks; // let SiceCalculator detect the problem. //else throw new Exception("SampleSizeBox.Write: nothing to write"); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); if (Version == 1) { writer.WriteUInt64(FragmentDuration); } else { writer.WriteUInt32((uint)FragmentDuration); } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); if (Version == 1) { writer.WriteUInt64(creationTime); writer.WriteUInt64(modificationTime); writer.WriteUInt32(TimeScale); writer.WriteUInt64(Duration); } else { writer.WriteUInt32((uint)creationTime); writer.WriteUInt32((uint)modificationTime); writer.WriteUInt32(TimeScale); writer.WriteUInt32((uint)Duration); } writer.Write((Int16)language); writer.Write((Int16)0); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); if (Version == 1) { writer.WriteUInt64(creationTime); writer.WriteUInt64(modificationTime); writer.WriteUInt32(TimeScale); writer.WriteUInt64(Duration); } else { writer.WriteUInt32((uint)creationTime); writer.WriteUInt32((uint)modificationTime); writer.WriteUInt32((uint)TimeScale); writer.WriteUInt32((uint)Duration); } writer.Write(rate[0]); writer.Write(rate[1]); writer.Write(volume, 0, 2); writer.Write((short)0); for (int x = 0; x < 2; x++) { writer.WriteUInt32((uint)0); } this.Matrix.Write(writer); for (int x = 0; x < 6; x++) { writer.WriteUInt32((uint)0); } writer.WriteUInt32(NextTrackID); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (EntryCount > 0) { foreach (DataEntry entry in DataEntry) { if (entry.DataEntryUrlBox != null) { entry.DataEntryUrlBox.Write(writer); } if (entry.DataEntryUrnBox != null) { entry.DataEntryUrnBox.Write(writer); } } } } }
public void Write(BoxWriter writer, byte version, uint LengthSizeOfTrafNum, uint LengthSizeOfTrunNum, uint LengthSizeOfSampleNum) { if (version == 1) { ulong tmpTime = Time - BaseTime; writer.WriteUInt64(tmpTime); writer.WriteUInt64(MoofOffset); } else { writer.WriteUInt32((uint)Time); writer.WriteUInt32((uint)MoofOffset); } switch (((LengthSizeOfTrafNum + 1) * 8)) { case 0x18: //this.TrafNumber = reader.ReadUInt24(); writer.WriteUInt24(TrafNumber); break; case 0x20: //this.TrafNumber = reader.ReadUInt32(); writer.WriteUInt32(TrafNumber); break; case 8: //this.TrafNumber = reader.ReadByte(); writer.Write((byte)TrafNumber); break; case 0x10: //this.TrafNumber = reader.ReadUInt16(); writer.WriteUInt16((UInt16)TrafNumber); break; } switch (((LengthSizeOfTrunNum + 1) * 8)) { case 0x18: //this.TrunNumber = reader.ReadUInt24(); writer.WriteUInt24(TrunNumber); break; case 0x20: //this.TrunNumber = reader.ReadUInt32(); writer.WriteUInt32(TrunNumber); break; case 8: //this.TrunNumber = reader.ReadByte(); writer.Write((byte)TrunNumber); break; case 0x10: //this.TrunNumber = reader.ReadUInt16(); writer.WriteUInt16((UInt16)TrunNumber); break; } switch (((LengthSizeOfSampleNum + 1) * 8)) { case 8: //this.SampleNumber = reader.ReadByte(); writer.Write((byte)SampleNumber); return; case 0x10: //this.SampleNumber = reader.ReadUInt16(); writer.WriteUInt16((UInt16)SampleNumber); break; case 0x18: //this.SampleNumber = reader.ReadUInt24(); writer.WriteUInt24(SampleNumber); return; case 0x20: //this.SampleNumber = reader.ReadUInt32(); writer.WriteUInt32(SampleNumber); return; } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (ChunkGroupReader != null) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(ChunkGroupReader.ReadUInt32()); writer.WriteUInt32(ChunkGroupReader.ReadUInt32()); writer.WriteUInt32(ChunkGroupReader.ReadUInt32()); } } else if ((ChunkEntries != null) && (ChunkEntries.Length == EntryCount)) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(ChunkEntries[i].firstChunk); writer.WriteUInt32(ChunkEntries[i].samplesPerChunk); writer.WriteUInt32(ChunkEntries[i].sampleDescriptionIndex); } } else throw new Exception("SampleToChunkBox.Write: Nothing to write"); } }
public void Write(BoxWriter writer) { for (int i = 0; i < 9; i++) writer.WriteUInt32(matrix[i]); }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(SampleCount); if (EnumUtils.IsBitSet<TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)base.Flags, TrackFragmentRunBoxFlags.DataOffsetPresent)) { writer.WriteUInt32(DataOffset); } if (EnumUtils.IsBitSet<TrackFragmentRunBoxFlags>((TrackFragmentRunBoxFlags)base.Flags, TrackFragmentRunBoxFlags.FirstSampleFlagsPresent)) { writer.WriteUInt32(FirstSampleFlags); } for (int i = 0; i < this.SampleCount; i++) { TrackFragmentRunSample item = Samples[i]; item.Write(writer, base.Flags); } } }
/// <summary> /// Write - write the ChunkOffsetBox to output file. /// For every chunk offset written out, add fixup. /// ChunkOffset data is either stored in a temp file, or in the chunkOffsetArray. /// Data is in the temp file if we are using PrepareSampleWriting, and in the chunkOffsetArray /// if we are simply copying boxes as they are, no recoding. /// </summary> /// <param name="writer"></param> public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(entryCount); if (entryCount > 0) { if (ChunkOffsetReader != null) { ChunkOffsetReader.BaseStream.Position = 0L; for (int i = 0; i < entryCount; i++) { uint offs = (uint)(ChunkOffsetReader.ReadUInt32() + fixup); writer.WriteUInt32(offs); } } else if ((chunkOffsetArray != null) && (entryCount == chunkOffsetArray.Length)) { for (int i = 0; i < entryCount; i++) { writer.WriteUInt32((uint)(chunkOffsetArray[i] + fixup)); } } else throw new Exception("ChunkOffsetBox.Write: nothing to write"); } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(TrackId); uint num = 0; num = (uint)((LengthSizeOfTrafNum << 4) | (LengthSizeOfTrunNum << 2) | LengthSizeOfSampleNum); writer.WriteUInt32(num); writer.WriteUInt32(NumberOfEntry); for (int i=0; i<this.NumberOfEntry; i++) { TrackFragmentRandomAccessEntry item = TrackFragmentRandomAccessEntries[i]; item.Write(writer, base.Version, this.LengthSizeOfTrafNum, this.LengthSizeOfTrunNum, this.LengthSizeOfSampleNum); } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (SyncSampleReader != null) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SyncSampleReader.ReadUInt32()); } } else if ((SampleNumbers != null) && (EntryCount == SampleNumbers.Length)) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SampleNumbers[i]); } } else throw new Exception("SyncSampleMapBox.Write: nothing to write"); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); if (Version == 1) { writer.WriteUInt64(creationTime); writer.WriteUInt64(modificationTime); writer.WriteUInt32(TrackID); writer.WriteUInt32((uint)0); writer.WriteUInt64(Duration); } else { writer.WriteUInt32((uint)creationTime); writer.WriteUInt32((uint)modificationTime); writer.WriteUInt32(TrackID); writer.WriteUInt32((uint)0); writer.WriteUInt32((uint)Duration); } for (int x = 0; x < 2; x++) writer.WriteUInt32((uint)0); writer.Write(Layer); writer.Write(AlternateGroup); writer.Write(_volume); writer.Write((UInt16)0); this.Matrix.Write(writer); writer.Write(_width); writer.Write(_height); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(sampleSize); writer.WriteUInt32(SampleCount); if (SampleSizeReader != null) { if ((sampleSize == 0) && (SampleCount > 0)) { if (SampleCount * 4 != SampleSizeReader.BaseStream.Length) throw new Exception("Inconsistent SampleSizeBox array size"); for (int i = 0; i < sampleCount; i++) writer.WriteUInt32(SampleSizeReader.ReadUInt32()); } } else if ((SampleSizeArray != null) && (SampleCount == SampleSizeArray.Length)) { if ((sampleSize == 0) && (SampleCount > 0)) { for (int i = 0; i < sampleCount; i++) writer.WriteUInt32(SampleSizeArray[i]); } } // don't throw an exception here (it won't be caught because we are inside multiple levels of using blocks; // let SiceCalculator detect the problem. //else throw new Exception("SampleSizeBox.Write: nothing to write"); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (EntryCount > 0) foreach (DataEntry entry in DataEntry) { if (entry.DataEntryUrlBox != null) { entry.DataEntryUrlBox.Write(writer); } if (entry.DataEntryUrnBox != null) { entry.DataEntryUrnBox.Write(writer); } } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(EntryCount); if (SttsCountsReader != null) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SttsCountsReader.ReadUInt32()); writer.WriteUInt32(SttsTimeDeltaReader.ReadUInt32()); } } else if ((SampleCount != null) && (SampleDelta != null) && (SampleCount.Length == EntryCount) && (SampleDelta.Length == EntryCount)) { for (int i = 0; i < EntryCount; i++) { writer.WriteUInt32(SampleCount[i]); writer.WriteUInt32(SampleDelta[i]); } } else throw new Exception("Nothing to write"); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(hSpacing); writer.WriteUInt32(vSpacing); } }
public virtual void Write(BoxWriter writer) { Common.Logger.Instance.Info("[Box::Write] writing a box of type [" + this.Type + ", " + this.GetType().Name + "], size [" + this.Size + "], offset [" + Offset + "], details: " + this.ToString()); if (this.expectedType == BoxTypes.Any) return; writer.WriteUInt32(this.size); writer.WriteBoxType(expectedType); if (this.size == 1) { writer.WriteUInt64(largeSize); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); if (Version == 1) { writer.WriteUInt64(creationTime); writer.WriteUInt64(modificationTime); writer.WriteUInt32(TimeScale); writer.WriteUInt64(Duration); } else { writer.WriteUInt32((uint)creationTime); writer.WriteUInt32((uint)modificationTime); writer.WriteUInt32((uint)TimeScale); writer.WriteUInt32((uint)Duration); } writer.Write(rate[0]); writer.Write(rate[1]); writer.Write(volume, 0, 2); writer.Write((short)0); for (int x = 0; x < 2; x++) writer.WriteUInt32((uint)0); this.Matrix.Write(writer); for (int x = 0; x < 6; x++) writer.WriteUInt32((uint)0); writer.WriteUInt32(NextTrackID); } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(TrackId); if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.BaseDataOffsetPresent)) { writer.WriteUInt64(BaseDataOffset); } if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags)base.Flags, TrackFragmentHeaderBoxFlags.SampleDescriptionIndexPresent)) { writer.WriteUInt32(SampleDescriptionIndex); } if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags) base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleDurationPresent)) { writer.WriteUInt32(DefaultSampleDuration); } if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags) base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleSizePresent)) { writer.WriteUInt32(DefaultSampleSize); } if (EnumUtils.IsBitSet<TrackFragmentHeaderBoxFlags>((TrackFragmentHeaderBoxFlags) base.Flags, TrackFragmentHeaderBoxFlags.DefaultSampleFlagsPresent)) { writer.WriteUInt32(DefaultSampleFlags); } } }
public override void Write(BoxWriter writer) { using (new SizeCalculator(this, writer)) { base.Write(writer); writer.WriteUInt32(CleanApertureWidthN); writer.WriteUInt32(CleanApertureWidthD); writer.WriteUInt32(CleanApertureHeightN); writer.WriteUInt32(CleanApertureHeightD); writer.WriteUInt32(HorizOffN); writer.WriteUInt32(HorizOffD); writer.WriteUInt32(VertOffN); writer.WriteUInt32(VertOffD); } }