summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2017-11-08 16:34:01 +0100
committerEdward Hervey <bilboed@bilboed.com>2017-11-08 16:34:01 +0100
commit770bb07f3059a529a54a3fa3521da641afe25c5e (patch)
treedc36ac1cb149e751f321ff8dc1c160870b844934 /ext
parent5dd39d894600654a917e84fba0c9b3330d3f9085 (diff)
souphttpsrc: Fix seeking back to 0
This is a regression introduced by "03db374 - souphttpsrc: retry request on early termination from the server" The problem was that when seeking back to 0, we would not end up calling add_range_header() which in addition to adding range headers *ALSO* sets the read_position to the requested one. This would result in a wide variety of later failures, like reading again and again instead of stopping properly.
Diffstat (limited to 'ext')
-rw-r--r--ext/soup/gstsouphttpsrc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index 38e7b878c..ff64d71c9 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -1582,6 +1582,12 @@ gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method)
src->stop_position);
}
+ /* add_range_header() has the side effect of setting read_position to
+ * the requested position. This *needs* to be set regardless of having
+ * a message or not. Failure to do so would result in calculation being
+ * done with stale/wrong read position */
+ src->read_position = src->request_position;
+
if (!src->msg) {
if (!gst_soup_http_src_build_message (src, method)) {
return GST_FLOW_ERROR;