diff --git a/externs/shaka/player.js b/externs/shaka/player.js index bdaf20b6f9..bd038dd7a8 100644 --- a/externs/shaka/player.js +++ b/externs/shaka/player.js @@ -1800,10 +1800,12 @@ shaka.extern.LiveSyncConfiguration; *
* Defaults to 0.5. * @property {boolean} infiniteLiveStreamDuration - * If true, the media source live duration - * set as aInfinity + * If true, the media source duration of livestreams will be set + * to Infinity. Otherwise, it will be set to a high but + * non-infinite number (2^32). *
- * Defaults to false. + * Defaults to false except on Safari 17 or above whose default + * value is true. * @property {number} preloadNextUrlWindow * The window of time at the end of the presentation to begin preloading the * next URL, such as one specified by a urn:mpeg:dash:chaining:2016 element diff --git a/lib/util/player_configuration.js b/lib/util/player_configuration.js index c30998c8fd..3c92534559 100644 --- a/lib/util/player_configuration.js +++ b/lib/util/player_configuration.js @@ -276,6 +276,11 @@ shaka.util.PlayerConfiguration = class { shaka.util.Platform.isTizen(), }; + const safariVersion = shaka.util.Platform.safariVersion(); + if (safariVersion && safariVersion >= 17) { + streaming.infiniteLiveStreamDuration = true; + } + // WebOS, Tizen, Chromecast and Hisense have long hardware pipelines // that respond slowly to seeking. // Therefore we should not seek when we detect a stall