/// <inheritdoc /> /// <summary> /// </summary> /// <param name="bytes"></param> /// <param name="start"></param> /// <param name="finish"></param> public TrackFragmentBox(byte[] bytes, int start, int finish) : base(Mp4Identifier.Traf) { while (start < finish) { var mp4Box = Mp4Utils.GetBox(bytes, ref start, finish); switch (mp4Box?.Mp4Identifier) { case null: continue; case Mp4Identifier.Tfhd: Tfhd = mp4Box as TrackFragmentHeaderBox; break; case Mp4Identifier.Sdtp: Sdtp = mp4Box as SampleDependencyTypeBox; break; case Mp4Identifier.Trun: Trun = mp4Box as TrackRunBox; break; case Mp4Identifier.Tfrf: Tfrf = mp4Box as TfrfBox; break; case Mp4Identifier.Tfxd: Tfxd = mp4Box as TfxdBox; break; } } }
/// <inheritdoc /> /// <summary> /// </summary> /// <param name="bytes"></param> /// <param name="start"></param> /// <param name="finish"></param> public MovieFragmentBox(byte[] bytes, int start, int finish) : base(Mp4Identifier.Moof) { while (start < finish) { var mp4Box = Mp4Utils.GetBox(bytes, ref start, finish); switch (mp4Box?.Mp4Identifier) { case null: continue; case Mp4Identifier.Traf: TrackFragmentBox = mp4Box as TrackFragmentBox; break; case Mp4Identifier.Mfhd: MovieFragmentHeaderBox = mp4Box as MovieFragmentHeaderBox; break; } } }
/// <summary> /// </summary> /// <param name="boxBytes"></param> /// <param name="start"></param> /// <param name="finish"></param> public Fragment(byte[] boxBytes, int start, int finish) { while (start < finish) { var mp4Box = Mp4Utils.GetBox(boxBytes, ref start, finish); switch (mp4Box?.Mp4Identifier) { case null: continue; case Mp4Identifier.Mdat: MediaDataBox = mp4Box as MediaDataBox; break; case Mp4Identifier.Moof: MovieFragmentBox = mp4Box as MovieFragmentBox; break; } } }