From 0c6825fadd7ebe7fe874ac5087ccfb7f33686de2 Mon Sep 17 00:00:00 2001 From: Coel Aspey <68205939+terminal-overflow@users.noreply.github.com> Date: Mon, 24 Mar 2025 12:08:14 +0000 Subject: [PATCH 1/4] disable media settings cache --- src/playbackstrategy/msestrategy.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/playbackstrategy/msestrategy.js b/src/playbackstrategy/msestrategy.js index e7922a2c..18e884b3 100644 --- a/src/playbackstrategy/msestrategy.js +++ b/src/playbackstrategy/msestrategy.js @@ -42,6 +42,7 @@ function MSEStrategy( bufferTimeAtTopQuality: 12, bufferTimeAtTopQualityLongForm: 15, }, + lastMediaSettingsCachingInfo: { enabled: false }, }, }, customPlayerSettings @@ -531,6 +532,10 @@ function MSEStrategy( role: "alternate", accessibility: { schemeIdUri: "urn:tva:metadata:cs:AudioPurposeCS:2007", value: "1" }, }) + } else { + mediaPlayer.setInitialMediaSettingsFor("audio", { + role: "main", + }) } modifySource(presentationTimeInSeconds) From 30d01fac959ce509a477e97b6a9be074443d88fb Mon Sep 17 00:00:00 2001 From: Coel Aspey <68205939+terminal-overflow@users.noreply.github.com> Date: Mon, 24 Mar 2025 12:16:13 +0000 Subject: [PATCH 2/4] add initial settings unit tests --- src/playbackstrategy/msestrategy.test.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/playbackstrategy/msestrategy.test.js b/src/playbackstrategy/msestrategy.test.js index b0b8cf13..19882e88 100644 --- a/src/playbackstrategy/msestrategy.test.js +++ b/src/playbackstrategy/msestrategy.test.js @@ -702,7 +702,7 @@ describe("Media Source Extensions Playback Strategy", () => { }) describe("Sets up mediaPlayer respecting audioDescribed.enable", () => { - it("sets initial audio track settings when audioDescribed.enable is true", () => { + it("sets audio described initial audio settings when audio described is enabled", () => { const mseStrategy = MSEStrategy(mockMediaSources, MediaKinds.VIDEO, playbackElement, undefined, undefined, { enable: true, }) @@ -714,13 +714,15 @@ describe("Media Source Extensions Playback Strategy", () => { }) }) - it("does not set initial audio track settings when audioDescribed.enable is false", () => { + it("sets main initial audio settings when audio described is not enabled", () => { const mseStrategy = MSEStrategy(mockMediaSources, MediaKinds.VIDEO, playbackElement, undefined, undefined, { enable: false, }) mseStrategy.load(null, 10) - expect(mockDashInstance.setInitialMediaSettingsFor).not.toHaveBeenCalled() + expect(mockDashInstance.setInitialMediaSettingsFor).toHaveBeenCalledWith("audio", { + role: "main", + }) }) }) From 0800f76a8a120104690e13377ebd0cf1f1d53536 Mon Sep 17 00:00:00 2001 From: Coel Aspey <68205939+terminal-overflow@users.noreply.github.com> Date: Mon, 24 Mar 2025 14:28:57 +0000 Subject: [PATCH 3/4] convert setInitialMediaSettings call into a ternary --- src/playbackstrategy/msestrategy.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/playbackstrategy/msestrategy.js b/src/playbackstrategy/msestrategy.js index 18e884b3..6f496563 100644 --- a/src/playbackstrategy/msestrategy.js +++ b/src/playbackstrategy/msestrategy.js @@ -527,16 +527,17 @@ function MSEStrategy( mediaPlayer.updateSettings(dashSettings) mediaPlayer.initialize(mediaElement, null) - if (audioDescribed.enable) { - mediaPlayer.setInitialMediaSettingsFor("audio", { - role: "alternate", - accessibility: { schemeIdUri: "urn:tva:metadata:cs:AudioPurposeCS:2007", value: "1" }, - }) - } else { - mediaPlayer.setInitialMediaSettingsFor("audio", { - role: "main", - }) - } + mediaPlayer.setInitialMediaSettingsFor( + "audio", + audioDescribed.enable + ? { + role: "alternate", + accessibility: { schemeIdUri: "urn:tva:metadata:cs:AudioPurposeCS:2007", value: "1" }, + } + : { + role: "main", + } + ) modifySource(presentationTimeInSeconds) } From 3d09aa217846a99d5f7b02111f793520df66a410 Mon Sep 17 00:00:00 2001 From: Coel Aspey <68205939+terminal-overflow@users.noreply.github.com> Date: Tue, 25 Mar 2025 11:23:32 +0000 Subject: [PATCH 4/4] update naming --- src/playbackstrategy/msestrategy.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/playbackstrategy/msestrategy.test.js b/src/playbackstrategy/msestrategy.test.js index 19882e88..55e08907 100644 --- a/src/playbackstrategy/msestrategy.test.js +++ b/src/playbackstrategy/msestrategy.test.js @@ -702,7 +702,7 @@ describe("Media Source Extensions Playback Strategy", () => { }) describe("Sets up mediaPlayer respecting audioDescribed.enable", () => { - it("sets audio described initial audio settings when audio described is enabled", () => { + it("sets initial audio settings to the audio described track when audio described is enabled", () => { const mseStrategy = MSEStrategy(mockMediaSources, MediaKinds.VIDEO, playbackElement, undefined, undefined, { enable: true, }) @@ -714,7 +714,7 @@ describe("Media Source Extensions Playback Strategy", () => { }) }) - it("sets main initial audio settings when audio described is not enabled", () => { + it("sets initial audio settings to main track when audio described is not enabled", () => { const mseStrategy = MSEStrategy(mockMediaSources, MediaKinds.VIDEO, playbackElement, undefined, undefined, { enable: false, })