diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c index 35fa2de05a..ad8722336c 100644 --- a/ext/soup/gstsouphttpsrc.c +++ b/ext/soup/gstsouphttpsrc.c @@ -1034,6 +1034,7 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) GHashTable *params = NULL; GstEvent *http_headers_event; GstStructure *http_headers, *headers; + const gchar *accept_ranges; GST_INFO_OBJECT (src, "got headers"); @@ -1098,6 +1099,16 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) } } + /* If the server reports Accept-Ranges: none we don't have to try + * doing range requests at all + */ + if ((accept_ranges = + soup_message_headers_get_one (msg->response_headers, + "Accept-Ranges"))) { + if (g_ascii_strcasecmp (accept_ranges, "none") == 0) + src->seekable = FALSE; + } + /* Icecast stuff */ tag_list = gst_tag_list_new_empty ();