Releases: bbc/bigscreen-player
10.9.0: Update Dash.js Version with Buffer Level Fix (#392)
📺 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)
📺 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)
📺 What
Initialise before setting protection data (as in dash.js examples). Add extra info logging.
🛠 How
- Move
initializecall - Info log
[Protectionprefixed messages to cover calls through to ProtectionController/ProtectionModel.
10.7.0: Expose additional metrics for low latency (#387)
📺 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)
📺 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)
📺 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)
📺 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 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)
📺 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)
📺 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
mainpackage 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
currentProtectionDatafunction. - Set protection data on the dash.js media player.
10.4.0: Add new Low Latency Catchup Algorithm (#381)
📺 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