diff options
author | Robert Swain <robert.swain@collabora.co.uk> | 2011-04-01 13:49:50 +0200 |
---|---|---|
committer | Robert Swain <robert.swain@collabora.co.uk> | 2011-04-01 13:50:37 +0200 |
commit | 9cbca6f7e2f5ca9369a045574168336deb831022 (patch) | |
tree | 5d99afce1a71220f64f30606904a30cde1f19231 | |
parent | d08739231430afd28825edc4c62bef8ad86b5760 (diff) |
engine: Reset has_started when loading URI and clean discover error checking
-rw-r--r-- | src/gst_engine.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/gst_engine.c b/src/gst_engine.c index 56d3a7f..cded18b 100644 --- a/src/gst_engine.c +++ b/src/gst_engine.c @@ -88,12 +88,18 @@ discover (GstEngine * engine, gchar * uri) GList *list; dc = gst_discoverer_new (timeout * GST_SECOND, &error); - if (G_UNLIKELY (dc == NULL)) { - g_print ("Error in GST Discoverer initializing: %s\n", error->message); + if (G_UNLIKELY (error)) { + g_error ("Error in GST Discoverer initializing: %s\n", error->message); + g_error_free (error); return FALSE; } info = gst_discoverer_discover_uri (dc, uri, &error); + if (G_UNLIKELY (error)) { + g_error ("Error discovering URI: %s\n", error->message); + g_error_free (error); + return FALSE; + } list = gst_discoverer_info_get_video_streams (info); engine->has_video = (g_list_length (list) > 0); gst_discoverer_stream_info_list_free (list); @@ -113,7 +119,8 @@ discover (GstEngine * engine, gchar * uri) } gst_discoverer_info_unref (info); - g_error_free (error); + + return TRUE; } gboolean @@ -297,6 +304,10 @@ engine_load_uri (GstEngine * engine, gchar * uri) { engine->uri = uri; g_object_set (G_OBJECT (engine->player), "uri", uri, NULL); + + /* loading a new URI means we haven't started playing this URI yet */ + engine->has_started = FALSE; + g_print ("Loading: %s\n", uri); discover (engine, uri); |