From: Ronald S. Bultje Date: Sun, 9 Jan 2005 00:43:09 +0000 (+0000) Subject: ext/dvdnav/dvdnavsrc.c: Add DVD-nav URI (dvdnav://) for Totem testing purposes. X-Git-Tag: 1.19.3~505^2~2592 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c1380eeeeca34c7aec4e33d35b2c90631705244b;p=platform%2Fupstream%2Fgstreamer.git ext/dvdnav/dvdnavsrc.c: Add DVD-nav URI (dvdnav://) for Totem testing purposes. Original commit message from CVS: * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_get_type), (dvdnavsrc_uri_get_type), (dvdnavsrc_uri_get_protocols), (dvdnavsrc_uri_get_uri), (dvdnavsrc_uri_set_uri), (dvdnavsrc_uri_handler_init): Add DVD-nav URI (dvdnav://) for Totem testing purposes. * gst/playback/gstplaybasebin.c: (gen_source_element): Add MMS to streaming URIs. --- diff --git a/ChangeLog b/ChangeLog index 86dd9e4..f5ca7a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2005-01-09 Ronald S. Bultje + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_get_type), + (dvdnavsrc_uri_get_type), (dvdnavsrc_uri_get_protocols), + (dvdnavsrc_uri_get_uri), (dvdnavsrc_uri_set_uri), + (dvdnavsrc_uri_handler_init): + Add DVD-nav URI (dvdnav://) for Totem testing purposes. + * gst/playback/gstplaybasebin.c: (gen_source_element): + Add MMS to streaming URIs. + +2005-01-09 Ronald S. Bultje + * sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event): * sys/xvimage/xvimagesink.c: (gst_xvimagesink_navigation_send_event): diff --git a/ext/dvdnav/dvdnavsrc.c b/ext/dvdnav/dvdnavsrc.c index 4667edc..4fc0338 100644 --- a/ext/dvdnav/dvdnavsrc.c +++ b/ext/dvdnav/dvdnavsrc.c @@ -252,6 +252,7 @@ static void dvdnavsrc_update_highlight (DVDNavSrc * src); static void dvdnavsrc_user_op (DVDNavSrc * src, int op); static GstElementStateReturn dvdnavsrc_change_state (GstElement * element); +static void dvdnavsrc_uri_handler_init (gpointer g_iface, gpointer iface_data); static GstElementClass *parent_class = NULL; static guint dvdnavsrc_signals[LAST_SIGNAL] = { 0 }; @@ -278,9 +279,16 @@ dvdnavsrc_get_type (void) 0, (GInstanceInitFunc) dvdnavsrc_init, }; + static const GInterfaceInfo urihandler_info = { + dvdnavsrc_uri_handler_init, + NULL, + NULL + }; dvdnavsrc_type = g_type_register_static (GST_TYPE_ELEMENT, "DVDNavSrc", &dvdnavsrc_info, 0); + g_type_add_interface_static (dvdnavsrc_type, + GST_TYPE_URI_HANDLER, &urihandler_info); sector_format = gst_format_register ("sector", "DVD sector"); title_format = gst_format_register ("title", "DVD title"); @@ -1981,6 +1989,53 @@ dvdnavsrc_query (GstPad * pad, GstQueryType type, return res; } +/* + * URI interface. + */ + +static guint +dvdnavsrc_uri_get_type (void) +{ + return GST_URI_SRC; +} + +static gchar ** +dvdnavsrc_uri_get_protocols (void) +{ + static gchar *protocols[] = { "dvdnav", NULL }; + + return protocols; +} + +static const gchar * +dvdnavsrc_uri_get_uri (GstURIHandler * handler) +{ + return "dvdnav://"; +} + +static gboolean +dvdnavsrc_uri_set_uri (GstURIHandler * handler, const gchar * uri) +{ + gboolean ret; + gchar *protocol = gst_uri_get_protocol (uri); + + ret = (protocol && !strcmp (protocol, "dvdnav")) ? TRUE : FALSE; + g_free (protocol); + + return ret; +} + +static void +dvdnavsrc_uri_handler_init (gpointer g_iface, gpointer iface_data) +{ + GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface; + + iface->get_type = dvdnavsrc_uri_get_type; + iface->get_protocols = dvdnavsrc_uri_get_protocols; + iface->get_uri = dvdnavsrc_uri_get_uri; + iface->set_uri = dvdnavsrc_uri_set_uri; +} + static gboolean plugin_init (GstPlugin * plugin) {