mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 17:20:36 +00:00
timeline: Make sure transitions between rippled clips are never deleted
Reviewed-by: Alex Băluț <alexandru.balut@gmail.com> Differential Revision: https://phabricator.freedesktop.org/D1361
This commit is contained in:
parent
e31b8627ef
commit
a2ae8762af
2 changed files with 14 additions and 2 deletions
|
@ -838,11 +838,13 @@ _destroy_auto_transition_cb (GESAutoTransition * auto_transition,
|
||||||
get_toplevel_container (auto_transition->previous_clip), *toplevel_next =
|
get_toplevel_container (auto_transition->previous_clip), *toplevel_next =
|
||||||
get_toplevel_container (auto_transition->next_clip);
|
get_toplevel_container (auto_transition->next_clip);
|
||||||
|
|
||||||
if (mv_ctx->moving_to_layer &&
|
if (g_hash_table_lookup (mv_ctx->toplevel_containers, toplevel_prev) &&
|
||||||
g_hash_table_lookup (mv_ctx->toplevel_containers, toplevel_prev) &&
|
|
||||||
g_hash_table_lookup (mv_ctx->toplevel_containers, toplevel_next)) {
|
g_hash_table_lookup (mv_ctx->toplevel_containers, toplevel_next)) {
|
||||||
GESLayer *nlayer = mv_ctx->moving_to_layer;
|
GESLayer *nlayer = mv_ctx->moving_to_layer;
|
||||||
|
|
||||||
|
if (!nlayer)
|
||||||
|
return;
|
||||||
|
|
||||||
ges_clip_move_to_layer (transition, nlayer);
|
ges_clip_move_to_layer (transition, nlayer);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -85,3 +85,13 @@ class TestEditing(common.GESSimpleTimelineTest):
|
||||||
clip1.edit([], layer2.get_priority(), GES.EditMode.EDIT_RIPPLE, GES.Edge.EDGE_NONE, clip1.props.start)
|
clip1.edit([], layer2.get_priority(), GES.EditMode.EDIT_RIPPLE, GES.Edge.EDGE_NONE, clip1.props.start)
|
||||||
self.assertEquals(self.layer.get_clips(), [])
|
self.assertEquals(self.layer.get_clips(), [])
|
||||||
self.assertEquals(set(layer2.get_clips()), set(all_clips))
|
self.assertEquals(set(layer2.get_clips()), set(all_clips))
|
||||||
|
|
||||||
|
def test_transition_rippling_after_next_clip_stays(self):
|
||||||
|
self.timeline.props.auto_transition = True
|
||||||
|
clip1 = self.add_clip(0, 0, 100)
|
||||||
|
clip2 = self.add_clip(50, 0, 100)
|
||||||
|
all_clips = self.layer.get_clips()
|
||||||
|
self.assertEquals(len(all_clips), 4)
|
||||||
|
|
||||||
|
clip1.edit([], self.layer.get_priority(), GES.EditMode.EDIT_RIPPLE, GES.Edge.EDGE_NONE, clip2.props.start +1)
|
||||||
|
self.assertEquals(set(self.layer.get_clips()), set(all_clips))
|
||||||
|
|
Loading…
Reference in a new issue