From cc2d5bd32b8db721e15aa4fa62cdc4852d233351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 22 Mar 2008 19:26:04 +0000 Subject: ext/soup/gstsouphttpsrc.c: Don't autoplug souphttpsrc for dav/davs. This is better handled by Original commit message from CVS: * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_got_headers_cb), (gst_soup_http_src_chunk_allocator), (gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_uri_get_protocols): Don't autoplug souphttpsrc for dav/davs. This is better handled by GIO and GnomeVFS as they provide authentication. Don't leak the icy caps if we already set them and get a new icy-metaint header. Try harder to set the icy caps on the output buffer to have correct caps for the first buffer already. * tests/check/elements/souphttpsrc.c: (got_buffer), (GST_START_TEST): Check that we get a buffer with application/x-icy caps if iradio-mode is enabled and we have an icecast URL. --- tests/check/elements/souphttpsrc.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'tests/check/elements') diff --git a/tests/check/elements/souphttpsrc.c b/tests/check/elements/souphttpsrc.c index 0fc9c6a6..db8c27a9 100644 --- a/tests/check/elements/souphttpsrc.c +++ b/tests/check/elements/souphttpsrc.c @@ -201,6 +201,23 @@ GST_START_TEST (test_cookies) GST_END_TEST; +static gboolean icy_caps = FALSE; + +static void +got_buffer (GstElement * fakesink, GstBuffer * buf, GstPad * pad, + gpointer user_data) +{ + GstStructure *s; + + /* Caps can be anything if we don't except icy caps */ + if (!icy_caps) + return; + + /* Otherwise they _must_ be "application/x-icy" */ + s = gst_caps_get_structure (GST_BUFFER_CAPS (buf), 0); + assert_equals_string (gst_structure_get_name (s), "application/x-icy"); +} + GST_START_TEST (test_icy_stream) { GstElement *pipe, *src, *sink; @@ -210,9 +227,12 @@ GST_START_TEST (test_icy_stream) src = gst_element_factory_make ("souphttpsrc", NULL); fail_unless (src != NULL); + g_object_set (src, "iradio-mode", TRUE, NULL); sink = gst_element_factory_make ("fakesink", NULL); fail_unless (sink != NULL); + g_object_set (sink, "signal-handoffs", TRUE, NULL); + g_signal_connect (sink, "handoff", G_CALLBACK (got_buffer), NULL); gst_bin_add (GST_BIN (pipe), src); gst_bin_add (GST_BIN (pipe), sink); @@ -224,6 +244,7 @@ GST_START_TEST (test_icy_stream) g_object_set (src, "location", "http://ogg2.smgradio.com/vr32.ogg", NULL); g_object_set (src, "num-buffers", 1, NULL); + icy_caps = FALSE; gst_element_set_state (pipe, GST_STATE_PLAYING); msg = gst_bus_poll (GST_ELEMENT_BUS (pipe), @@ -247,7 +268,7 @@ GST_START_TEST (test_icy_stream) /* EOS after the first buffer */ g_object_set (src, "num-buffers", 1, NULL); - + icy_caps = TRUE; gst_element_set_state (pipe, GST_STATE_PLAYING); msg = gst_bus_poll (GST_ELEMENT_BUS (pipe), GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1); @@ -268,6 +289,7 @@ GST_START_TEST (test_icy_stream) } done: + icy_caps = FALSE; gst_element_set_state (pipe, GST_STATE_NULL); gst_object_unref (pipe); -- cgit v1.2.1