[pitivi] Fix trimStart to take into account the in_point.
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Subject: [pitivi] Fix trimStart to take into account the in_point.
- Date: Fri, 10 Jul 2009 11:40:23 +0000 (UTC)
commit d6516838deb6e25207264c1e3fa139088752a130
Author: Alessandro Decina <alessandro d gmail com>
Date: Fri Jul 10 12:07:24 2009 +0200
Fix trimStart to take into account the in_point.
pitivi/timeline/timeline.py | 4 ++--
pitivi/timeline/track.py | 9 ++++-----
tests/test_track.py | 15 ++++++++-------
3 files changed, 14 insertions(+), 14 deletions(-)
---
diff --git a/pitivi/timeline/timeline.py b/pitivi/timeline/timeline.py
index 0b5ee56..40573dd 100644
--- a/pitivi/timeline/timeline.py
+++ b/pitivi/timeline/timeline.py
@@ -181,8 +181,8 @@ class TimelineObject(Signallable, Loggable):
if snap:
position = self.timeline.snapToEdge(position)
- trimmed_start = self.track_objects[0].trimmed_start
- position = min(position, self.factory.duration - trimmed_start)
+ position = min(position, self.factory.duration -
+ self.track_objects[0].in_point)
for track_object in self.track_objects:
track_object.setObjectDuration(position)
diff --git a/pitivi/timeline/track.py b/pitivi/timeline/track.py
index 157a182..526a2f1 100644
--- a/pitivi/timeline/track.py
+++ b/pitivi/timeline/track.py
@@ -280,7 +280,6 @@ class TrackObject(Signallable, Loggable):
self.interpolators = {}
self._rebuild_interpolators = True
self.gnl_object = obj = self._makeGnlObject()
- self.trimmed_start = 0
self.keyframes = []
if start != 0:
@@ -362,7 +361,6 @@ class TrackObject(Signallable, Loggable):
other = cls(self.factory, self.stream, start=self.start,
duration=self.duration, in_point=self.in_point,
media_duration=self.media_duration, priority=self.priority)
- other.trimmed_start = self.trimmed_start
if self.track is not None:
self.track.addTrackObject(other)
@@ -483,15 +481,16 @@ class TrackObject(Signallable, Loggable):
def trimObjectStart(self, position):
# clamp position to be inside the object
- position = max(self.start - self.trimmed_start, position)
+ position = max(self.start - self.in_point, position)
position = min(position, self.start + self.duration)
new_duration = max(0, self.start + self.duration - position)
delta = position - self.start
- self.trimmed_start += delta
+ in_point = self.in_point
+ in_point += delta
self.setObjectStart(position)
self.setObjectDuration(new_duration)
- self.setObjectInPoint(self.trimmed_start)
+ self.setObjectInPoint(in_point)
self.setObjectMediaDuration(new_duration)
def split(self, position, snap=False):
diff --git a/tests/test_track.py b/tests/test_track.py
index 0d04798..2dee1f0 100644
--- a/tests/test_track.py
+++ b/tests/test_track.py
@@ -147,6 +147,7 @@ class TestTrackObject(TestCase):
# start at 2 seconds with length 10 seconds
obj.start = 2 * gst.SECOND
+ obj.in_point = 1 * gst.SECOND
obj.duration = 10 * gst.SECOND
self.failUnlessEqual(self.monitor.duration_changed_count, 1)
@@ -156,7 +157,7 @@ class TestTrackObject(TestCase):
time = 2 * gst.SECOND
obj.trimStart(time)
self.failUnlessEqual(obj.start, time)
- self.failUnlessEqual(obj.in_point, 0)
+ self.failUnlessEqual(obj.in_point, 1 * gst.SECOND)
self.failUnlessEqual(obj.duration, 10 * gst.SECOND)
self.failUnlessEqual(obj.rate, 1)
# we didn't change the start/in-point/duration (it was the same as before)
@@ -169,7 +170,7 @@ class TestTrackObject(TestCase):
time = 12 * gst.SECOND
obj.trimStart(time)
self.failUnlessEqual(obj.start, time)
- self.failUnlessEqual(obj.in_point, 10 * gst.SECOND)
+ self.failUnlessEqual(obj.in_point, 11 * gst.SECOND)
self.failUnlessEqual(obj.duration, 0)
self.failUnlessEqual(obj.rate, 1)
self.failUnlessEqual(monitor.start_changed_count, 1)
@@ -178,11 +179,11 @@ class TestTrackObject(TestCase):
# trim before lower edge, should clamp
monitor = TrackSignalMonitor(obj)
- time = 1 * gst.SECOND
+ time = 0 * gst.SECOND
obj.trimStart(time)
- self.failUnlessEqual(obj.start, 2 * gst.SECOND)
+ self.failUnlessEqual(obj.start, 1 * gst.SECOND)
self.failUnlessEqual(obj.in_point, 0)
- self.failUnlessEqual(obj.duration, 10 * gst.SECOND)
+ self.failUnlessEqual(obj.duration, 11 * gst.SECOND)
self.failUnlessEqual(obj.rate, 1)
self.failUnlessEqual(monitor.start_changed_count, 1)
self.failUnlessEqual(monitor.in_point_changed_count, 1)
@@ -193,7 +194,7 @@ class TestTrackObject(TestCase):
time = 13 * gst.SECOND
obj.trimStart(time)
self.failUnlessEqual(obj.start, 12 * gst.SECOND)
- self.failUnlessEqual(obj.in_point, 10 * gst.SECOND)
+ self.failUnlessEqual(obj.in_point, 11 * gst.SECOND)
self.failUnlessEqual(obj.duration, 0)
self.failUnlessEqual(obj.rate, 1)
self.failUnlessEqual(monitor.start_changed_count, 1)
@@ -205,7 +206,7 @@ class TestTrackObject(TestCase):
time = 4 * gst.SECOND
obj.trimStart(time)
self.failUnlessEqual(obj.start, time)
- self.failUnlessEqual(obj.in_point, 2 * gst.SECOND)
+ self.failUnlessEqual(obj.in_point, 3 * gst.SECOND)
self.failUnlessEqual(obj.duration, 8 * gst.SECOND)
self.failUnlessEqual(obj.rate, 1)
self.failUnlessEqual(monitor.start_changed_count, 1)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]