- Changed on how HLS select media file index when variant playlist is switched. It was based on file name, but it is not reliable, since file names are not guaranteed to match. Instead, index is adjusted based on sequence number which should not drift more than +/- 1 when switch is done. Sequence number is like index of first segment file in live streams. Fixed issue when variant playlist was not detected as live even it was live. Playlist with variant playlists was detected correctly as live. - Fixed reload time. Thread sleep is expecting milliseconds, and we provided (seconds / 2) as milliseconds without conversion. As have resulted we were requesting playlist way too often. - Redone mechanism on how we are waiting for live segments to be added. Old approach had a bug with semaphore and if we added two segments in one run it will cause code to assume that we have segments when we did not. As a result, EOS was signaled for live streams. This issue does not reproduce often but might happen. - Old playlist data will be cleared when we are switching bitrate, otherwise we will attempt to play old segments which are gone long time. - Fixed start time for live streams by sending `BYTE` segment vs `TIME`, so `qtdemux` will handle initial start time. Live streams will not start with 0 PTS as on demand. - `javasource` will report `GST_CLOCK_TIME_NONE` for unknown duration instead of large negative number. - `#EXT-X-MEDIA` streams will be seek to last segment similar to streams without `#EXT-X-MEDIA` when seek to the end.
--------- - [x] I confirm that I make this contribution in accordance with the [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). ------------- Commit messages: - 8389211: Fix HLS Live issues found during testing of JDK-8331458 and various live streams Changes: https://git.openjdk.org/jfx/pull/2227/files Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2227&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8389211 Stats: 379 lines in 3 files changed: 246 ins; 64 del; 69 mod Patch: https://git.openjdk.org/jfx/pull/2227.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/2227/head:pull/2227 PR: https://git.openjdk.org/jfx/pull/2227
