soup: Handle icy and icyx URI schemes

As handled by QuickTime (for icy), and Orban/Coding Technologies
AAC/aacPlus Player (for icyx). See also:
https://bugzilla.gnome.org/show_bug.cgi?id=394207
https://bugzilla.gnome.org/show_bug.cgi?id=403285

https://bugzilla.gnome.org/show_bug.cgi?id=673899
This commit is contained in:
Bastien Nocera 2012-04-11 12:42:17 +01:00 committed by Sebastian Dröge
parent 8719375be7
commit 933986fccc

View file

@ -1362,10 +1362,25 @@ static gboolean
gst_soup_http_src_set_location (GstSoupHTTPSrc * src, const gchar * uri,
GError ** error)
{
const char *alt_schemes[] = { "icy://", "icyx://" };
guint i;
if (src->location) {
g_free (src->location);
src->location = NULL;
}
if (uri == NULL)
return FALSE;
for (i = 0; i < G_N_ELEMENTS (alt_schemes); i++) {
if (g_str_has_prefix (uri, alt_schemes[i])) {
src->location =
g_strdup_printf ("http://%s", uri + strlen (alt_schemes[i]));
return TRUE;
}
}
src->location = g_strdup (uri);
return TRUE;
@ -1399,7 +1414,7 @@ gst_soup_http_src_uri_get_type (GType type)
static const gchar *const *
gst_soup_http_src_uri_get_protocols (GType type)
{
static const gchar *protocols[] = { "http", "https", NULL };
static const gchar *protocols[] = { "http", "https", "icy", "icyx", NULL };
return protocols;
}