gstreamer/gst-libs/gst
Edward Hervey 50f92fab89 adaptivedemux: Workaround for live seek ranges when advancing
This is a workaround for a regression introduced by
f4190a49c0
 ( adaptivedemux: Check live seeking range more often )

The goal of the previous commit was to be able to cope with non-1.0
rates on live streams which have a "seeking window" (i.e. the server
keeps around quite a bit of the live stream so you can seek back into
it).

Without that commit, two different kind of issues would happen:
* When doing reverse playback, you would never check whether you
  are outside of the seekable region. And would then continuously
  try to download fragments that are no longer present.
* When doing fast forward, you would end up requesting fragments
  which are not present yet.

In order to determine whether one was *really* outside of the seekable
window, we check whether the current stream position is still
within the seekable region.

The *problem* though with that commit is that it assumes that subclasses
will return continuously updated seeking ranges (i.e. dependent on the
current time), which is *NOT* the case.

For example:
* dashdemux does use the current UTC to determine the seekable region
* hlsdemux uses the values from the last updated manifest

Therefore if one downloads fragments faster than realtime, for HLS
we would end up at the end of the last manifest seekable range, and
the previous commit would consider the stream as being ended... which
is not the case.

In the long run, we need to figure out a way to cope with non-1.0
rates on live streams for all types of stream (including HLS).

https://bugzilla.gnome.org/show_bug.cgi?id=783075
2017-07-13 14:44:11 +02:00
..
adaptivedemux adaptivedemux: Workaround for live seek ranges when advancing 2017-07-13 14:44:11 +02:00
allocators allocators: Add GstPhysMemoryAllocator abstraction 2017-02-27 10:42:05 +02:00
audio nonstreamaudio: Avoid using wrong variable 2017-05-26 17:44:40 +02:00
base aggregator: Invalidate pad's tail position ... 2017-07-06 16:22:01 +02:00
basecamerabinsrc Add support for Meson as alternative/parallel build system 2016-08-20 11:35:54 +01:00
codecparsers codecparsers: h264: flesh out documentation for GST_H264_PARSER_NO_NAL_END 2017-07-04 15:28:36 +01:00
gl glfilter: Remove hard-coded pad templates 2017-07-12 15:50:24 +10:00
insertbin meson: Build GIR files 2017-01-23 12:48:53 -03:00
interfaces interfaces: photography: clean up header indentation 2016-11-21 10:52:39 +00:00
mpegts docs: Port all docstring to gtk-doc markdown 2017-04-12 12:57:57 -03:00
opencv opencv: add opencv image format documentation 2016-11-29 21:21:49 -05:00
player gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent 2017-05-17 10:40:23 +03:00
uridownloader gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent 2017-05-17 10:40:23 +03:00
video videoaggregator: fix gaps at end of streams. 2017-07-06 04:02:38 +02:00
wayland meson: wayland: wl_scanner is required: false 2016-11-17 17:42:30 -03:00
gettext.h Fix FSF address 2012-11-04 00:09:59 +00:00
glib-compat-private.h Update GLib dependency to 2.40.0 2015-10-02 22:24:19 +03:00
gst-i18n-plugin.h Fix FSF address 2012-11-04 00:09:59 +00:00
Makefile.am build: declare dependency from gl on allocators 2017-03-21 12:05:14 +11:00
meson.build opencv: Enable in meson build 2016-11-26 17:55:23 +00:00