using JT1078.FMp4.Interfaces; using JT1078.FMp4.MessagePack; using System; using System.Collections.Generic; using System.Text; namespace JT1078.FMp4 { /// /// mdhd /// public class MediaHeaderBox : FullBox, IFMp4MessagePackFormatter { /// /// mdhd /// /// /// public MediaHeaderBox(byte version=1, uint flags=0) : base("mdhd", version, flags) { } public ulong CreationTime { get; set; } public ulong ModificationTime { get; set; } public uint Timescale { get; set; } public ulong Duration { get; set; } = 1; //public bool Pad { get; set; } /// /// ISO-639-2/T language code /// ref:doc\fmp4\ISO Language Codes.txt /// und-undetermined /// public string Language { get; set; } = "und"; public ushort PreDefined { get; set; } public void ToBuffer(ref FMp4MessagePackWriter writer) { Start(ref writer); WriterFullBoxToBuffer(ref 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.WriteIso639(Language); writer.WriteUInt16(PreDefined); End(ref writer); } } }