[pitivi] etree.py: check for curve version and do conversion if necessary when loading
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [pitivi] etree.py: check for curve version and do conversion if necessary when loading
- Date: Fri, 22 Jan 2010 18:04:27 +0000 (UTC)
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]