mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-09-02 18:23:56 +00:00
GESTimeline: Fix reference counting of tracks, add docs.
This commit is contained in:
parent
1dc12c9658
commit
8c340412cd
1 changed files with 35 additions and 4 deletions
|
@ -217,7 +217,16 @@ layer_object_removed_cb (GESTimelineLayer * layer, GESTimelineObject * object,
|
||||||
GST_DEBUG ("Done");
|
GST_DEBUG ("Done");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ges_timeline_add_layer:
|
||||||
|
* @timeline: a #GESTimeline
|
||||||
|
* @layer: the #GESTimelineLayer to add
|
||||||
|
*
|
||||||
|
* Add the layer to the timeline. The reference to the @layer will be stolen
|
||||||
|
* by the @timeline.
|
||||||
|
*
|
||||||
|
* Returns: TRUE if the layer was properly added, else FALSE.
|
||||||
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
ges_timeline_add_layer (GESTimeline * timeline, GESTimelineLayer * layer)
|
ges_timeline_add_layer (GESTimeline * timeline, GESTimelineLayer * layer)
|
||||||
{
|
{
|
||||||
|
@ -235,8 +244,8 @@ ges_timeline_add_layer (GESTimeline * timeline, GESTimelineLayer * layer)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reference is taken */
|
/* Reference is stolen */
|
||||||
timeline->layers = g_list_append (timeline->layers, g_object_ref (layer));
|
timeline->layers = g_list_append (timeline->layers, layer);
|
||||||
|
|
||||||
/* Inform the layer that it belongs to a new timeline */
|
/* Inform the layer that it belongs to a new timeline */
|
||||||
ges_timeline_layer_set_timeline (layer, timeline);
|
ges_timeline_layer_set_timeline (layer, timeline);
|
||||||
|
@ -338,6 +347,17 @@ custom_find_track (TrackPrivate * priv, GESTrack * track)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ges_timeline_add_track:
|
||||||
|
* @timeline: a #GESTimeline
|
||||||
|
* @track: the #GESTrack to add
|
||||||
|
*
|
||||||
|
* Add a track to the timeline. The reference to the track will be stolen by the
|
||||||
|
* pipeline.
|
||||||
|
*
|
||||||
|
* Returns: TRUE if the track was properly added, else FALSE.
|
||||||
|
*/
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
ges_timeline_add_track (GESTimeline * timeline, GESTrack * track)
|
ges_timeline_add_track (GESTimeline * timeline, GESTrack * track)
|
||||||
{
|
{
|
||||||
|
@ -355,7 +375,7 @@ ges_timeline_add_track (GESTimeline * timeline, GESTrack * track)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add the track to ourself (as a GstBin)
|
/* Add the track to ourself (as a GstBin)
|
||||||
* Reference is taken ! */
|
* Reference is stolen ! */
|
||||||
if (G_UNLIKELY (!gst_bin_add (GST_BIN (timeline), GST_ELEMENT (track)))) {
|
if (G_UNLIKELY (!gst_bin_add (GST_BIN (timeline), GST_ELEMENT (track)))) {
|
||||||
GST_WARNING ("Couldn't add track to ourself (GST)");
|
GST_WARNING ("Couldn't add track to ourself (GST)");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -383,6 +403,17 @@ ges_timeline_add_track (GESTimeline * timeline, GESTrack * track)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ges_timeline_remove_track:
|
||||||
|
* @timeline: a #GESTimeline
|
||||||
|
* @track: the #GESTrack to remove
|
||||||
|
*
|
||||||
|
* Remove the @track from the @timeline. The reference stolen when adding the
|
||||||
|
* @track will be removed. If you wish to use the @track after calling this
|
||||||
|
* function you must ensure that you have a reference to it.
|
||||||
|
*
|
||||||
|
* Returns: TRUE if the @track was properly removed, else FALSE.
|
||||||
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
ges_timeline_remove_track (GESTimeline * timeline, GESTrack * track)
|
ges_timeline_remove_track (GESTimeline * timeline, GESTrack * track)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue