diff options
Diffstat (limited to 'ext/libmms')
-rw-r--r-- | ext/libmms/gstmms.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/ext/libmms/gstmms.c b/ext/libmms/gstmms.c index f04e410f..dc004e81 100644 --- a/ext/libmms/gstmms.c +++ b/ext/libmms/gstmms.c @@ -460,8 +460,18 @@ gst_mms_start (GstBaseSrc * bsrc) GST_DEBUG_OBJECT (mms, "Connect successful"); return TRUE; } else { - GST_ELEMENT_ERROR (mms, RESOURCE, OPEN_READ, - ("Could not connect to this stream"), (NULL)); + gchar *url, *location; + + GST_ERROR_OBJECT (mms, + "Could not connect to this stream, redirecting to rtsp"); + location = gst_uri_get_location (mms->uri_name); + url = g_strdup_printf ("rtsp://%s", location); + g_free (location); + + gst_element_post_message (GST_ELEMENT_CAST (mms), + gst_message_new_element (GST_OBJECT_CAST (mms), + gst_structure_new ("redirect", "new-location", G_TYPE_STRING, url, + NULL))); return FALSE; } |