plugins/elements/: Special case the "file://" URI as as this is used by some applicat...
authorSebastian Dröge <slomo@circular-chaos.org>
Fri, 27 Apr 2007 07:27:36 +0000 (07:27 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Fri, 27 Apr 2007 07:27:36 +0000 (07:27 +0000)
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri):
* plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
Special case the "file://" URI as as this is used by some
applications to test with gst_element_make_from_uri if there's
an element that supports the URI protocol.
Also move the g_path_is_absolute() check for the location part
of the URI to also check this for "file://localhost/bla" URIs.

ChangeLog
plugins/elements/gstfilesink.c
plugins/elements/gstfilesrc.c

index 0412667..27d6dd7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2007-04-27  Sebastian Dröge  <slomo@circular-chaos.org>
+
+       * plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri):
+       * plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
+       Special case the "file://" URI as as this is used by some
+       applications to test with gst_element_make_from_uri if there's
+       an element that supports the URI protocol.
+       Also move the g_path_is_absolute() check for the location part
+       of the URI to also check this for "file://localhost/bla" URIs.
+
 2007-04-26  Tim-Philipp Müller  <tim at centricular dot net>
 
        * docs/gst/gstreamer-sections.txt:
index 09c3be6..47650ac 100644 (file)
@@ -554,14 +554,20 @@ gst_file_sink_uri_set_uri (GstURIHandler * handler, const gchar * uri)
      * "location" with uri + 16 because it provides unescaping */
     location = gst_uri_get_location (tmp);
     g_free (tmp);
+  } else if (strcmp (uri, "file://") == 0) {
+    /* Special case for "file://" as this is used by some applications
+     *  to test with gst_element_make_from_uri if there's an element
+     *  that supports the URI protocol. */
+    return TRUE;
   } else {
     location = gst_uri_get_location (uri);
-    if (!location)
-      return FALSE;
-    if (!g_path_is_absolute (location)) {
-      g_free (location);
-      return FALSE;
-    }
+  }
+
+  if (!location)
+    return FALSE;
+  if (!g_path_is_absolute (location)) {
+    g_free (location);
+    return FALSE;
   }
 
   ret = gst_file_sink_set_location (sink, location);
index 2300bc1..b386462 100644 (file)
@@ -1074,14 +1074,20 @@ gst_file_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
      * "location" with uri + 16 because it provides unescaping */
     location = gst_uri_get_location (tmp);
     g_free (tmp);
+  } else if (strcmp (uri, "file://") == 0) {
+    /* Special case for "file://" as this is used by some applications
+     *  to test with gst_element_make_from_uri if there's an element
+     *  that supports the URI protocol. */
+    return TRUE;
   } else {
     location = gst_uri_get_location (uri);
-    if (!location)
-      return FALSE;
-    if (!g_path_is_absolute (location)) {
-      g_free (location);
-      return FALSE;
-    }
+  }
+
+  if (!location)
+    return FALSE;
+  if (!g_path_is_absolute (location)) {
+    g_free (location);
+    return FALSE;
   }
 
   ret = gst_file_src_set_location (src, location);