CSharpRTMP.Core.MediaFormats.mp4.TimeBasedFragmenter.SampleNumbers C# (CSharp) Method

SampleNumbers() public method

public SampleNumbers ( ITrack track ) : long[]
track ITrack
return long[]
        public long[] SampleNumbers(ITrack track)
        {
            var segmentStartSamples =new List<long>() {1};
            var sampleDurations = track.SampleDurations;
            var syncSamples = track.SyncSamples;
            long timescale = track.TrackMetaData.Timescale;
            double time = 0;
            for (uint i = 0; i < sampleDurations.Length; i++)
            {
                time += (double)sampleDurations[i] / timescale;
                if (time >= _fragmentLength &&
                        (syncSamples == null || syncSamples.Contains(i+1)))
                {
                    if (i > 0)
                    {
                        segmentStartSamples.Add(i+1);
                    }
                    time = 0;
                }
            }
            return segmentStartSamples.ToArray();
        }
    }