Skip to content

Commit 1f7ef8d

Browse files
committed
Merge branch 'smp-v4.7' of https://github.com/bbc/dash.js into rd-imsc-customisation
2 parents bd87d18 + 84ad9d4 commit 1f7ef8d

32 files changed

+5792
-185
lines changed

dash.d.ts

Lines changed: 4575 additions & 0 deletions
Large diffs are not rendered by default.

dist/dash.all.debug.js

Lines changed: 334 additions & 62 deletions
Large diffs are not rendered by default.

dist/dash.all.debug.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/dash.all.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/dash.all.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/dash.mediaplayer.debug.js

Lines changed: 334 additions & 62 deletions
Large diffs are not rendered by default.

dist/dash.mediaplayer.debug.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/dash.mediaplayer.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/dash.mediaplayer.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/dash.offline.debug.js

Lines changed: 67 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,11 +1396,15 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
13961396
* stallThreshold: 0.3,
13971397
* useAppendWindow: true,
13981398
* setStallState: true,
1399-
* emitSyntheticStallEvents: true,
14001399
* avoidCurrentTimeRangePruning: false,
14011400
* useChangeTypeForTrackSwitch: true,
14021401
* mediaSourceDurationInfinity: true,
1403-
* resetSourceBuffersForTrackSwitch: false
1402+
* resetSourceBuffersForTrackSwitch: false,
1403+
* syntheticStallEvents: {
1404+
* enabled: false,
1405+
* ignoreReadyState: false
1406+
* }
1407+
*
14041408
* },
14051409
* gaps: {
14061410
* jumpGaps: true,
@@ -1441,7 +1445,12 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
14411445
* liveCatchup: {
14421446
* maxDrift: NaN,
14431447
* playbackRate: {min: NaN, max: NaN},
1448+
* step: {
1449+
* start: { min: NaN, max: NaN },
1450+
* stop: { min: NaN, max: NaN }
1451+
* },
14441452
* playbackBufferMin: 0.5,
1453+
* liveThreshold: 30,
14451454
* enabled: null,
14461455
* mode: Constants.LIVE_CATCHUP_MODE_DEFAULT
14471456
* },
@@ -1626,7 +1635,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
16261635
* Specifies if the appendWindow attributes of the MSE SourceBuffers should be set according to content duration from manifest.
16271636
* @property {boolean} [setStallState=true]
16281637
* Specifies if we record stalled streams once the stall threshold is reached
1629-
* @property {boolean} [emitSyntheticStallEvents=true]
1638+
* @property {module:Settings~SyntheticStallSettings} [syntheticStallEvents]
16301639
* Specified if we fire manual stall events once the stall threshold is reached
16311640
* @property {boolean} [avoidCurrentTimeRangePruning=false]
16321641
* Avoids pruning of the buffered range that contains the current playback time.
@@ -1651,6 +1660,17 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
16511660
* Configuration for video media type of tracks.
16521661
*/
16531662

1663+
/**
1664+
* @typedef {Object} module:Settings~SyntheticStallSettings
1665+
* @property {boolean} [enabled]
1666+
* Fire manual stall events once the stall threshold is reached
1667+
* @property {boolean} [ignoreReadyState]
1668+
* Ignore the media element's ready state when entering and exiting a stall
1669+
* Enable this when either of these scenarios still occur with synthetic stalls enabled:
1670+
* - If the buffer is empty, but playback is not stalled.
1671+
* - If playback resumes, but a playing event isn't reported.
1672+
*/
1673+
16541674
/**
16551675
* @typedef {Object} DebugSettings
16561676
* @property {number} [logLevel=dashjs.Debug.LOG_LEVEL_WARNING]
@@ -1808,17 +1828,31 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
18081828
* These playback rate limits take precedence over any PlaybackRate values in ServiceDescription elements in an MPD. If only one of the min/max properties is given a value, the property without a value will not fall back to a ServiceDescription value. Its default value of NaN will be used.
18091829
*
18101830
* Note: Catch-up mechanism is only applied when playing low latency live streams.
1831+
* @property {number} [step={start:{min: NaN, max: NaN},stop:{min: NaN, max: NaN}}]
1832+
* This object is used for setting the window parameters for "step" mode.
1833+
*
1834+
* It is only applicable if the Catchup mechanism used is of mode "step".
1835+
*
1836+
* The parameters are all percentages of the target latency. Where 1 is on target.
1837+
*
1838+
* The start object sets the window within which catchup should begin. In the range of (0-2) (0% to 200% of the target latency).
1839+
*
1840+
* The stop window is only applicable if a non-unity playback speed is in use. Again in In the range of (0-2) (0% to 200% of the target latency). It sets the point at which playback should return to unity (or stop catching up). This parameter prevents instability when using higher min and max playback rates and should be tuned to prevent overshooting the target.
1841+
*
1842+
* Note: Catch-up mechanism is only applied when playing low latency live streams.
18111843
* @property {number} [playbackBufferMin=0.5]
18121844
* Use this parameter to specify the minimum buffer which is used for LoL+ based playback rate reduction.
18131845
*
1846+
* @property {boolean} [liveThreshold=30]
1847+
* How far in seconds the client has to be behind the absolute target for the catchup controller to attempt catching up. Disabled by setting to -1
18141848
*
18151849
* @property {boolean} [enabled=null]
18161850
* Use this parameter to enable the catchup mode for non low-latency streams.
18171851
*
18181852
* @property {string} [mode="liveCatchupModeDefault"]
18191853
* Use this parameter to switch between different catchup modes.
18201854
*
1821-
* Options: "liveCatchupModeDefault" or "liveCatchupModeLOLP".
1855+
* Options: "liveCatchupModeDefault" or "liveCatchupModeLOLP" or "liveCatchupModeStep".
18221856
*
18231857
* Note: Catch-up mechanism is automatically applied when playing low latency live streams.
18241858
*/
@@ -2047,6 +2081,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
20472081
* Overwrite the manifest segments base information timescale attributes with the timescale set in initialization segments
20482082
* @property {boolean} [enableManifestTimescaleMismatchFix=false]
20492083
* Defines the delay in milliseconds between two consecutive checks for events to be fired.
2084+
* @property {boolean} [seekWithoutReadyStateCheck=false]
2085+
* This allows a seek by setting currentTime regardless of the loadedmetadata event being emitted
2086+
* @property {boolean} [enableDashPlaybackEnded = false]
2087+
* This enables the synthetic ended behaviour in PlaybackController that seeks and pauses the media element
20502088
* @property {boolean} [parseInbandPrft=false]
20512089
* Set to true if dash.js should parse inband prft boxes (ProducerReferenceTime) and trigger events.
20522090
* @property {module:Settings~Metrics} metrics Metric settings
@@ -2173,6 +2211,8 @@ function Settings() {
21732211
enableManifestDurationMismatchFix: true,
21742212
parseInbandPrft: false,
21752213
enableManifestTimescaleMismatchFix: false,
2214+
seekWithoutReadyStateCheck: false,
2215+
enableDashPlaybackEnded: false,
21762216
capabilities: {
21772217
filterUnsupportedEssentialProperties: true,
21782218
useMediaCapabilitiesApi: false
@@ -2210,11 +2250,14 @@ function Settings() {
22102250
stallThreshold: 0.3,
22112251
useAppendWindow: true,
22122252
setStallState: true,
2213-
emitSyntheticStallEvents: true,
22142253
avoidCurrentTimeRangePruning: false,
22152254
useChangeTypeForTrackSwitch: true,
22162255
mediaSourceDurationInfinity: true,
2217-
resetSourceBuffersForTrackSwitch: false
2256+
resetSourceBuffersForTrackSwitch: false,
2257+
syntheticStallEvents: {
2258+
enabled: false,
2259+
ignoreReadyState: false
2260+
}
22182261
},
22192262
gaps: {
22202263
jumpGaps: true,
@@ -2258,7 +2301,18 @@ function Settings() {
22582301
min: NaN,
22592302
max: NaN
22602303
},
2304+
step: {
2305+
start: {
2306+
min: NaN,
2307+
max: NaN
2308+
},
2309+
stop: {
2310+
min: NaN,
2311+
max: NaN
2312+
}
2313+
},
22612314
playbackBufferMin: 0.5,
2315+
liveThreshold: 30,
22622316
enabled: null,
22632317
mode: _streaming_constants_Constants__WEBPACK_IMPORTED_MODULE_3__["default"].LIVE_CATCHUP_MODE_DEFAULT
22642318
},
@@ -13334,6 +13388,13 @@ var Constants = /*#__PURE__*/function () {
1333413388
*/
1333513389

1333613390
this.LIVE_CATCHUP_MODE_LOLP = 'liveCatchupModeLoLP';
13391+
/**
13392+
* @constant {string} LIVE_CATCHUP_MODE_STEP Throughput calculation based on moof parsing
13393+
* @memberof Constants#
13394+
* @static
13395+
*/
13396+
13397+
this.LIVE_CATCHUP_MODE_STEP = 'liveCatchupModeStep';
1333713398
/**
1333813399
* @constant {string} MOVING_AVERAGE_SLIDING_WINDOW Moving average sliding window
1333913400
* @memberof Constants#

0 commit comments

Comments
 (0)