Skip to content

Releases: bbc/bigscreen-player

10.12.3: Port Subtitle Changes from v4.7.4 (#405)

08 Sep 08:42
a3e0bdc

Choose a tag to compare

📺 What

Port Subtitle Changes from v4.7.4 (#4359)

🛠 How

Port changes made by @mattjuggins in #4359 released in Dash-Industry-Forum/dash.js v4.7.4.

This port preserves the passing of customisation options to IMSC.

10.12.2: Video frames not advancing ignore webkit (#404)

28 Aug 14:30
7a119d7

Choose a tag to compare

📺 What

Updates Dash.js to smp-v4.7.3-13

🛠 How

Updates Dash.js to smp-v4.7.3-13, brings in change to ignore WebKit devices from the videoFramesNotAdvancing method.

10.12.1: Don't Pass Abort Signal Into Playback Strategy (#403)

26 Aug 14:25
30e6277

Choose a tag to compare

📺 What

Ensure the order of the playback strategy by not passing the abort signal further down (without updating the strategies signature).

🛠 How

Removes abortSignal parameter in the call to strategy.

10.12.0: Introduce Abort Initialisation After TearDown (#400)

26 Aug 10:11
4502c96

Choose a tag to compare

📺 What

Introduces the concept of aborting initialisation if Bigscreen Player has already been torn down.

This prevents the issue where, if BSP is torn down during initialisation, TypeError: Cannot read properties of null (reading 'manifestType') or Cannot read properties of undefined (reading 'time') is thrown, depending on where mediaSources.time().manifestType is called. These errors can be caused by tearDown() tearing down and de-referencing mediaSources whilst BSP is in the process of initialising.

🛠 How

  • Introduce an AbortSignal which keeps the state of if BSP has been torn down. Also provides a throwIfAborted error which throws an AbortError.
    • The AbortError has a custom name and message.
  • Call signal.abort() on invocation of tearDown().
  • Add unit tests for abortutils.
  • Add integration tests to bigscreenplayer and playercomponent.

✅ Testing

Test engineer sign off

10.11.1: Video frames not advancing updates (#402)

26 Aug 09:59
44997c0

Choose a tag to compare

📺 What

Updates Dash.js with new version (smp-v4.7.3-12) to fix logic in videoFramesNotAdvancing function.

🛠 How

Brings in fix to isEnded within videoFramesNotAdvancing function in Dash.js.

10.11.0: Video frames not advancing updates (#401)

26 Aug 08:00
05065d0

Choose a tag to compare

📺 What

Updates Dash.js with new version (smp-v4.7.3-11) and adds total frames debugging.

🛠 How

Brings in additional checks to videoFramesNotAdvancing function in Dash.js. Checks that we're not at the start or end of playback. Ignores these periods. Additionally, ignores periods where the player is seeking.

Passes further information with the PLAYBACK_FROZEN event to aid debugging.

Adds frames-total as a static metric to aid debugging of this issue or similar ones in the future.

10.10.2: Video frames not advancing updates (#399)

20 Aug 08:10
1e8de34

Choose a tag to compare

📺 What

Update the videoFramesNotAdvancing implementation to handle additional invalid or inaccurate values being reported by the Video Quality API.

🛠 How

Deals with 3 observed cases:

  • Increases the default thresholdInSeconds to 5. As many WebKit-based TV environment only appear to provide an update to this value every ~2-seconds
  • Handle cases where some devices always report the maximum value of 32-bit signed integer as their totalVideoFrames value on the Video Quality API when playing a live stream. Caused by some implementations using totalVideoFrames = mediaTime * frameRate
  • Finally, only trigger when frames are explicitly not changing, i.e previousFrames !== currentFrames. Some devices appear to reset totalVideoFrames to 0 if the decoder is reinitialised.

10.10.1: Move onPlaybackFrozen to message and not error (#398)

18 Aug 11:21
c938dde

Choose a tag to compare

📺 What

Reduce onPlaybackFrozen false positives being reported to chronicle.

🛠 How

Move from error to info debug reporting

10.10.0: BADGER-204 Update Dash.js to Handle cases where Video Freezes (#396)

14 Aug 14:03
dc667bf

Choose a tag to compare

📺 What

Updates the version of Dash.js and the source of playback rate infomration

🛠 How

Updates Bigscreen player with a new version of Dash.js that adds two new settings;

  • lowLatencyStallThreshold - set a 0.3s to match conventional DASH streaming
  • videoFramesNotAdvancing.enabled - intended to catch and handle a chromium bug where video can freeze but audio continues.
  • videoFramesNotAdvancing.threshold - the time in seconds the player must be in video frozen state before the handling mechanism above kicks in

Additionally, updates the playback rate plugin interface to trigger off the media element rather than the Dash.js event bus, this results in playback rate changes to 0 being available which can help validate the above settings

10.9.1: Fix type errors on video only content (#393)

10 Jul 08:29
35602ea

Choose a tag to compare

📺 What

Ensure no type errors on video only content

🛠 How

Check for video/audio tracks in the manifest.