shaka-packager/packager/mpd/base
Caitlin O'Callaghan d687ad1ed0
fix: Low Latency DASH: include the "availabilityTimeComplete=false" attribute (#1198)
# Low Latency DASH - `availabilityTimeComplete=false`

Low Latency DASH manifests generated by Packager were missing the
attribute `availabilityTimeComplete`. As per the [DASH
specs](https://dashif.org/docs/CR-Low-Latency-Live-r8.pdf):

**_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](https://github.com/Dash-Industry-Forum/dash.js/blob/development/src/streaming/controllers/PlaybackController.js#L792-L805).
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
- Created a low latency stream with Shaka Packager
- Observed the expected `availabilityTimeComplete=false` attribute in
the generated DASH manifest.
2023-07-05 14:33:51 -07:00
..
xml fix: Low Latency DASH: include the "availabilityTimeComplete=false" attribute (#1198) 2023-07-05 14:33:51 -07:00
adaptation_set.cc fix: dash_roles add role=description for DVS audio per DASH-IF-IOP-v4.3 (#1054) 2022-06-02 09:40:34 -07:00
adaptation_set.h fix: dash_roles add role=description for DVS audio per DASH-IF-IOP-v4.3 (#1054) 2022-06-02 09:40:34 -07:00
adaptation_set_unittest.cc cleanup: Convert all time parameters to signed 2021-08-05 18:24:15 +00:00
bandwidth_estimator.cc chore: Update URLs after moving projects (#1042) 2022-03-07 11:56:34 -08:00
bandwidth_estimator.h Estimate target duration in bandwidth calculation from initial blocks 2019-07-11 17:45:55 -07:00
bandwidth_estimator_unittest.cc Estimate target duration in bandwidth calculation from initial blocks 2019-07-11 17:45:55 -07:00
content_protection_element.cc Rename top level namespace to shaka 2016-05-24 21:55:55 +00:00
content_protection_element.h Rename top level namespace to shaka 2016-05-24 21:55:55 +00:00
media_info.proto Low latency DASH support (#979) 2021-08-25 08:38:05 -07:00
mock_mpd_builder.cc Adding --allow_codec_switching (#726) 2020-03-17 19:33:44 -07:00
mock_mpd_builder.h Low latency DASH support (#979) 2021-08-25 08:38:05 -07:00
mock_mpd_notifier.cc Part one of supporting live profile with static mpd 2017-01-13 19:59:49 +00:00
mock_mpd_notifier.h Fix for gap size warning in Low Latency mode (#985) 2021-09-03 09:57:43 -07:00
mpd_builder.cc Refactor XmlNode and libxml usages. 2020-11-16 14:35:37 -08:00
mpd_builder.h Refactor XmlNode and libxml usages. 2020-11-16 14:35:37 -08:00
mpd_builder_unittest.cc chore: Update URLs after moving projects (#1042) 2022-03-07 11:56:34 -08:00
mpd_notifier.h Fix for gap size warning in Low Latency mode (#985) 2021-09-03 09:57:43 -07:00
mpd_notifier_util.cc Move packager/media/file to packager/file 2017-07-17 12:08:28 -07:00
mpd_notifier_util.h Rename top level namespace to shaka 2016-05-24 21:55:55 +00:00
mpd_options.h Exclude short segments from peak bandwidth computation 2018-11-26 20:02:09 +00:00
mpd_utils.cc chore: Update URLs after moving projects (#1042) 2022-03-07 11:56:34 -08:00
mpd_utils.h [DASH] Include <mspr:pro> alongside to <cenc:pssh> for PlayReady (#749) 2020-04-17 10:20:03 -07:00
mpd_utils_unittest.cc Refactor XmlNode and libxml usages. 2020-11-16 14:35:37 -08:00
period.cc fix: dash_roles add role=description for DVS audio per DASH-IF-IOP-v4.3 (#1054) 2022-06-02 09:40:34 -07:00
period.h Refactor XmlNode and libxml usages. 2020-11-16 14:35:37 -08:00
period_unittest.cc Low latency DASH support (#979) 2021-08-25 08:38:05 -07:00
representation.cc Fix for gap size warning in Low Latency mode (#985) 2021-09-03 09:57:43 -07:00
representation.h Fix for gap size warning in Low Latency mode (#985) 2021-09-03 09:57:43 -07:00
representation_unittest.cc fix: Low Latency DASH: include the "availabilityTimeComplete=false" attribute (#1198) 2023-07-05 14:33:51 -07:00
segment_info.h Use segment duration in buffer depth calculation 2019-04-17 22:47:10 +00:00
simple_mpd_notifier.cc Fix for gap size warning in Low Latency mode (#985) 2021-09-03 09:57:43 -07:00
simple_mpd_notifier.h Fix for gap size warning in Low Latency mode (#985) 2021-09-03 09:57:43 -07:00
simple_mpd_notifier_unittest.cc chore: Update URLs after moving projects (#1042) 2022-03-07 11:56:34 -08:00