mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 09:10:36 +00:00
souphttpsrc: reset read_position when reading fails
souphttpsrc maintains two variables for the position: * 'request_position' is where we want to be * 'read_position' is where we are During Normal operations both are updated in sync when data arrives. A seek changes 'request_position' but not 'read_position'. When the two positions get out of sync, then a new request is send and the 'Range' header is adjusted to the current 'request_position'. Without this patch, if reading fails, then the source is destroyed. This triggers a new request, but the range remains unchanged. As a result, the old range is used and old data will be read. Changing the 'read_position' to -1 makes it explicitly different from 'request_position' and as a result the 'Range' header is updated correctly. https://bugzilla.gnome.org/show_bug.cgi?id=773509
This commit is contained in:
parent
f6b2fc10ff
commit
8666b7d871
1 changed files with 2 additions and 0 deletions
|
@ -1747,6 +1747,8 @@ done:
|
|||
gst_event_unref (http_headers_event);
|
||||
|
||||
g_mutex_lock (&src->mutex);
|
||||
/* Make sure the Range header is updated with the current position */
|
||||
src->read_position = -1;
|
||||
gst_soup_http_src_destroy_input_stream (src);
|
||||
g_mutex_unlock (&src->mutex);
|
||||
if (ret == GST_FLOW_CUSTOM_ERROR)
|
||||
|
|
Loading…
Reference in a new issue