[pitivi] etree.py: check for curve version and do conversion if necessary when loading



commit d24afc02c289b5a93a556227a6f14d923ac7a1f6
Author: Brandon Lewis <brandon_lewis alum berkeley edu>
Date:   Mon Jan 11 18:12:32 2010 -0800

    etree.py: check for curve version and do conversion if necessary when loading

 pitivi/formatters/etree.py |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/pitivi/formatters/etree.py b/pitivi/formatters/etree.py
index be5a446..ee01f04 100644
--- a/pitivi/formatters/etree.py
+++ b/pitivi/formatters/etree.py
@@ -409,6 +409,24 @@ class ElementTreeFormatter(Formatter):
         interpolator.end.value = self._parsePropertyValue(end.attrib["value"])
         interpolator.end.mode = int(end.attrib["mode"])
 
+        # if we are using old-style keyframe curves where start, end point
+        # represent start of file, convert to the newer representation to
+        # preserve the existing shape of the curve
+        if not ("version" in element.attrib):
+            # move start, end keyframes to start of file
+            interpolator.updateMediaStart(0)
+            interpolator.updateMediaStop(trackobject.factory.duration)
+
+            # get the value of the curve at true start/end points
+            startval = interpolator.valueAt(trackobject.in_point)
+            endval = interpolator.valueAt(trackobject.out_point)
+            interpolator.start.value = startval
+            interpolator.end.value = endval
+
+            # move start, end keyframes back to proper position
+            interpolator.updateMediaStart(trackobject.in_point)
+            interpolator.updateMediaStop(trackobject.out_point)
+
     def _saveTrackObjectRef(self, track_object):
         element = Element("track-object-ref")
         element.attrib["id"] = self._context.track_objects[track_object].attrib["id"]



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]