[Bug 753751] Dashdemux: returned seekable range for live streams is not usable
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Sep 22 07:09:21 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=753751
--- Comment #13 from A Ashley <bugzilla at ashley-family.net> ---
When I looked at this, I thought I traced it down to discarding the seek
request in the GST_EVENT_SEEK handler in gstadaptivedemux.c:
if (gst_adaptive_demux_is_live (demux)) {
gint64 range_start, range_stop;
if (!gst_adaptive_demux_get_live_seek_range (demux, &range_start,
&range_stop)) {
gst_event_unref (event);
return FALSE;
}
if (start < range_start || start >= range_stop) {
GST_WARNING_OBJECT (demux, "Seek to invalid position");
gst_event_unref (event);
return FALSE;
}
}
If an app issues a GST_QUERY_SEEKING and then a GST_EVENT_SEEK with the start
position set to the start value from the GST_QUERY_SEEKING call,
then the (start < range_start) condition triggers. This is because range_start
is calculated from a call to gst_adaptive_demux_get_live_seek_range() that
occurs after the call to gst_adaptive_demux_get_live_seek_range() call that
responded to the query. For DASH, gst_adaptive_demux_get_live_seek_range() is
calculated by sampling current time of day. It only takes one tick of the RTC
between GST_QUERY_SEEKING and GST_EVENT_SEEK to make start<range_start.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list