Skip to content
This repository has been archived by the owner on Oct 20, 2022. It is now read-only.

update DVR Window Range for livestreams with infinite window size #233

Merged

Conversation

IcoDeveloper
Copy link
Contributor

Workaround for DVRWindow Range not updating on live MSS stream with infinite DVR window size #232

@@ -100,20 +100,22 @@ Mss.dependencies.MssFragmentController = function() {
return;
}
// In case of live streams, update segment timeline according to DVR window
else if (manifest.timeShiftBufferDepth && manifest.timeShiftBufferDepth > 0) {
else if ((manifest.timeShiftBufferDepth && manifest.timeShiftBufferDepth > 0) || manifest.canSeek ) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can assume that if CanSeek=TRUE then we have systematically a DVRWindowLength > 0.
Then the test could be simply:

if (manifest.canSeek)

Another solution, maybe more relevant, is to set timeShiftBufferDepth to Inifinity (in MssParser) if DVRWindowLength is not set and if CanSeek=TRUE.
But then we have to ensure it has no side effect.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Going for manifest.canseek only would be cleaner, yes.
However, we can't rely on the canseek property actually being available in the manifest:
<SmoothStreamingMedia MajorVersion="2" MinorVersion="2" TimeScale="10000000" IsLive="TRUE" Duration="0" LookAheadFragmentCount="2" DVRWindowLength="300000000"> (from Azure Media Live Stream)
we'd have to set the canSeek property in the parser based on DVRWindowLength > 0 if the property is missing in XML manifest.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, ok for considering missing CanSeek property when DVRWindowLength is > 0.
Now we have to check if we can set DVRWindowLength to Infinity by default if not set & CanSeek=TRUE

@IcoDeveloper IcoDeveloper force-pushed the mss_dvrwindow_infinite branch from 984b27c to e6a485a Compare May 3, 2018 11:42
@IcoDeveloper
Copy link
Contributor Author

Thanks for the pointer regarding DVRWindowLength = Infinity. Makes for a less intrusive change.

@bbert
Copy link

bbert commented Jun 28, 2018

Hi @IcoDeveloper , can you update the PR so that it integrates the changes as we discussed?

@bbert
Copy link

bbert commented Jun 28, 2018

@IcoDeveloper , the Pr seems to be ok in fact. I have updated to clean the code and tested on my side.
Can you test on your side before I do merge?

@bbert bbert merged commit 5486528 into Orange-OpenSource:development Jul 18, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants