/// <summary> /// Generate a pair of 'moof' and 'mdat' atoms for the given stream. /// The stream should contains a populated list of frame data, otherwise output will be empty. /// Keeps track of fragment index. Does not write to file. Does not remove frames. Does not adjust offset time. /// </summary> public FragmentBoxes.MediaFragmentHandler GenerateFragment(MediaStream Stream) { if (Stream.Frames == null || Stream.Frames.Count < 1) { throw new Exception("Stream was empty"); } FragmentBoxes.MediaFragmentHandler output = new MP4_Mangler.FragmentBoxes.MediaFragmentHandler((uint)Stream.FragmentNumber, Stream.Offset); Stream.FragmentNumber++; foreach (var frame in Stream.Frames) { output.AddFrame((uint)Stream.TrackId, frame); } Stream.Frames.Clear(); return(output); }
/// <summary> /// Generate a pair of 'moof' and 'mdat' atoms for the given stream. /// The stream should contains a populated list of frame data, otherwise output will be empty. /// Keeps track of fragment index. Does not write to file. Does not remove frames. Does not adjust offset time. /// </summary> public FragmentBoxes.MediaFragmentHandler GenerateFragment(MediaStream Stream) { if (Stream.Frames == null || Stream.Frames.Count < 1) throw new Exception("Stream was empty"); FragmentBoxes.MediaFragmentHandler output = new MP4_Mangler.FragmentBoxes.MediaFragmentHandler((uint)Stream.FragmentNumber, Stream.Offset); Stream.FragmentNumber++; foreach (var frame in Stream.Frames) { output.AddFrame((uint)Stream.TrackId, frame); } Stream.Frames.Clear(); return output; }