souphttpsrc: Only assume seekability if the server provides Content-Length

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.
This commit is contained in:
Sebastian Dröge 2009-07-16 19:35:44 +02:00
parent 07c454d61e
commit 226a125056

View file

@ -318,7 +318,7 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src)
src->interrupted = FALSE; src->interrupted = FALSE;
src->retry = FALSE; src->retry = FALSE;
src->have_size = FALSE; src->have_size = FALSE;
src->seekable = TRUE; src->seekable = FALSE;
src->read_position = 0; src->read_position = 0;
src->request_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)) { if (!src->have_size || (src->content_size != newsize)) {
src->content_size = newsize; src->content_size = newsize;
src->have_size = TRUE; src->have_size = TRUE;
src->seekable = TRUE;
GST_DEBUG_OBJECT (src, "size = %" G_GUINT64_FORMAT, src->content_size); GST_DEBUG_OBJECT (src, "size = %" G_GUINT64_FORMAT, src->content_size);
basesrc = GST_BASE_SRC_CAST (src); basesrc = GST_BASE_SRC_CAST (src);