PROP_PROXY_ID,
PROP_PROXY_PW,
PROP_COOKIES,
+ PROP_IRADIO_MODE,
PROP_TIMEOUT,
PROP_EXTRA_HEADERS
};
#define DEFAULT_USER_AGENT "GStreamer souphttpsrc "
+#define DEFAULT_IRADIO_MODE TRUE
static void gst_soup_http_src_uri_handler_init (gpointer g_iface,
gpointer iface_data);
g_param_spec_boxed ("extra-headers", "Extra Headers",
"Extra headers to append to the HTTP request",
GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_IRADIO_MODE,
+ g_param_spec_boolean ("iradio-mode", "iradio-mode",
+ "Enable internet radio mode (ask server to send shoutcast/icecast "
+ "metadata interleaved with the actual stream data)",
+ DEFAULT_IRADIO_MODE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
gst_element_class_add_pad_template (gstelement_class,
gst_static_pad_template_get (&srctemplate));
src->proxy_id = NULL;
src->proxy_pw = NULL;
src->cookies = NULL;
+ src->iradio_mode = DEFAULT_IRADIO_MODE;
src->loop = NULL;
src->context = NULL;
src->session = NULL;
g_free (src->user_agent);
src->user_agent = g_value_dup_string (value);
break;
+ case PROP_IRADIO_MODE:
+ src->iradio_mode = g_value_get_boolean (value);
+ break;
case PROP_AUTOMATIC_REDIRECT:
src->automatic_redirect = g_value_get_boolean (value);
break;
case PROP_IS_LIVE:
g_value_set_boolean (value, gst_base_src_is_live (GST_BASE_SRC (src)));
break;
+ case PROP_IRADIO_MODE:
+ g_value_set_boolean (value, src->iradio_mode);
+ break;
case PROP_USER_ID:
g_value_set_string (value, src->user_id);
break;
src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE;
soup_message_headers_append (src->msg->request_headers, "Connection",
"close");
- soup_message_headers_append (src->msg->request_headers, "icy-metadata", "1");
-
+ if (src->iradio_mode) {
+ soup_message_headers_append (src->msg->request_headers, "icy-metadata",
+ "1");
+ }
if (src->cookies) {
gchar **cookie;