Skip to content

Releases: bbc/bigscreen-player

10.3.0: Add audio-quality, video-quality, and max-bitrate to the on-screen debugger (#380)

14 Apr 12:53
b04c835

Choose a tag to compare

📺 What

Title. The on-screen fields are derived from Chronicle records:

  • video-download-quality
  • video-playback-quality
  • video-max-quality
  • audio-download-quality
  • audio-playback-quality
  • audio-max-quality

Also removes the message on quality switch rendered, and reformats the message on quality switch requested.

🛠 How

Replaces the fields bitrate, representation-audio, and representation-video. Merges playback-rate into the media-element-state field in the on-screen debugger to save some vertical space.

✅ Testing

  • Renders on-screen debugger with on-demand stream
  • Renders on-screen debugger with livestream
Test engineer sign off

👀 See

image

10.2.1: Ensure play on track on switch (#379)

14 Apr 08:14
637d47c

Choose a tag to compare

📺 What

  • Ensure play on track switch so strategies have consistent behaviour.

🛠 How

  • Update MSE strategy to play() on track switch if paused.

10.2.0: Add `target-latency` and `current-latency` to Chronicle (Update of #361) (#378)

08 Apr 10:05
1bf1fef

Choose a tag to compare

📺 What

Adds MSE target latency and current latency reporting to the debug menu. Useful when debugging low-latency content, particularly on TV hardware where some decoder behaviours do not match what might be expected

🛠 How

Uses existing DebugTool.dynamicMetric() method to add these metrics each time a timeupdate event is called.

✅ Testing

Added underlying dash.js functions to the mockDashInstance. No additional unit tests were added.

Test Guidelines

Test engineer sign off

👀 See

New fields are seen below when the MSE strategy is chosen. The values NaN and 0 are seen when VOD content is played.

Screenshot 2024-10-30 at 17 06 22

The same changes are shown again, but using live low-latency content. Extra fields, along with the existing playback rate field, can be used to determine whether low-latency content is performing as expected.

Screenshot 2024-10-30 at 17 06 54

#361

10.1.2: Bump Dash to v4.7.3-5 (#377)

01 Apr 10:17
ca59c56

Choose a tag to compare

📺 What
Bump Dash to v4.7.3-5

🛠 How
Bump Dash to v4.7.3-5

10.1.1: Add releasinator config file (#376)

28 Mar 14:12
961b461

Choose a tag to compare

📺 What

In preparation for a change to the release automation, adds a config file for the bot "releasinator" (previously tvr-buildatron)

🛠 How

Copy existing release behaviour over into a config file in the root directory.

✅ Testing

After this change is merged, and the change to the release automation happens (likely Fri 28th March):

  • If the changes are successful a "test" release will be created and should not have any particular differences other than the name/image of the bot making the release.

10.1.0: Add Correct Initial Audio Settings (#375)

26 Mar 11:05

Choose a tag to compare

📺 What

Dash.js caches the last track used in local storage and selects the audio track based on selection priority and then max bitrate. This can result in the BroadcastMixAD (Audio Described) being selected against the users preference. This can manifest in two scenarios.

  1. When the last track selected was BroadcastMixAD, the user turns off their preference out of stream and then the user plays a stream with a BroadcastMixAD track, the BroadcastMixAD track will be selected.
  2. If the BroadcastMixAD track has a higher track selection priority in the manifest or has a higher max bitrate, the BroadcastMixAD audio track will be selected.

In both scenarios, the BroadcastMixAD track is selected when the users AD preference is off. This PR disables dash.js's media track caching and sets an initial audio preference.

🛠 How

  • Disables lastMediaSettingsCachingInfo
  • Sets initial audio settings to select role: main if Audio Described is not enabled at the start of stream.
  • Adds relevant units tests.

10.0.3: Use the Correct Name for Functions in MockBigScreenPlayer (#374)

20 Mar 19:18

Choose a tag to compare

📺 What

Corrects a function name used in MockBigScreenPlayer.

🛠 How

Renames setAudioDescribedEnabled to setAudioDescribed to match the actual API.

10.0.2: Add Guards Around Setting `cached.currentTime` (#373)

20 Mar 12:03

Choose a tag to compare

📺 What

Fixes an issue where cached.currentTime was not being set if mediaElement.currentTime was 0. In situations where the load was called with no initialPlaybackTime and the mediaElement.currentTime was not naturally updated, the time would stay as undefined, causing the readyHelper to not call the success callback and causing BSP to be stuck in an unready state.

🛠 How

Add, correct and unify guards around the setting of cached.currentTime in MSE strategy to ensure the value is a number.

✅ Testing

Added a unit test covering the aforementioned scenario.

10.0.1: Fix Docs Build (#372)

19 Mar 11:07

Choose a tag to compare

📺 What
Fix the Docs build

🛠 How
Update JSDoc, import syntax, and use jsdoc-plugin-typescript to allow for TS style imports in JSDoc

10.0.0: BADGERS-575: [BREAKING] Audio Described Unification (#365)

19 Mar 10:30

Choose a tag to compare

📺 What
Support a "Source Based" method of providing an, alternative, Audio Described stream with a new Media Block consisting of alternative sources which can be switched to and from mid stream. This approach is primarily intended for Native Strategy Devices but can work on any device given the streams are present and passed correctly (Assuming the device can play the stream and so on).

🛠 How

  • Refactor MediaSources to keep track of and index into a record of Connection Types, the design has been left open to make further additions along these lines easy in the future.

  • Expose a new, Unified, Audio Described API which can seamlessly be used with both this implementation, and the MSE Specific Implementation:

    • registerForAudioDescribedChanges (Previously registerForBroadcastMixADChanges)
    • unregisterForAudioDescribedChanges (Previously unregisterForBroadcastMixADChanges)
    • isAudioDescribedAvailable (Previously isBroadcastMixADAvailable)
    • isAudioDescribedEnabled (Previously isBroadcastMixADEnabled)
    • setAudioDescribed (Previously setBroadcastMixADEnabled)
  • Adds a new enableAudioDescribed option to Bigscreen's Init Options to start up with the AD Stream.

  • Various QoL Fixes and Refactors as encountered during development.

⚠️ TODO

  • Native Playback Strategy Tests
  • Test for BSP passing enableAudioDescribed through
  • MediaSources tests
  • PlayerComponent tests
  • Verify Failover Scenarios
  • Verify MSE Implementation
  • Write Docs for Generic Method
  • Cleanup
    • Consider removing audio-described-cdns-available in Chronicle and just add it to cdns-available when AD Stream is active? (Testers commented that current setup is confusing)

🚨 BROKEN

  • Callback is not fired if AD is on by default