-
Notifications
You must be signed in to change notification settings - Fork 414
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
Fix: livestream timeout issues #469
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -49,9 +49,9 @@ export const syncPointStrategies = [ | |
let segmentStart = segmentTime + syncController.datetimeToDisplayTime; | ||
let distance = Math.abs(currentTime - segmentStart); | ||
|
||
// Once the distance begins to increase, we have passed | ||
// Once the distance begins to increase, or if distance is 0, we have passed | ||
// currentTime and can stop looking for better candidates | ||
if (lastDistance !== null && lastDistance < distance) { | ||
if (lastDistance !== null && (distance === 0 || lastDistance < distance)) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a legitimate fix, the previous code assumed that if the EX: There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This explanation would be good to put in the commit body when we merge. |
||
break; | ||
} | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -831,7 +831,7 @@ function(assert) { | |
'no playlist loader when misconfigured'); | ||
}); | ||
|
||
QUnit.test('initialize audio does not create playlist loader for alternate tracks with' + | ||
QUnit.skip('initialize audio does not create playlist loader for alternate tracks with' + | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't see a way around this test, since it is testing for something that we do not want to happen for now. |
||
' main stream as URI attribute', function(assert) { | ||
this.master.mediaGroups.AUDIO.aud1 = { | ||
en: { default: true, language: 'en', resolvedUri: 'main.m3u8' }, | ||
|
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.
Removing this, can cause two segments to be download for the first segment of audio only videos. I think that we should log that as an issue to fix. This makes it so that we do not timeout when a video has separate audio
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.
So, the issue is that for an audio-only stream, the main segment loader and the audio segment loader would both download the audio segment. Previously, this
delete
statement would prevent the audio segment loader from being created. However, this causes issues when audio and video are unmuxed?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.
Some regression testing should be done on playlists this affects as I believe there was another issue where one of the segment loaders were not calling end of stream
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 this causes issues with unmuxed audio/video. Yes we should do some regression testing, but I think that other
endofstream
fixes that have been done fixed those issues, at least for the streams that I have been testing with.