fix: Low Latency DASH: include the "availabilityTimeComplete=false" attribute #1198
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.
Low Latency DASH -
availabilityTimeComplete=false
Low Latency DASH manifests generated by Packager were missing the attribute
availabilityTimeComplete
. As per the DASH specs:the AdaptationSet@availabilityTimeCompleteshould be present and be set to 'FALSE'
The Issue
The missing attribute caused ULL streams from Shaka Packager to no longer be compatible with DASH.js. Previous versions of DASH.js allowed users to specify ULL mode when initializing the player. However, the most recent releases of DASH.js automatically detect ULL by scanning the manifest for ULL specific attributes. Although there are many attributes only associated with ULL, DASH.js only greps for
availabilityTimeComplete
in its detection logic. Because of the missing attribute in Packager and the limited ULL verification criteria by DASH.js, Packager streams were not being treated as low latency streams by DASH.js.Testing
Unit Testing
./mpd_unittest --gtest_filter="SegmentTemplateTest.OneSegmentLowLatency"
./mpd_unittest --gtest_filter="LowLatencySegmentTest.LowLatencySegmentTemplate"
Manual Testing
availabilityTimeComplete=false
attribute in the generated DASH manifest.