Example #1
0
        /// <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);
        }
Example #2
0
        /// <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;
        }