From 70ff594bd1888971ac7492ba1aec0c886c3b2b91 Mon Sep 17 00:00:00 2001 From: Lori Anderson Date: Fri, 29 Nov 2013 14:40:53 -0700 Subject: Added duration-bytes and duration-nanos properties to support running in standalone mode from webkit. Also fix segfault when performing gst-inspect. --- src/gstdlnasrc.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/gstdlnasrc.c b/src/gstdlnasrc.c index 45ce478..53fe49b 100644 --- a/src/gstdlnasrc.c +++ b/src/gstdlnasrc.c @@ -49,7 +49,9 @@ enum PROP_IS_DLNA, PROP_IS_ENCRYPTED, PROP_DTCP_HOST, - PROP_DTCP_PORT + PROP_DTCP_PORT, + PROP_DURATION_BYTES, + PROP_DURATION_TIME }; #define DEFAULT_DTCP_BLOCKSIZE 524288 @@ -438,6 +440,16 @@ gst_dlna_src_class_init (GstDlnaSrcClass * klass) "Port number to use for dtcp/ip encrypted content", 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_klass, PROP_DURATION_TIME, + g_param_spec_uint64 ("duration-nanos", "duration of npt content in nanos", + "Duration of content in normal play time nanoseconds", 0, + G_MAXUINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_klass, PROP_DURATION_BYTES, + g_param_spec_uint64 ("duration-bytes", "duration of content in bytes", + "Total size in bytes of content duration", 0, + G_MAXUINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + gobject_klass->finalize = GST_DEBUG_FUNCPTR (gst_dlna_src_finalize); gstelement_klass->change_state = gst_dlna_src_change_state; } @@ -626,11 +638,21 @@ gst_dlna_src_get_property (GObject * object, guint prop_id, GValue * value, break; case PROP_DTCP_HOST: - g_value_set_string (value, dlna_src->server_info->dtcp_host); + if (dlna_src->server_info) + g_value_set_string (value, dlna_src->server_info->dtcp_host); break; case PROP_DTCP_PORT: - g_value_set_uint (value, dlna_src->server_info->dtcp_port); + if (dlna_src->server_info) + g_value_set_uint (value, dlna_src->server_info->dtcp_port); + break; + + case PROP_DURATION_TIME: + g_value_set_uint64 (value, dlna_src->npt_duration_nanos); + break; + + case PROP_DURATION_BYTES: + g_value_set_uint64 (value, dlna_src->byte_total); break; default: -- cgit v1.2.3 From b97a6b3a592524b7a932adeeb901158cb2fbab5f Mon Sep 17 00:00:00 2001 From: Lori Anderson Date: Fri, 29 Nov 2013 17:31:04 -0700 Subject: Added "is-seekable" property to support seeking from webkit. --- src/gstdlnasrc.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/gstdlnasrc.c b/src/gstdlnasrc.c index 53fe49b..a2b0006 100644 --- a/src/gstdlnasrc.c +++ b/src/gstdlnasrc.c @@ -51,7 +51,8 @@ enum PROP_DTCP_HOST, PROP_DTCP_PORT, PROP_DURATION_BYTES, - PROP_DURATION_TIME + PROP_DURATION_TIME, + PROP_IS_SEEKABLE }; #define DEFAULT_DTCP_BLOCKSIZE 524288 @@ -450,6 +451,11 @@ gst_dlna_src_class_init (GstDlnaSrcClass * klass) "Total size in bytes of content duration", 0, G_MAXUINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_klass, PROP_IS_SEEKABLE, + g_param_spec_boolean ("is-seekable", "Seeking supported by server", + "Seeking, either time or byte based, is supported by server", + FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + gobject_klass->finalize = GST_DEBUG_FUNCPTR (gst_dlna_src_finalize); gstelement_klass->change_state = gst_dlna_src_change_state; } @@ -655,6 +661,11 @@ gst_dlna_src_get_property (GObject * object, guint prop_id, GValue * value, g_value_set_uint64 (value, dlna_src->byte_total); break; + case PROP_IS_SEEKABLE: + g_value_set_boolean (value, (dlna_src->byte_seek_supported + || dlna_src->time_seek_supported) ? TRUE : FALSE); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } -- cgit v1.2.3 From 5340a08e0334a47b42306ac46bdfe9918f880282 Mon Sep 17 00:00:00 2001 From: Lori Anderson Date: Mon, 2 Dec 2013 08:09:34 -0700 Subject: Got rid of unnecessary ? TRUE : FALSE. Fixed up a log message to be consistent within the method. --- src/gstdlnasrc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gstdlnasrc.c b/src/gstdlnasrc.c index a2b0006..6dd6257 100644 --- a/src/gstdlnasrc.c +++ b/src/gstdlnasrc.c @@ -552,8 +552,6 @@ gst_dlna_src_set_property (GObject * object, guint prop_id, { GstDlnaSrc *dlna_src = GST_DLNA_SRC (object); - GST_DEBUG_OBJECT (dlna_src, "Setting property: %d", prop_id); - switch (prop_id) { case PROP_URI: @@ -563,6 +561,7 @@ gst_dlna_src_set_property (GObject * object, guint prop_id, ("%s() - unable to set URI: %s", __FUNCTION__, g_value_get_string (value)), NULL); } + GST_INFO_OBJECT (dlna_src, "Set URI: %s", dlna_src->uri); break; } case PROP_DTCP_BLOCKSIZE: @@ -663,7 +662,7 @@ gst_dlna_src_get_property (GObject * object, guint prop_id, GValue * value, case PROP_IS_SEEKABLE: g_value_set_boolean (value, (dlna_src->byte_seek_supported - || dlna_src->time_seek_supported) ? TRUE : FALSE); + || dlna_src->time_seek_supported)); break; default: -- cgit v1.2.3