summaryrefslogtreecommitdiffstats
path: root/ext/soup
diff options
context:
space:
mode:
authorSjoerd Simons <sjoerd@luon.net>2008-10-27 09:00:29 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-10-27 09:00:29 +0000
commit4158cf510a44b78fae32298d6a8fd408ade3ff1f (patch)
treed4d266ea9336395977cf12d1687086ea9dfd4917 /ext/soup
parenta6f4df463d14d2880c2246ca879dbab4b043560f (diff)
ext/soup/gstsouphttpsrc.c: Add support for souphttpsrc to act as a live source. This makes it possible to get timesta...
Original commit message from CVS: Patch by: Sjoerd Simons <sjoerd at luon dot net> * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_class_init), (gst_soup_http_src_set_property), (gst_soup_http_src_get_property): Add support for souphttpsrc to act as a live source. This makes it possible to get timestamped buffers in combination with the "do-timestamp" property. Fixes bug #556019.
Diffstat (limited to 'ext/soup')
-rw-r--r--ext/soup/gstsouphttpsrc.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index 8ecde0d6..cd993fe0 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -117,6 +117,7 @@ enum
{
PROP_0,
PROP_LOCATION,
+ PROP_IS_LIVE,
PROP_USER_AGENT,
PROP_AUTOMATIC_REDIRECT,
PROP_PROXY,
@@ -263,6 +264,10 @@ gst_soup_http_src_class_init (GstSoupHTTPSrcClass * klass)
g_object_class_install_property (gobject_class,
PROP_COOKIES, g_param_spec_boxed ("cookies", "Cookies",
"HTTP request cookies", G_TYPE_STRV, G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class,
+ PROP_IS_LIVE,
+ g_param_spec_boolean ("is-live", "is-live",
+ "Act like a live source", FALSE, G_PARAM_READWRITE));
/* icecast stuff */
g_object_class_install_property (gobject_class,
@@ -427,6 +432,9 @@ gst_soup_http_src_set_property (GObject * object, guint prop_id,
g_strfreev (src->cookies);
src->cookies = g_strdupv (g_value_get_boxed (value));
break;
+ case PROP_IS_LIVE:
+ gst_base_src_set_live (GST_BASE_SRC (src), g_value_get_boolean (value));
+ break;
}
done:
return;
@@ -461,6 +469,9 @@ gst_soup_http_src_get_property (GObject * object, guint prop_id,
case PROP_COOKIES:
g_value_set_boxed (value, g_strdupv (src->cookies));
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;
@@ -816,8 +827,7 @@ gst_soup_http_src_got_chunk_cb (SoupMessage * msg, SoupBuffer * chunk,
GST_BUFFER_OFFSET (*src->outbuf) = basesrc->segment.last_stop;
gst_buffer_set_caps (*src->outbuf,
- (src->
- icy_caps) ? src->icy_caps :
+ (src->icy_caps) ? src->icy_caps :
GST_PAD_CAPS (GST_BASE_SRC_PAD (basesrc)));
new_position = src->read_position + chunk->length;