Edward Hervey
257de579b3
hlsdemux2: Improve detection of playlist updates
...
In the case we are not updating an existing playlist, we only want to reset the
download error count if the URI we are downloading was not the previous one we
were trying to load
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6410 >
2024-03-20 10:49:02 +01:00
Jan Schmidt
8ec6ef8ca4
adaptivedemux: Don't parse URI unnecessarily
...
Short-circuit parsing and recreating the playlist URI if
no HLS directives are going to be applied to it.
Fixes problems playing some streams (YouTube) that have
unneeded escaped characters in the URI and then complain
when GStreamer removes the escaping
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4335 >
2023-04-04 19:21:31 +00:00
Edward Hervey
bead28ad5c
hlsdemux2: Don't set a referer when updating playlists
...
In the same way we don't for regular playlists in the base class.
If there is a referer specified by the app/user, the downloadhelper will set it
accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3972 >
2023-03-20 07:59:26 +00:00
Edward Hervey
0639f117cb
hlsdemux2: Remove enable-llhls property
...
This was only used for testing purposes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:24 +00:00
Edward Hervey
714628f1ec
hlsdemux2: Improve live playlist update intervals
...
The live playlists should be updated at a defined interval. The problem is that
this interval was used *after* the playlist was finally received and processed,
which resulted in a gradual shift happening in playlist updates.
Instead store and use the time at which playlists were requested to determine
when the next one should be downloaded.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Edward Hervey
6684aee14c
hlsdemux2: Fix playlist reload interval when unchanged
...
When falling back to using the regular last segment, use that duration as the
identical-playlist reload interval (and not the playlist target duration which
could be much larger)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
b1354058e1
hlsdemux2: Immediately request playlist after URI changes
...
When the stream switches to a new playlist / variant while the loader is waiting
on a timer to refresh the old playlist, cancel the timer and submit the request
for the new URI.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
fe41db92db
hlsdemux2/playlist-loader: Implement more features
...
Implement limited retries on download errors before reporting it, and remember
permanent redirects, with LL-HLS directives removed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Jan Schmidt
083538df9e
hlsdemux2: Continue reworking code for async playlist updates
...
Everything is working again now except for corner cases:
- Failing over to another playlist after a load failure
- Remembering playlist redirects and using that URI
directly next time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00
Edward Hervey
2c822735ba
hlsdemux2: Add HLS playlist loader
...
Add a helper that asynchronously loads and refreshes the playlist for HLS
streams.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883 >
2023-02-03 16:52:23 +00:00