using JT1078.FMp4.Interfaces; using JT1078.FMp4.MessagePack; using System; using System.Collections.Generic; using System.Text; namespace JT1078.FMp4 { /// /// moof /// public class MovieFragmentBox : Mp4Box, IFMp4MessagePackFormatter { /// /// moof /// public MovieFragmentBox() : base("moof") { } /// /// mfhd /// public MovieFragmentHeaderBox MovieFragmentHeaderBox { get; set; } /// /// traf /// public TrackFragmentBox TrackFragmentBox { get; set; } public void ToBuffer(ref FMp4MessagePackWriter writer) { Start(ref writer); if (MovieFragmentHeaderBox != null) { MovieFragmentHeaderBox.ToBuffer(ref writer); } if (TrackFragmentBox != null) { TrackFragmentBox.ToBuffer(ref writer); } End(ref writer); var trunOffsetPosition = writer.GetTrunOffsetPosition(); if (trunOffsetPosition > 0) { writer.WriteInt32Return(writer.GetCurrentPosition() - SizePosition + 8, trunOffsetPosition); writer.ClearTrunOffsetPosition(); } } } }