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); } }