GESAsset, GESLayer: add some function guards

https://bugzilla.gnome.org/show_bug.cgi?id=789521
This commit is contained in:
Ashish Kumar 2017-11-07 12:04:03 +05:30 committed by Tim-Philipp Müller
parent f20876b9db
commit 23e9044b4e
2 changed files with 20 additions and 1 deletions

View file

@ -641,6 +641,8 @@ gboolean
ges_asset_request_id_update (GESAsset * asset, gchar ** proposed_id,
GError * error)
{
g_return_val_if_fail (GES_IS_ASSET (asset), FALSE);
return GES_ASSET_GET_CLASS (asset)->request_id_update (asset, proposed_id,
error);
}
@ -650,6 +652,8 @@ ges_asset_try_proxy (GESAsset * asset, const gchar * new_id)
{
GESAssetClass *class;
g_return_val_if_fail (GES_IS_ASSET (asset), FALSE);
if (g_strcmp0 (asset->priv->id, new_id) == 0) {
GST_WARNING_OBJECT (asset, "Trying to proxy to itself (%s),"
" NOT possible", new_id);
@ -868,7 +872,11 @@ ges_asset_set_id (GESAsset * asset, const gchar * id)
gpointer orig_id = NULL;
GESAssetCacheEntry *entry = NULL;
GESAssetPrivate *priv = asset->priv;
GESAssetPrivate *priv = NULL;
g_return_if_fail (GES_IS_ASSET (asset));
priv = asset->priv;
if (priv->state != ASSET_INITIALIZED) {
GST_WARNING_OBJECT (asset, "Trying to rest ID on an object that is"
@ -935,6 +943,8 @@ _unsure_material_for_wrong_id (const gchar * wrong_id, GType extractable_type,
GType
ges_asset_get_extractable_type (GESAsset * self)
{
g_return_val_if_fail (GES_IS_ASSET (self), G_TYPE_INVALID);
return self->priv->extractable_type;
}

View file

@ -268,6 +268,8 @@ ges_layer_resync_priorities (GESLayer * layer)
{
gint min_source_prios;
g_return_val_if_fail (GES_IS_LAYER (layer), FALSE);
GST_INFO_OBJECT (layer, "Resync priorities (prio: %d)",
layer->priv->priority);
@ -342,6 +344,8 @@ ges_layer_get_duration (GESLayer * layer)
GList *tmp;
GstClockTime duration = 0;
g_return_val_if_fail (GES_IS_LAYER (layer), 0);
for (tmp = layer->priv->clips_start; tmp; tmp = tmp->next) {
duration = MAX (duration, _END (tmp->data));
}
@ -728,6 +732,8 @@ ges_layer_set_timeline (GESLayer * layer, GESTimeline * timeline)
{
GList *tmp;
g_return_if_fail (GES_IS_LAYER (layer));
GST_DEBUG ("layer:%p, timeline:%p", layer, timeline);
for (tmp = layer->priv->clips_start; tmp; tmp = tmp->next) {
@ -755,6 +761,9 @@ ges_layer_get_clips_in_interval (GESLayer * layer, GstClockTime start,
GList *intersecting_clips = NULL;
GstClockTime clip_start, clip_end;
gboolean clip_intersects;
g_return_val_if_fail (GES_IS_LAYER (layer), NULL);
for (tmp = layer->priv->clips_start; tmp; tmp = tmp->next) {
clip_intersects = FALSE;
clip_start = ges_timeline_element_get_start (tmp->data);