From: Sebastian Dröge Date: Tue, 31 Jul 2012 15:25:50 +0000 (+0200) Subject: basesrc: Add default handler for URI query in GstURIHandler subclasses X-Git-Tag: RELEASE-0.11.93~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=389ec66946ae0453e9d1de7f3a0a913c2fb21197;p=platform%2Fupstream%2Fgstreamer.git basesrc: Add default handler for URI query in GstURIHandler subclasses --- diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index ad74b71..d53eda3 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -1193,6 +1193,18 @@ gst_base_src_default_query (GstBaseSrc * src, GstQuery * query) res = FALSE; break; } + case GST_QUERY_URI:{ + if (GST_IS_URI_HANDLER (src)) { + gchar *uri = gst_uri_handler_get_uri (GST_URI_HANDLER (src)); + + gst_query_set_uri (query, uri); + g_free (uri); + res = TRUE; + } else { + res = FALSE; + } + break; + } default: res = FALSE; break; diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c index a0672d1..911223b 100644 --- a/plugins/elements/gstfilesrc.c +++ b/plugins/elements/gstfilesrc.c @@ -149,7 +149,6 @@ static gboolean gst_file_src_is_seekable (GstBaseSrc * src); static gboolean gst_file_src_get_size (GstBaseSrc * src, guint64 * size); static GstFlowReturn gst_file_src_fill (GstBaseSrc * src, guint64 offset, guint length, GstBuffer * buf); -static gboolean gst_file_src_query (GstBaseSrc * src, GstQuery * query); static void gst_file_src_uri_handler_init (gpointer g_iface, gpointer iface_data); @@ -195,7 +194,6 @@ gst_file_src_class_init (GstFileSrcClass * klass) gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_file_src_is_seekable); gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_file_src_get_size); gstbasesrc_class->fill = GST_DEBUG_FUNCPTR (gst_file_src_fill); - gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_file_src_query); if (sizeof (off_t) < 8) { GST_LOG ("No large file support, sizeof (off_t) = %" G_GSIZE_FORMAT "!", @@ -404,28 +402,6 @@ eos: } static gboolean -gst_file_src_query (GstBaseSrc * basesrc, GstQuery * query) -{ - gboolean ret = FALSE; - GstFileSrc *src = GST_FILE_SRC (basesrc); - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_URI: - gst_query_set_uri (query, src->uri); - ret = TRUE; - break; - default: - ret = FALSE; - break; - } - - if (!ret) - ret = GST_BASE_SRC_CLASS (parent_class)->query (basesrc, query); - - return ret; -} - -static gboolean gst_file_src_is_seekable (GstBaseSrc * basesrc) { GstFileSrc *src = GST_FILE_SRC (basesrc);