Make more robust the period parsing. Add unit tests #2619
Merged
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.
Partial refactor of getRegularPeriods method of DashManifestModel. Added a new check to cover situations in which multi period streams, for static assets, are not defining start and duration attributes of any of their periods. This avoids dash.js to throw exceptions, and logs a warning message to notify the user about the issue.
Note: Having this situation implies a wrong mpd and that, even with this fix, there will be timing inconsistencies after the first period. However, IMHO, I prefer dash.js to play something whenever is possible. Once we add the flag to dash.js to allow/disallow playback of streams/assets out of DASH IOP guidelines, I will revisit this.
Added unit tests to cover this and regular situations (multiple combinations of period with combinations of start and duration attributes).