diff --git a/docs/tutorials/config.md b/docs/tutorials/config.md index e8c8df546e..4e7f27d56d 100644 --- a/docs/tutorials/config.md +++ b/docs/tutorials/config.md @@ -127,6 +127,7 @@ With `.streaming.lowLatencyMode` set to true, `.streaming.rebufferingGoal` is set to 0.01 by default, `.streaming.segmentPrefetchLimit` is set to 2 by default, `.streaming.updateIntervalSeconds` is set to 0.1 by default, +`.streaming.maxDisabledTime` is set to 1 by default, `.streaming.retryParameters.baseDelay` is set to 100 by default, `.manifest.dash.autoCorrectDrift` is set to false by default, `.manifest.retryParameters.baseDelay` is set to 100 by default, and @@ -143,6 +144,7 @@ player.configure({ rebufferingGoal: 0.01, segmentPrefetchLimit: 2, updateIntervalSeconds: 0.1, + maxDisabledTime: 1, retryParameters: { baseDelay: 100, }, diff --git a/lib/player.js b/lib/player.js index 7932d122ff..6389da2b4a 100644 --- a/lib/player.js +++ b/lib/player.js @@ -3399,10 +3399,11 @@ shaka.Player = class extends shaka.util.FakeEventTarget { // If lowLatencyMode is enabled, and inaccurateManifestTolerance and // rebufferingGoal and segmentPrefetchLimit and baseDelay and - // autoCorrectDrift are not specified, set inaccurateManifestTolerance to 0 - // and rebufferingGoal to 0.01 and segmentPrefetchLimit to 2 and - // updateIntervalSeconds to 0.1 and baseDelay to 100 and autoCorrectDrift - // to false by default for low latency streaming. + // autoCorrectDrift and maxDisabledTime are not specified, set + // inaccurateManifestTolerance to 0 and rebufferingGoal to 0.01 and + // segmentPrefetchLimit to 2 and updateIntervalSeconds to 0.1 and and + // baseDelay to 100 and autoCorrectDrift to false and maxDisabledTime + // to 1 by default for low latency streaming. if (config['streaming'] && config['streaming']['lowLatencyMode']) { if (config['streaming']['inaccurateManifestTolerance'] == undefined) { config['streaming']['inaccurateManifestTolerance'] = 0; @@ -3416,6 +3417,9 @@ shaka.Player = class extends shaka.util.FakeEventTarget { if (config['streaming']['updateIntervalSeconds'] == undefined) { config['streaming']['updateIntervalSeconds'] = 0.1; } + if (config['streaming']['maxDisabledTime'] == undefined) { + config['streaming']['maxDisabledTime'] = 1; + } if (config['streaming']['retryParameters'] == undefined) { config['streaming']['retryParameters'] = {}; } diff --git a/test/player_unit.js b/test/player_unit.js index e545b2f96b..4d379e3c83 100644 --- a/test/player_unit.js +++ b/test/player_unit.js @@ -1215,6 +1215,7 @@ describe('Player', () => { inaccurateManifestTolerance: 1, segmentPrefetchLimit: 1, updateIntervalSeconds: 10, + maxDisabledTime: 10, retryParameters: { baseDelay: 2000, }, @@ -1239,6 +1240,7 @@ describe('Player', () => { expect(player.getConfiguration().streaming.segmentPrefetchLimit).toBe(1); expect(player.getConfiguration().streaming.updateIntervalSeconds) .toBe(10); + expect(player.getConfiguration().streaming.maxDisabledTime).toBe(10); expect(player.getConfiguration().streaming.retryParameters.baseDelay) .toBe(2000); expect(player.getConfiguration().manifest.dash.autoCorrectDrift) @@ -1259,6 +1261,7 @@ describe('Player', () => { expect(player.getConfiguration().streaming.segmentPrefetchLimit).toBe(2); expect(player.getConfiguration().streaming.updateIntervalSeconds) .toBe(0.1); + expect(player.getConfiguration().streaming.maxDisabledTime).toBe(1); expect(player.getConfiguration().streaming.retryParameters.baseDelay) .toBe(100); expect(player.getConfiguration().manifest.dash.autoCorrectDrift)