Skip to content
20 changes: 0 additions & 20 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
"docs": "jsdoc -c jsdoc.conf.json",
"build": "npm run build:clean && npm run build:bundle && npm run build:tmp",
"build:clean": "rm -rf dist/*",
"build:bundle": "cross-env NODE_OPTIONS=--disable-warning=ExperimentalWarning rollup --config rollup.config.js",
"build:bundle": "rollup --config rollup.config.js",
"build:tmp": "rm -r dist/esm/__tmp",
"watch": "cross-env NODE_OPTIONS=--disable-warning=ExperimentalWarning rollup --watch --config rollup.config.js",
"start": "cross-env NODE_OPTIONS=--disable-warning=ExperimentalWarning rollup --watch --config rollup.dev.config.js",
"watch": "rollup --watch --config rollup.config.js",
"start": "rollup --watch --config rollup.dev.config.js",
"test": "jest",
"coverage": "jest --coverage",
"lint": "eslint ."
Expand All @@ -42,7 +42,6 @@
"babel-jest": "^29.7.0",
"better-docs": "^2.7.3",
"clean-jsdoc-theme": "^4.2.7",
"cross-env": "^7.0.3",
Comment thread
ryanmccartney marked this conversation as resolved.
"eslint": "^8.57.0",
"eslint-plugin-jest": "^27.9.0",
"eslint-plugin-sonarjs": "^0.23.0",
Expand Down
4 changes: 4 additions & 0 deletions src/debugger/chronicle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ type AutoResume = CreateMetric<"auto-resume", number>
type BitRate = CreateMetric<"bitrate", number>
type BufferLength = CreateMetric<"buffer-length", number>
type CDNsAvailable = CreateMetric<"cdns-available", string[]>
type CurrentLatency = CreateMetric<"current-latency", number>
type CurrentUrl = CreateMetric<"current-url", string>
type Duration = CreateMetric<"duration", number>
type FramesDropped = CreateMetric<"frames-dropped", number>
Expand All @@ -55,13 +56,15 @@ type RepresentationVideo = CreateMetric<"representation-video", [qualityIndex: n
type SeekableRange = CreateMetric<"seekable-range", [start: number, end: number]>
type SubtitleCDNsAvailable = CreateMetric<"subtitle-cdns-available", string[]>
type SubtitleCurrentUrl = CreateMetric<"subtitle-current-url", string>
type TargetLatency = CreateMetric<"target-latency", number>
type Version = CreateMetric<"version", string>

export type Metric =
| AutoResume
| BitRate
| BufferLength
| CDNsAvailable
| CurrentLatency
| CurrentUrl
| Duration
| FramesDropped
Expand All @@ -77,6 +80,7 @@ export type Metric =
| SeekableRange
| SubtitleCDNsAvailable
| SubtitleCurrentUrl
| TargetLatency
| Version

export type MetricKind = Metric["kind"]
Expand Down
5 changes: 5 additions & 0 deletions src/playbackstrategy/msestrategy.js
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,11 @@ function MSEStrategy(
function onTimeUpdate() {
DebugTool.updateElementTime(mediaElement.currentTime)

if (!isNaN(mediaPlayer.getCurrentLiveLatency())) {
DebugTool.staticMetric("current-latency", mediaPlayer.getCurrentLiveLatency())
DebugTool.staticMetric("target-latency", mediaPlayer.getTargetLiveDelay())
}

const currentPresentationTimeInSeconds = mediaElement.currentTime

// Note: Multiple consecutive CDN failover logic
Expand Down
2 changes: 2 additions & 0 deletions src/playbackstrategy/msestrategy.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ const mockDashInstance = {
play: jest.fn(),
seek: jest.fn(),
isReady: jest.fn(),
getTargetLiveDelay: jest.fn(),
getCurrentLiveLatency: jest.fn(),
getDashMetrics: jest.fn().mockReturnValue(mockDashMetrics),
getDashAdapter: jest.fn().mockReturnValue(mockDashAdapter),
getBitrateInfoListFor: jest.fn(),
Expand Down