aboutsummaryrefslogtreecommitdiff
path: root/gst-libs/gst/uridownloader/gsturidownloader.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/uridownloader/gsturidownloader.c')
-rw-r--r--gst-libs/gst/uridownloader/gsturidownloader.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/gst-libs/gst/uridownloader/gsturidownloader.c b/gst-libs/gst/uridownloader/gsturidownloader.c
index 99d88e88..6f2c6b03 100644
--- a/gst-libs/gst/uridownloader/gsturidownloader.c
+++ b/gst-libs/gst/uridownloader/gsturidownloader.c
@@ -195,6 +195,7 @@ gst_uri_downloader_bus_handler (GstBus * bus,
if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR) {
GError *err = NULL;
gchar *dbg_info = NULL;
+ gchar *new_error = NULL;
gst_message_parse_error (message, &err, &dbg_info);
GST_WARNING_OBJECT (downloader,
@@ -202,6 +203,13 @@ gst_uri_downloader_bus_handler (GstBus * bus,
err->message, GST_OBJECT_NAME (message->src));
GST_DEBUG ("Debugging info: %s\n", (dbg_info) ? dbg_info : "none");
+ if (dbg_info)
+ new_error = g_strdup_printf ("%s: %s\n", err->message, dbg_info);
+ if (new_error) {
+ g_free (err->message);
+ err->message = new_error;
+ }
+
if (!downloader->priv->err)
downloader->priv->err = err;
else
@@ -545,10 +553,22 @@ quit:
/* set the element state to NULL */
GST_OBJECT_UNLOCK (downloader);
- if (download == NULL)
+ if (download == NULL) {
gst_element_set_state (urisrc, GST_STATE_NULL);
- else
+ } else {
+ GstQuery *query;
+
+ /* Download successfull, let's query the URI */
+ query = gst_query_new_uri ();
+ if (gst_element_query (urisrc, query)) {
+ gst_query_parse_uri (query, &download->uri);
+ gst_query_parse_uri_redirection (query, &download->redirect_uri);
+ gst_query_parse_uri_redirection_permanent (query,
+ &download->redirect_permanent);
+ }
+ gst_query_unref (query);
gst_element_set_state (urisrc, GST_STATE_READY);
+ }
GST_OBJECT_LOCK (downloader);
gst_element_set_bus (urisrc, NULL);