mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-19 20:46:22 +00:00
Fix segfault when adding clips to group outside a timeline
Making sure that objects are inside a timeline before adding/removing them from it Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/35
This commit is contained in:
parent
35e39083a2
commit
9748b963b6
1 changed files with 5 additions and 3 deletions
|
@ -455,7 +455,8 @@ _child_added (GESContainer * group, GESTimelineElement * child)
|
||||||
GESGroupPrivate *priv = GES_GROUP (group)->priv;
|
GESGroupPrivate *priv = GES_GROUP (group)->priv;
|
||||||
GstClockTime last_child_end = 0, first_child_start = G_MAXUINT64;
|
GstClockTime last_child_end = 0, first_child_start = G_MAXUINT64;
|
||||||
|
|
||||||
if (!GES_TIMELINE_ELEMENT_TIMELINE (group)) {
|
if (!GES_TIMELINE_ELEMENT_TIMELINE (group)
|
||||||
|
&& GES_TIMELINE_ELEMENT_TIMELINE (child)) {
|
||||||
timeline_add_group (GES_TIMELINE_ELEMENT_TIMELINE (child),
|
timeline_add_group (GES_TIMELINE_ELEMENT_TIMELINE (child),
|
||||||
GES_GROUP (group));
|
GES_GROUP (group));
|
||||||
timeline_emit_group_added (GES_TIMELINE_ELEMENT_TIMELINE (child),
|
timeline_emit_group_added (GES_TIMELINE_ELEMENT_TIMELINE (child),
|
||||||
|
@ -554,8 +555,9 @@ _child_removed (GESContainer * group, GESTimelineElement * child)
|
||||||
g_free (signals_ids_key);
|
g_free (signals_ids_key);
|
||||||
if (children == NULL) {
|
if (children == NULL) {
|
||||||
GST_FIXME_OBJECT (group, "Auto destroy myself?");
|
GST_FIXME_OBJECT (group, "Auto destroy myself?");
|
||||||
timeline_remove_group (GES_TIMELINE_ELEMENT_TIMELINE (group),
|
if (GES_TIMELINE_ELEMENT_TIMELINE (group))
|
||||||
GES_GROUP (group));
|
timeline_remove_group (GES_TIMELINE_ELEMENT_TIMELINE (group),
|
||||||
|
GES_GROUP (group));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue