-
Notifications
You must be signed in to change notification settings - Fork 426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: use serverControl and preloadSegment llhls features behind a flag #1078
Merged
Merged
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit
Hold shift + click to select a range
123aba7
feat: Add ll-hls ext-x-part support behind a flag
brandonocasey 32de23e
code review
brandonocasey 3f8ad12
change option from llhls -> experimentalLLHLS
brandonocasey 9c9493a
update to camelcase
brandonocasey 73278fa
cr
brandonocasey e7598c6
separate updateSegment function
brandonocasey d3236ca
m3u8-parser update
brandonocasey c2ebf7b
test fixes with m3u8-parser update
brandonocasey a8957ff
ie 11 fix
brandonocasey 2ce6e59
feat(llhls): serverControl, preloadSegment, and partTargetDuration
brandonocasey 0fa6dee
getHoldBack -> liveEdgeDelay
brandonocasey b4e219c
use part length
brandonocasey a58bcef
getAllSegments helper
brandonocasey 83bf171
partSegments -> partsAndSegments
brandonocasey 43720f0
msn -> mediaSequenceNumber
brandonocasey 6ce8c1e
cr add comments
brandonocasey c3bef56
test text update
brandonocasey 5d78a1f
better test
brandonocasey 467832f
Merge remote-tracking branch 'origin/main' into feat/llhls-2
brandonocasey d35fa4d
code review
brandonocasey 4374c0e
remove last three durations logic
brandonocasey e80c0fb
Merge branch 'main' into feat/llhls-2
brandonocasey b77c94c
Update src/playlist.js
brandonocasey dffa291
Merge remote-tracking branch 'origin/main' into feat/llhls-2
brandonocasey 3aa8582
code review
brandonocasey 1aa7785
null check
brandonocasey b381d96
Merge branch 'main' into feat/llhls-2
brandonocasey 088ee6e
set to largest duration, add test
brandonocasey d7c30d2
Update test/manifest.test.js
brandonocasey 01a6763
Merge remote-tracking branch 'origin/main' into feat/llhls-2
brandonocasey File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I may be missing something, but I don't think that section of the spec, if referring to
HOLD-BACK
, matches the comment here, since that is saying to use part target duration or target duration when the parameter is not available, and doesn't refer to the use of segment durations. Do we just have this in case the required target durations are missing?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes we use three segment durations in case target durations are not available for whatever reason.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering if it's worth it to add the logic for this here if those are required attributes. It adds logic to the code that we shouldn't really encounter, and if we were to, then it's something that should be resolved by the creator of the stream, since target duration is always required (https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.3.1) and part target duration is required when parts are used (https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-4.4.3.7).
I think if we're trying to account for missing target durations we should do that at a higher level, when we first parse the manifest. It would help to simplify the code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok I will remove the last three durations logic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about just default to 10s target duration in case somehow it isn't set or whatever? While I agree that bad streams are bad, we should still try to play as much as possible and having a default, if bad value, is worth it. Plus, it should make things simpler than trying to figure out segment duration and using that for target duation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think having a sort of default may be appropriate (along with a warning). We should probably add it at the point where we first parse the stream (i.e., in the loaders).