diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2008-03-22 19:26:04 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2008-03-22 19:26:04 +0000 |
commit | cc2d5bd32b8db721e15aa4fa62cdc4852d233351 (patch) | |
tree | 1910d09159e29061a8ec3b53eb9ba861731c7f48 /ext | |
parent | 89c2fe05be4f6f6ca0a03020ce3179c4fff178db (diff) | |
download | gst-plugins-bad-cc2d5bd32b8db721e15aa4fa62cdc4852d233351.tar.gz gst-plugins-bad-cc2d5bd32b8db721e15aa4fa62cdc4852d233351.tar.bz2 gst-plugins-bad-cc2d5bd32b8db721e15aa4fa62cdc4852d233351.zip |
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.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/soup/gstsouphttpsrc.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c index 6c43aab1..883cbbc2 100644 --- a/ext/soup/gstsouphttpsrc.c +++ b/ext/soup/gstsouphttpsrc.c @@ -20,7 +20,7 @@ * <refsect2> * <para> * This plugin reads data from a remote location specified by a URI. - * Supported protocols are 'http', 'https', 'dav', or 'davs'. + * Supported protocols are 'http', 'https'. * </para> * <para> * An HTTP proxy must be specified by its URL. @@ -577,9 +577,13 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) gint icy_metaint = atoi (value); GST_DEBUG_OBJECT (src, "icy-metaint: %s (parsed: %d)", value, icy_metaint); - if (icy_metaint > 0) + if (icy_metaint > 0) { + if (src->icy_caps) + gst_caps_unref (src->icy_caps); + src->icy_caps = gst_caps_new_simple ("application/x-icy", "metadata-interval", G_TYPE_INT, icy_metaint, NULL); + } } if ((value = @@ -729,6 +733,7 @@ gst_soup_http_src_chunk_allocator (SoupMessage * msg, gsize max_len, GST_DEBUG_OBJECT (src, "alloc %" G_GSIZE_FORMAT " bytes <= %" G_GSIZE_FORMAT, length, max_len); + rc = gst_pad_alloc_buffer (GST_BASE_SRC_PAD (basesrc), GST_BUFFER_OFFSET_NONE, length, src->icy_caps ? src->icy_caps : @@ -772,7 +777,10 @@ gst_soup_http_src_got_chunk_cb (SoupMessage * msg, SoupBuffer * chunk, gst_buffer_ref (*src->outbuf); GST_BUFFER_SIZE (*src->outbuf) = chunk->length; GST_BUFFER_OFFSET (*src->outbuf) = basesrc->segment.last_stop; - gst_buffer_set_caps (*src->outbuf, GST_PAD_CAPS (GST_BASE_SRC_PAD (basesrc))); + + gst_buffer_set_caps (*src->outbuf, + (src->icy_caps) ? src-> + icy_caps : GST_PAD_CAPS (GST_BASE_SRC_PAD (basesrc))); new_position = src->read_position + chunk->length; if (G_LIKELY (src->request_position == src->read_position)) @@ -1130,7 +1138,7 @@ gst_soup_http_src_uri_get_type (void) static gchar ** gst_soup_http_src_uri_get_protocols (void) { - static gchar *protocols[] = { "http", "https", "dav", "davs", NULL }; + static gchar *protocols[] = { "http", "https", NULL }; return protocols; } |