souphttpsrc: Only assume seekability if the server provides Content-Length
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 16 Jul 2009 17:35:44 +0000 (19:35 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 16 Jul 2009 17:35:44 +0000 (19:35 +0200)
Previously seekability way always assumed until the first seek actually
failed. Now we assume that all servers are not seekable unless they provide
a Content-Length header. If a seek fails after that we continue to
assume no seekability. Fixes bug #585576.

ext/soup/gstsouphttpsrc.c

index 1a94576..c50fd3e 100644 (file)
@@ -318,7 +318,7 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src)
   src->interrupted = FALSE;
   src->retry = FALSE;
   src->have_size = FALSE;
-  src->seekable = TRUE;
+  src->seekable = FALSE;
   src->read_position = 0;
   src->request_position = 0;
 
@@ -751,6 +751,7 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
     if (!src->have_size || (src->content_size != newsize)) {
       src->content_size = newsize;
       src->have_size = TRUE;
+      src->seekable = TRUE;
       GST_DEBUG_OBJECT (src, "size = %" G_GUINT64_FORMAT, src->content_size);
 
       basesrc = GST_BASE_SRC_CAST (src);