From 382b710277011314dd655b70c3b3a349f50321a5 Mon Sep 17 00:00:00 2001 From: Josep Torre Valles Date: Wed, 8 Aug 2007 15:05:22 +0000 Subject: [PATCH] Add connection-speed property. Fixes #464690. Original commit message from CVS: Patch by: Josep Torre Valles * docs/plugins/gst-plugins-base-plugins.args: * gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init), (gst_uri_decode_bin_init), (gst_uri_decode_bin_set_property), (gst_uri_decode_bin_get_property), (gen_source_element): Add connection-speed property. Fixes #464690. --- ChangeLog | 10 ++++++++ docs/plugins/gst-plugins-base-plugins.args | 10 ++++++++ gst/playback/gsturidecodebin.c | 27 +++++++++++++++++++++- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index aa4b61b823..bc92d92991 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-08-08 Wim Taymans + + Patch by: Josep Torre Valles + + * docs/plugins/gst-plugins-base-plugins.args: + * gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init), + (gst_uri_decode_bin_init), (gst_uri_decode_bin_set_property), + (gst_uri_decode_bin_get_property), (gen_source_element): + Add connection-speed property. Fixes #464690. + 2007-08-07 Wim Taymans Patch by: Damien Lespiau diff --git a/docs/plugins/gst-plugins-base-plugins.args b/docs/plugins/gst-plugins-base-plugins.args index 6d0da3a8a2..be8a8bd005 100644 --- a/docs/plugins/gst-plugins-base-plugins.args +++ b/docs/plugins/gst-plugins-base-plugins.args @@ -1708,6 +1708,16 @@ NULL + +GstURIDecodeBin::connection-speed +guint + +rw +Connection Speed +Network connection speed in kbps (0 = unknown). +0 + + GstQueue2::current-level-buffers guint diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c index 4492237821..f9dc018760 100644 --- a/gst/playback/gsturidecodebin.c +++ b/gst/playback/gsturidecodebin.c @@ -52,6 +52,7 @@ struct _GstURIDecodeBin GstBin parent_instance; gchar *uri; + guint connection_speed; gboolean is_stream; GstElement *source; @@ -85,11 +86,13 @@ GST_ELEMENT_DETAILS ("URI Decoder", "Autoplug and decode an URI to raw media", "Wim Taymans "); -#define DEFAULT_PROP_URI NULL +#define DEFAULT_PROP_URI NULL +#define DEFAULT_CONNECTION_SPEED 0 enum { PROP_0, PROP_URI, + PROP_CONNECTION_SPEED, PROP_LAST }; @@ -135,6 +138,11 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass) g_param_spec_string ("uri", "URI", "URI to decode", DEFAULT_PROP_URI, G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, PROP_CONNECTION_SPEED, + g_param_spec_uint ("connection-speed", "Connection Speed", + "Network connection speed in kbps (0 = unknown)", + 0, G_MAXUINT, DEFAULT_CONNECTION_SPEED, G_PARAM_READWRITE)); + gstelement_class->query = GST_DEBUG_FUNCPTR (gst_uri_decode_bin_query); gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_uri_decode_bin_change_state); @@ -144,6 +152,7 @@ static void gst_uri_decode_bin_init (GstURIDecodeBin * dec, GstURIDecodeBinClass * klass) { dec->uri = g_strdup (DEFAULT_PROP_URI); + dec->uri = DEFAULT_CONNECTION_SPEED; } static void @@ -168,6 +177,9 @@ gst_uri_decode_bin_set_property (GObject * object, guint prop_id, g_free (dec->uri); dec->uri = g_value_dup_string (value); break; + case PROP_CONNECTION_SPEED: + dec->connection_speed = g_value_get_uint (value) * 1000; + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -184,6 +196,9 @@ gst_uri_decode_bin_get_property (GObject * object, guint prop_id, case PROP_URI: g_value_set_string (value, dec->uri); break; + case PROP_CONNECTION_SPEED: + g_value_set_uint (value, dec->connection_speed / 1000); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -369,6 +384,16 @@ gen_source_element (GstURIDecodeBin * decoder) "iradio-mode")) { g_object_set (source, "iradio-mode", TRUE, NULL); } + + if (g_object_class_find_property (G_OBJECT_GET_CLASS (source), + "connection-speed")) { + GST_DEBUG_OBJECT (decoder, + "setting connection-speed=%d to source element", + decoder->connection_speed / 1000); + g_object_set (source, "connection-speed", + decoder->connection_speed / 1000, NULL); + } + return source; /* ERRORS */