g_assert (elem1 != elem2);
- if (last_snap_ts != snap_time) {
+ if (GST_CLOCK_TIME_IS_VALID (last_snap_ts))
g_signal_emit (timeline, ges_timeline_signals[SNAPING_ENDED], 0,
priv->last_snaped1, priv->last_snaped2, (last_snap_ts));
- /* We want the snap start signal to be emited anyway */
- timeline->priv->last_snap_ts = GST_CLOCK_TIME_NONE;
- }
-
- if (!GST_CLOCK_TIME_IS_VALID (timeline->priv->last_snap_ts)) {
- priv->last_snaped1 = elem1;
- priv->last_snaped2 = elem2;
- timeline->priv->last_snap_ts = snap_time;
- g_signal_emit (timeline, ges_timeline_signals[SNAPING_STARTED], 0,
- elem1, elem2, snap_time);
- }
-
+ priv->last_snaped1 = elem1;
+ priv->last_snaped2 = elem2;
+ timeline->priv->last_snap_ts = snap_time;
+ g_signal_emit (timeline, ges_timeline_signals[SNAPING_STARTED], 0,
+ elem1, elem2, snap_time);
}
/* Accept @self == NULL, making it use default framerate */
]
])
+ # snap to 20
clip.props.start = 18
self.assertTimelineTopology([
[ # Unique layer
])
self.assertEqual(self.snapped_at, [20])
+ # no snapping
clip.props.start = 30
self.assertTimelineTopology([
[ # Unique layer
])
self.assertEqual(self.snapped_at, [20, Gst.CLOCK_TIME_NONE])
+ # snap to 20
clip.props.start = 18
self.assertTimelineTopology([
[ # Unique layer
(GES.TestClip, 20, 10),
]
])
- self.assertEqual(self.snapped_at, [20, Gst.CLOCK_TIME_NONE,
- Gst.CLOCK_TIME_NONE, 20])
+ self.assertEqual(self.snapped_at, [20, Gst.CLOCK_TIME_NONE, 20])
+ # snap to 20 again
clip.props.start = 19
self.assertTimelineTopology([
[ # Unique layer
(GES.TestClip, 20, 10),
]
])
- self.assertEqual(self.snapped_at, [20, Gst.CLOCK_TIME_NONE,
- Gst.CLOCK_TIME_NONE, 20])
+ self.assertEqual(
+ self.snapped_at,
+ [20, Gst.CLOCK_TIME_NONE, 20, Gst.CLOCK_TIME_NONE, 20])
def test_rippling_snaps(self):
self.timeline.props.auto_transition = True