gst/playback/gstplaybasebin.c: Improve checking if we are dealing with a stream....
authorWim Taymans <wim.taymans@gmail.com>
Tue, 4 Jul 2006 14:06:03 +0000 (14:06 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Tue, 4 Jul 2006 14:06:03 +0000 (14:06 +0000)
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (is_stream), (gen_source_element):
Improve checking if we are dealing with a stream. Added some
more uris that need buffering.

ChangeLog
common
gst/playback/gstplaybasebin.c

index 24c880c..75dc701 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-07-04  Wim Taymans  <wim@fluendo.com>
+
+       * gst/playback/gstplaybasebin.c: (is_stream), (gen_source_element):
+       Improve checking if we are dealing with a stream. Added some
+       more uris that need buffering.
+
 2006-07-03  Edward Hervey  <edward@fluendo.com>
 
        * ext/vorbis/vorbisdec.c: (vorbis_do_clip):
diff --git a/common b/common
index a98b370..dd173e2 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit a98b370bd49bc3f3225bbd9013cda5a53789f53d
+Subproject commit dd173e2720ac21e4a47c97705d7ff32271a0ee66
index bb5b185..003e10d 100644 (file)
@@ -1244,6 +1244,22 @@ setup_subtitle (GstPlayBaseBin * play_base_bin, gchar * sub_uri)
   return subbin;
 }
 
+/* lame - FIXME, maybe we can use seek_types/mask here? */
+static gboolean
+is_stream (GstPlayBaseBin * play_base_bin, gchar * uri)
+{
+  static const gchar *uris[] = { "http://", "mms://", "mmsh://",
+    "mmsu://", "mmst://", "rtp://", "rtsp://", NULL
+  };
+  gint i;
+
+  for (i = 0; uris[i]; i++) {
+    if (g_str_has_prefix (uri, uris[i]))
+      return TRUE;
+  }
+  return FALSE;
+}
+
 /*
  * Generate a source element that does caching for network streams.
  */
@@ -1276,11 +1292,7 @@ gen_source_element (GstPlayBaseBin * play_base_bin, GstElement ** subbin)
   if (!source)
     return NULL;
 
-  /* lame - FIXME, maybe we can use seek_types/mask here? */
-  play_base_bin->is_stream = !strncmp (play_base_bin->uri, "http://", 7) ||
-      !strncmp (play_base_bin->uri, "mms://", 6) ||
-      !strncmp (play_base_bin->uri, "rtp://", 6) ||
-      !strncmp (play_base_bin->uri, "rtsp://", 7);
+  play_base_bin->is_stream = is_stream (play_base_bin, play_base_bin->uri);
 
   /* make HTTP sources send extra headers so we get icecast
    * metadata in case the stream is an icecast stream */