private void AddRubberBandingPoints(TimelineElement element, CompositeManifestInfo compositeManifestInfo)
        {
            const ulong Timescale = 10000000;

            List <Point> elementVolumeCollection = element.VolumeNodeCollection;

            foreach (Point point in elementVolumeCollection)
            {
                double volume       = 1 - point.Y;
                long   frames       = (long)point.X;
                double totalSeconds = TimeCode.FromFrames(frames, this.sequenceRegistry.CurrentSequenceModel.CurrentPosition.FrameRate).TotalSeconds + element.Position.TotalSeconds;

                long ticks = (long)(totalSeconds * Timescale);

                compositeManifestInfo.AddRubberBandingPoint(ticks, volume);
            }
        }
        private void AddRubberBandingPoints(Shot shot, CompositeManifestInfo compositeManifestInfo)
        {
            const ulong Timescale = 10000000;

            List <VolumeLevelNode> volumeNodes = shot.VolumeNodeCollection;

            foreach (VolumeLevelNode volumeNode in volumeNodes)
            {
                double         volume = volumeNode.Volume;
                long           frames = (long)volumeNode.Position;
                SmpteFrameRate frameRate;
                SmpteFrameRate.TryParse(this.project.SmpteFrameRate, true, out frameRate);
                double totalSeconds = TimeCode.FromFrames(frames, frameRate).TotalSeconds + shot.TrackAnchor.MarkIn.Value;

                long ticks = (long)(totalSeconds * Timescale);

                compositeManifestInfo.AddRubberBandingPoint(ticks, volume);
            }
        }