[Session] Use total segments duration to check the period #1607
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.
Description
On the issue ISA its not able to switch to the right period when you try to do a video seek
manifest case: segtpl_multiperiod_ads.mpd.txt
from the manifest the ADS periods (marked with
urn:scte:scte35:2013:xml
) dont have the "duration" attribute but only "start" attrib.with the parser we calculate the period duration by looking for the "start" attrib of the next period (by difference),
but if you calculate the duration, you can see that dont match with the total segments duration (of SegmentTemplate),
this seem to lead to in a segments hole in part of the period
It seems that Dash when periods are reported as ADS the period duration is not exact but estimated, but i have not yet found enough info to confirm this.
Then since there are parts of code that use "Period->GetDuration" lead to a wrong behaviour, as you can see on
CSession::SeekTime
try find the chapter on a wrong timemy idea is instead looking to each period duration, use total segments duration, that must be a safe value
todo:
Motivation and context
attempt to fix #1500
How has this been tested?
NOT TESTED!
Screenshots (if appropriate):
Types of change
Checklist: