From 8ad80bd3fa0389e8d3940733a83b433a4a60cafb Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Thu, 21 Aug 2025 19:25:53 +0100 Subject: [PATCH 01/10] Add total frames debugging --- src/playbackstrategy/msestrategy.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/playbackstrategy/msestrategy.js b/src/playbackstrategy/msestrategy.js index 663be04b..2b05a327 100644 --- a/src/playbackstrategy/msestrategy.js +++ b/src/playbackstrategy/msestrategy.js @@ -479,6 +479,24 @@ function MSEStrategy( } function onMetricAdded(event) { + //TEMP CHROME FRAMES DEBUGGING + const playbackQualityChrome = + "getVideoPlaybackQuality" in mediaElement ? mediaElement?.getVideoPlaybackQuality() : {} + if (playbackQualityChrome.totalVideoFrames) { + DebugTool.staticMetric("total-frames-chrome", playbackQualityChrome?.totalVideoFrames) + } + + //TEMP WEBKIT FRAMES DEBUGGING + const isWebKit = "webkitDroppedFrameCount" in mediaElement && "webkitDecodedFrameCount" in mediaElement + if (isWebKit) { + DebugTool.staticMetric( + "total-frames-webkit", + mediaElement.webkitDroppedFrameCount + mediaElement.webkitDecodedFrameCount + ) + DebugTool.staticMetric("dropped-frames-webkit", mediaElement.webkitDroppedFrameCount) + DebugTool.staticMetric("decoded-frames-webkit", mediaElement.webkitDecodedFrameCount) + } + if (event.mediaType === "video" && event.metric === "DroppedFrames") { DebugTool.staticMetric("frames-dropped", event.value.droppedFrames) } From e97a2555804192ed71f02025f84af69d9dabf074 Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Thu, 21 Aug 2025 19:35:52 +0100 Subject: [PATCH 02/10] Update: naming videoQuality variables --- src/playbackstrategy/msestrategy.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/playbackstrategy/msestrategy.js b/src/playbackstrategy/msestrategy.js index 2b05a327..9b14e894 100644 --- a/src/playbackstrategy/msestrategy.js +++ b/src/playbackstrategy/msestrategy.js @@ -479,11 +479,10 @@ function MSEStrategy( } function onMetricAdded(event) { - //TEMP CHROME FRAMES DEBUGGING - const playbackQualityChrome = + const videoPlaybackQuality = "getVideoPlaybackQuality" in mediaElement ? mediaElement?.getVideoPlaybackQuality() : {} - if (playbackQualityChrome.totalVideoFrames) { - DebugTool.staticMetric("total-frames-chrome", playbackQualityChrome?.totalVideoFrames) + if (videoPlaybackQuality.totalVideoFrames) { + DebugTool.staticMetric("frames-total", videoPlaybackQuality?.totalVideoFrames) } //TEMP WEBKIT FRAMES DEBUGGING From 359f9b11b9008ba262b4c426e6e552cafe8d88ed Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Thu, 21 Aug 2025 20:28:55 +0100 Subject: [PATCH 03/10] Update Dash.js to Branch --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 27cfa956..a0c04032 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "dashjs": "github:bbc/dash.js#smp-v4.7.3-10", + "dashjs": "github:bbc/dash.js#video-not-advancing-updates", "smp-imsc": "github:bbc/imscJS#v1.0.3" }, "devDependencies": { @@ -5606,7 +5606,7 @@ }, "node_modules/dashjs": { "version": "4.7.3", - "resolved": "git+ssh://git@github.com/bbc/dash.js.git#f17dd7a81b43a68cb67ed1cb7e0086e6da4f479d", + "resolved": "git+ssh://git@github.com/bbc/dash.js.git#aa790081b6b6966de80e72a4a32141ad865fc8a6", "license": "BSD-3-Clause", "dependencies": { "bcp-47-match": "^2.0.3", diff --git a/package.json b/package.json index 180fb460..bb5465b6 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "typescript-eslint": "^7.2.0" }, "dependencies": { - "dashjs": "github:bbc/dash.js#smp-v4.7.3-10", + "dashjs": "github:bbc/dash.js#video-not-advancing-updates", "smp-imsc": "github:bbc/imscJS#v1.0.3" }, "repository": { From 67a0b5d766a9bbc2b8756fdfb4178151b0a9147e Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Fri, 22 Aug 2025 08:51:27 +0100 Subject: [PATCH 04/10] Remove webkit debugging --- src/playbackstrategy/msestrategy.js | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/playbackstrategy/msestrategy.js b/src/playbackstrategy/msestrategy.js index 9b14e894..1e4ade3a 100644 --- a/src/playbackstrategy/msestrategy.js +++ b/src/playbackstrategy/msestrategy.js @@ -485,17 +485,6 @@ function MSEStrategy( DebugTool.staticMetric("frames-total", videoPlaybackQuality?.totalVideoFrames) } - //TEMP WEBKIT FRAMES DEBUGGING - const isWebKit = "webkitDroppedFrameCount" in mediaElement && "webkitDecodedFrameCount" in mediaElement - if (isWebKit) { - DebugTool.staticMetric( - "total-frames-webkit", - mediaElement.webkitDroppedFrameCount + mediaElement.webkitDecodedFrameCount - ) - DebugTool.staticMetric("dropped-frames-webkit", mediaElement.webkitDroppedFrameCount) - DebugTool.staticMetric("decoded-frames-webkit", mediaElement.webkitDecodedFrameCount) - } - if (event.mediaType === "video" && event.metric === "DroppedFrames") { DebugTool.staticMetric("frames-dropped", event.value.droppedFrames) } From 0f61d4875fcd29168f87f6965f3a76f2c9876f68 Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Fri, 22 Aug 2025 09:52:09 +0100 Subject: [PATCH 05/10] Update getting totalVideoFrames --- src/playbackstrategy/msestrategy.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/playbackstrategy/msestrategy.js b/src/playbackstrategy/msestrategy.js index 1e4ade3a..b85ffe9a 100644 --- a/src/playbackstrategy/msestrategy.js +++ b/src/playbackstrategy/msestrategy.js @@ -479,10 +479,9 @@ function MSEStrategy( } function onMetricAdded(event) { - const videoPlaybackQuality = - "getVideoPlaybackQuality" in mediaElement ? mediaElement?.getVideoPlaybackQuality() : {} - if (videoPlaybackQuality.totalVideoFrames) { - DebugTool.staticMetric("frames-total", videoPlaybackQuality?.totalVideoFrames) + const totalVideoFrames = (mediaElement.getVideoPlaybackQuality ?? (() => ({})))().totalVideoFrames + if (totalVideoFrames) { + DebugTool.staticMetric("frames-total", totalVideoFrames) } if (event.mediaType === "video" && event.metric === "DroppedFrames") { From 47fc6281664f402330d647f8995fd438a64ff51e Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Fri, 22 Aug 2025 10:04:53 +0100 Subject: [PATCH 06/10] Update Dash.js Branch --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index a0c04032..670c9f1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5606,7 +5606,7 @@ }, "node_modules/dashjs": { "version": "4.7.3", - "resolved": "git+ssh://git@github.com/bbc/dash.js.git#aa790081b6b6966de80e72a4a32141ad865fc8a6", + "resolved": "git+ssh://git@github.com/bbc/dash.js.git#f2cb69b04c487fec98c0279ce091628a40a7e38b", "license": "BSD-3-Clause", "dependencies": { "bcp-47-match": "^2.0.3", From ffb22b1add735ca13ad7d6def5fdb582e2e5a989 Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Fri, 22 Aug 2025 11:27:00 +0100 Subject: [PATCH 07/10] Update videoPlaybackQuality usage --- src/playbackstrategy/msestrategy.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/playbackstrategy/msestrategy.js b/src/playbackstrategy/msestrategy.js index b85ffe9a..7580baa3 100644 --- a/src/playbackstrategy/msestrategy.js +++ b/src/playbackstrategy/msestrategy.js @@ -479,9 +479,9 @@ function MSEStrategy( } function onMetricAdded(event) { - const totalVideoFrames = (mediaElement.getVideoPlaybackQuality ?? (() => ({})))().totalVideoFrames - if (totalVideoFrames) { - DebugTool.staticMetric("frames-total", totalVideoFrames) + const videoPlaybackQuality = (mediaElement.getVideoPlaybackQuality ?? (() => ({})))() + if (videoPlaybackQuality?.totalVideoFrames) { + DebugTool.staticMetric("frames-total", videoPlaybackQuality?.totalVideoFrames) } if (event.mediaType === "video" && event.metric === "DroppedFrames") { From c836e96fa75dd7891ecf8bd86ef3faac71fea236 Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Fri, 22 Aug 2025 11:58:09 +0100 Subject: [PATCH 08/10] Update videoPlaybackQuality call --- src/playbackstrategy/msestrategy.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/playbackstrategy/msestrategy.js b/src/playbackstrategy/msestrategy.js index 7580baa3..2aeec19c 100644 --- a/src/playbackstrategy/msestrategy.js +++ b/src/playbackstrategy/msestrategy.js @@ -479,7 +479,9 @@ function MSEStrategy( } function onMetricAdded(event) { - const videoPlaybackQuality = (mediaElement.getVideoPlaybackQuality ?? (() => ({})))() + const videoPlaybackQuality = + "getVideoPlaybackQuality" in mediaElement ? mediaElement?.getVideoPlaybackQuality() : {} + if (videoPlaybackQuality?.totalVideoFrames) { DebugTool.staticMetric("frames-total", videoPlaybackQuality?.totalVideoFrames) } From 4a74f8ea7800d57d4774a288585cf434086bb93a Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Fri, 22 Aug 2025 15:19:11 +0100 Subject: [PATCH 09/10] Update Dash.js version to smp-v4.7.3-11 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 670c9f1f..e0e1ebfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "dashjs": "github:bbc/dash.js#video-not-advancing-updates", + "dashjs": "github:bbc/dash.js#smp-v4.7.3-11", "smp-imsc": "github:bbc/imscJS#v1.0.3" }, "devDependencies": { @@ -5606,7 +5606,7 @@ }, "node_modules/dashjs": { "version": "4.7.3", - "resolved": "git+ssh://git@github.com/bbc/dash.js.git#f2cb69b04c487fec98c0279ce091628a40a7e38b", + "resolved": "git+ssh://git@github.com/bbc/dash.js.git#3a97e478fb66c04b7c8da1fbb916928da3986c7c", "license": "BSD-3-Clause", "dependencies": { "bcp-47-match": "^2.0.3", diff --git a/package.json b/package.json index bb5465b6..d74bb2b2 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "typescript-eslint": "^7.2.0" }, "dependencies": { - "dashjs": "github:bbc/dash.js#video-not-advancing-updates", + "dashjs": "github:bbc/dash.js#smp-v4.7.3-11", "smp-imsc": "github:bbc/imscJS#v1.0.3" }, "repository": { From 630332ced15cb361f67c54a2975e459ec3e832e6 Mon Sep 17 00:00:00 2001 From: Ryan McCartney Date: Tue, 26 Aug 2025 10:12:11 +0100 Subject: [PATCH 10/10] Update Dash.js to smp-v4.7.3-12 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d15832c..5d82de0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "dashjs": "github:bbc/dash.js#smp-v4.7.3-11", + "dashjs": "github:bbc/dash.js#smp-v4.7.3-12", "smp-imsc": "github:bbc/imscJS#v1.0.3" }, "devDependencies": { @@ -5606,7 +5606,7 @@ }, "node_modules/dashjs": { "version": "4.7.3", - "resolved": "git+ssh://git@github.com/bbc/dash.js.git#3a97e478fb66c04b7c8da1fbb916928da3986c7c", + "resolved": "git+ssh://git@github.com/bbc/dash.js.git#5948e1d2f771948f4da940ab82f233cf54c1432f", "license": "BSD-3-Clause", "dependencies": { "bcp-47-match": "^2.0.3", diff --git a/package.json b/package.json index a6a82d45..f58e2343 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "typescript-eslint": "^7.2.0" }, "dependencies": { - "dashjs": "github:bbc/dash.js#smp-v4.7.3-11", + "dashjs": "github:bbc/dash.js#smp-v4.7.3-12", "smp-imsc": "github:bbc/imscJS#v1.0.3" }, "repository": {