From 90b5735f7a8bb728452a233ab560ecf0320476e6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 6 Jun 2016 17:44:15 +0300 Subject: [PATCH] ges-uri-asset: GstDiscoverer can return a valid info but a non-OK result, consider this an error The asynchronous case in ges_uri_clip_asset_request_async() already considered it an error, do the same in ges_uri_clip_asset_request_sync(). https://bugzilla.gnome.org/show_bug.cgi?id=767293 --- ges/ges-uri-asset.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ges/ges-uri-asset.c b/ges/ges-uri-asset.c index 9933178..cc70ab1 100644 --- a/ges/ges-uri-asset.c +++ b/ges/ges-uri-asset.c @@ -520,12 +520,24 @@ ges_uri_clip_asset_request_sync (const gchar * uri, GError ** error) info = gst_discoverer_discover_uri (discoverer, uri, &lerror); } + /* We might get a discoverer info but it might have a non-OK result. We + * should consider that an error */ + if (!lerror && info + && gst_discoverer_info_get_result (info) != GST_DISCOVERER_OK) { + lerror = + g_error_new (GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_FAILED, + "Stream %s discovering failed (error code: %d)", uri, + gst_discoverer_info_get_result (info)); + } + ges_asset_cache_put (gst_object_ref (asset), NULL); ges_uri_clip_asset_set_info (asset, info); ges_asset_cache_set_loaded (GES_TYPE_URI_CLIP, uri, lerror); if (info == NULL || lerror != NULL) { gst_object_unref (asset); + if (info) + gst_discoverer_info_unref (info); if (lerror) g_propagate_error (error, lerror); -- 2.7.4