Skip to content

Releases: bbc/bigscreen-player

10.9.0: Update Dash.js Version with Buffer Level Fix (#392)

30 Jun 11:14
7ff09e9

Choose a tag to compare

📺 What

Updates Dash.js with a new version that includes a bug fix for buffer level reporting when using DVB metrics.

🛠 How

Fixes an issue in Dash.js where the buffer level of text tacks is continually reported even when the track is disabled.

The buffer level value reported is a minimum. This results in the DVB Buffer Level being reported as 0 when subtitles are not in use.

10.8.0: Support setting and getting of playback bitrate (#391)

16 Jun 14:01
bdecb5d

Choose a tag to compare

📺 What

Changes to interface to support the setting of a bitrate, given a media kind (Audio/video), minimum and maximum bitrate for the selection of a representation within the bitrate range.

Provides an interface for returning the current bitrate setting.

🛠 How

Two new functions, setConstrainedBitrateInKbps and getPlaybackBitrate for setting and getting the playback bitrate respectively.

10.7.1: Initialise before setting protection data in MSE Strategy (#390)

03 Jun 12:33
5362700

Choose a tag to compare

📺 What

Initialise before setting protection data (as in dash.js examples). Add extra info logging.

🛠 How

  • Move initialize call
  • Info log [Protection prefixed messages to cover calls through to ProtectionController/ProtectionModel.

10.7.0: Expose additional metrics for low latency (#387)

20 May 10:45
0827d63

Choose a tag to compare

📺 What

Exposes playback rate events to the plugin interface as onPlaybackRateChanged, and adds current latency to the existing plugin event -onPlayerInfoUpdated.

🛠 How

For playback rate event, exposes Dash.js playback rate event to the plugin interface

10.6.2: Handle no default styles passed (#389)

19 May 13:56
4e81a8e

Choose a tag to compare

📺 What

Fixes an issue where if no default subtitle styles are passed initially, it is not possible to customise them going forward.

Cause - Dash.js is updated with undefined as the subtitle options, meaning there is no object available to set options against in future calls

10.6.1: Handle onSuccess not passed (#388)

19 May 13:54
5902ea3

Choose a tag to compare

📺 What

Adds check to ensure _callbacks.playerReady exists for player uses where the onSuccess callback is not used.

10.6.0: Add support for Dash.js rendered subtitles (#383)

15 May 13:46
f863428

Choose a tag to compare

📺 What

Extends subtitle functionality by adding the ability to use Dash.js rendered subtitles if declared in an MPD rather than using the existing side-chain.

Allows the rendering of subtitles delivered in fragmented chunks, as used for low-latency playback.

It does not implement the current customisation options that are available in the existing side-chain as Dash.js provides no interface to access the customisation options present in the BBC fork of imscJS.

A currently open PR imscJS #257 would enable customisation on upstream imscJS and work on Dash.js (imscJS Styling would allow this functionality to be added retrospectively.

🛠 How
By setting a new override - embeddedSubtitles, the side-chain is replaced by a new embeddedSubtitles object which enables text tracks in the MSE player

✅ Testing [Semi-optional]

Tests have been added to cover changes to the subtitle selector. In addition, coverage of the new dashsubtitles.js object is provided.

Test Guidelines

Test engineer sign off

♿ Accessibility [optional]

Provides optional subtitles when using low-latency playback through Bigscreen player without modifications to the existing side-chain rendering.

10.5.1: Ensure AD persists on source change (#385)

13 May 12:50
b0e8551

Choose a tag to compare

📺 What

  • Ensure AD persists on source change

🛠 How

  • Move setting track preference down into modify source from initial load.
  • On track change update audiodescribed.enable to reflect current state.

10.5.0: Use full entrypoint of dash.js, allow protection data to be used (#384)

06 May 14:11
33c979d

Choose a tag to compare

📺 What

Take the full dash.js entrypoint vs index_mediaplayerOnly, pass through dash.js protection data.

🛠 How

  • Update the dash.js entrypoint. Use the index vs the built main package entrypoint to allow consuming applications to decide what to bundle.
  • Use the same shape protection data as dash.js within the optional media.protectionData. This is exposed via the types.
  • Expose the protection data within mediaSources with the currentProtectionData function.
  • Set protection data on the dash.js media player.

10.4.0: Add new Low Latency Catchup Algorithm (#381)

23 Apr 09:57
716563e

Choose a tag to compare

📺 What

Updates version of Dash.js

🛠 How

Updates the version of Dash.js to smp-v4.7.3-6 which adds a new catchup mechanism for low latency that switches playback rates in steps instead of on a continuum. This catchup mechanism is expected to be better supported by TVs.

Additionally, introduces a liveThreshold to indicate when the user is too far away from the bleeding edge to be considered live.

Fixes issues preventing maxDrift from being disabled

Finally, ensures synthetic stalls behave as expected when using catchup in low-latency mode