Open
Conversation
e94b686 to
82024d3
Compare
4e459bc to
d8f3b4e
Compare
8e1f19c to
c22b3d7
Compare
84de62d to
9a2dfcb
Compare
f4ecff2 to
f8f98aa
Compare
f8f98aa to
a4f6b45
Compare
Robloche
pushed a commit
that referenced
this pull request
Apr 9, 2024
…QUENCE (shaka-project#6378) Fixes shaka-project#6377 When choosing to synchronize HLS streams using `EXT-X-MEDIA-SEQUENCE` instead of `EXT-X-PROGRAM-DATE-TIME` during LIVE playlist variant switches, Shaka unnecessarily drops 'old' segments and offsets the segment references of the new playlist so that the earliest reference represents media time `0`: https://github.com/shaka-project/shaka-player/blob/ea740ba2468f3b035d463ea9933aa7eeccf5c748/lib/hls/hls_parser.js#L610-L613 This is problematic, as the `StreamingEngine`'s media time used to download new segments is based off the latest segment references: https://github.com/shaka-project/shaka-player/blob/ea740ba2468f3b035d463ea9933aa7eeccf5c748/lib/media/streaming_engine.js#L1248-L1250 https://github.com/shaka-project/shaka-player/blob/ea740ba2468f3b035d463ea9933aa7eeccf5c748/lib/media/streaming_engine.js#L1385 For example: ``` Playlist download #1 EXT-X-MEDIA-SEQUENCE Media Time 0 0 1 6 2 12 3 18 Playlist download shaka-project#2 (what happens now) EXT-X-MEDIA-SEQUENCE Media Time 6 0 7 6 8 12 9 18 Playlist download shaka-project#2 (desired behavior) EXT-X-MEDIA-SEQUENCE Media Time 6 36 7 42 8 48 9 54 ``` Without this fix, and given the above example, if Shaka tries to request the segment at `time=36`, it will fail because the media state only has segment references up to `time=18`. Until the manifests, 'catch up', the player freezes; this can be especially problematic when a large amount of time accumulates before a variant switch occurs. This has been confirmed by Pluto TV to fix their freezing issues.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 I have created a release beep boop
4.4.0 (2023-07-04)
Features
Bug Fixes
config.streaming.preferNativeHlsonly applies to HLS streams (#5167) (bf4b4a5), closes #5166.tsaand .tsvfile extensions as valid MPEG2-TS. (#5034) (a22bdc5)Performance Improvements
This PR was generated with Release Please. See documentation.