diff options
Diffstat (limited to 'ges/ges-clip.c')
-rw-r--r-- | ges/ges-clip.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/ges/ges-clip.c b/ges/ges-clip.c index 09a07b15..0c25dea8 100644 --- a/ges/ges-clip.c +++ b/ges/ges-clip.c @@ -1417,16 +1417,23 @@ _trim (GESTimelineElement * element, GstClockTime start) * * Takes a reference on @track_element. * - * Returns: %TRUE on success, %FALSE on failure. + * Returns: (transfer none)(allow-none): Created #GESTrackElement or NULL + * if an error happened */ -gboolean +GESTrackElement * ges_clip_add_asset (GESClip * clip, GESAsset * asset) { - g_return_val_if_fail (GES_IS_CLIP (clip), FALSE); - g_return_val_if_fail (GES_IS_ASSET (asset), FALSE); + GESTrackElement *element; + + g_return_val_if_fail (GES_IS_CLIP (clip), NULL); + g_return_val_if_fail (GES_IS_ASSET (asset), NULL); g_return_val_if_fail (g_type_is_a (ges_asset_get_extractable_type - (asset), GES_TYPE_TRACK_ELEMENT), FALSE); + (asset), GES_TYPE_TRACK_ELEMENT), NULL); + + element = GES_TRACK_ELEMENT (ges_asset_extract (asset, NULL)); + + if (!ges_container_add (GES_CONTAINER (clip), GES_TIMELINE_ELEMENT (element))) + return NULL; - return ges_container_add (GES_CONTAINER (clip), - GES_TIMELINE_ELEMENT (ges_asset_extract (asset, NULL))); + return element; } |