using JT1078.FMp4.Enums; using JT1078.FMp4.Interfaces; using JT1078.FMp4.MessagePack; using System; using System.Collections.Generic; using System.Text; namespace JT1078.FMp4 { /// /// hdlr /// public class HandlerBox : FullBox, IFMp4MessagePackFormatter { /// /// hdlr /// /// /// public HandlerBox(byte version=0, uint flags=0) : base("hdlr", version, flags) { } public uint PreDefined { get; set; } public HandlerType HandlerType { get; set; } public uint[] Reserved { get; set; } = new uint[3]; public string Name { get; set; } public void ToBuffer(ref FMp4MessagePackWriter writer) { Start(ref writer); WriterFullBoxToBuffer(ref writer); writer.WriteUInt32(PreDefined); if(HandlerType== HandlerType.none) { writer.WriteASCII("null"); } else { writer.WriteASCII(HandlerType.ToString()); } foreach(var r in Reserved) { writer.WriteUInt32(r); } if (!string.IsNullOrEmpty(Name)) { writer.WriteUTF8(Name); writer.WriteUTF8("\0"); } else { writer.WriteUTF8("\0"); } End(ref writer); } } }