Release Notes (Web)

8.158.0

Released: 2024-03-25

Added

Fixed

  • Potential stall when switching to a redundant stream in case of HLS live stream failover
  • IMA module throwing an exception when calling load or unload before the Ad has started
  • Playhead jumping around when scrubbing on seekbar in Safari on iOS
  • Excessive amount of ID3 PlayerEvent.Metadata events being emitted on Safari
  • Time jump after source loading due to player retaining playback time of previous source

8.157.0

Released: 2024-03-18

Added

  • Support for DASH <Label> elements

Fixed


8.156.0

Released: 2024-03-11

Fixed

  • Playback not recovering when seeking back on PlayStation 5
  • Playback not starting on a second player instance on Chrome/Edge when a persistent license is configured

8.155.0

Released: 2024-03-04

Added

  • vtt is treated as a valid codec string for WebVTT

Changed

  • Update bundled analytics collector from version 2.32.4 to 2.32.5 (release notes)
  • Update OMSDK to version 1.4.12

8.154.0

Released: 2024-02-26

Added

  • WISH ABR tweak property USE_RATE_BASED_SELECTION_ON_SEEKING that bypasses lowest quality decision when seeking
  • VVC codecs are now supported and chosen with priority in multi-codec track selection

Fixed

  • Improvements to HLS source processing during startup

8.153.0

Released: 2024-02-22

Fixed

  • VoD streams stalling or skipping content when BaseMediaDecodeTime values exceed threshold on TVs
  • Playback on Tizen 2016 for streams with relative URLs in manifest
  • Forced subtitles not being shown on streams with muxed together audio and video
  • Forced subtitle track not getting selected when language matches but regional localization does not

8.152.0

Released: 2024-02-12

Fixed


8.151.0

Released: 2024-02-06

Added

  • Polyfill for String.prototype.endsWith

Changed

  • Update bundled analytics collector from version 2.32.3 to 2.32.4 (release notes)

Fixed

  • Player skipping first segment of MPEG-TS stream when it doesn't start with a keyframe
  • Player not respecting SourceConfigOptions.startOffset after pre-roll ad in Safari native HLS playback
  • Replay in ViewMode.PictureInPicture not working
  • Different scor and correlator query parameter set for each ad in an AdPod when IMA ad module is used
  • Player not replacing escaped characters in URL fields in DASH manifests
  • HLS live streams stalling indefinitely once all representations have been tried, even if further requests would succeed
  • Race condition which would prevent restoring playback after client-side ad
  • UI: FCC subtitle settings menu showing two options with the same value

8.150.0

Released: 2024-01-29

Changed

Fixed

  • Player failing to start in environments without cookie access
  • Broken playback for short HLS livestreams in Safari
  • Uncaught promise rejection when disposing the player during startup
  • Progressive live stream not starting
  • Duplicate Ads returned by Google Ad server
  • Playback not resuming from temporarily offline stream

8.149.0

Released: 2024-01-22

Added

Fixed


8.148.1

Released: 2024-01-25

Fixed


8.148.0

Released: 2024-01-15

Changed

  • Update bundled analytics collector from version 2.32.2 to 2.32.3 (release notes)

Fixed

  • Stalling at discontinuity gaps in HLS live streams
  • Player sometimes getting stuck at period transitions

8.147.0

Released: 2024-01-08

Fixed

  • Delay DRM preparation until an encrypted period is encountered on WebOS when immediateLicenseRequest is enabled
  • Player sometimes getting stuck on low buffer on PlayStation 4

8.146.0

Released: 2023-12-27

Fixed


8.145.0

Released: 2023-12-18

Fixed

  • Missing SOURCE_ERROR with DRM streams if no playable audio or video track is left due to DRM errors or HDCP restrictions

8.144.0

Released: 2023-12-11

Added

Changed

  • Update bundled analytics collector from version 2.32.1 to 2.32.2 (release notes)

Fixed


8.143.2

Released: 2024-01-03

Fixed


8.143.1

Released: 2023-12-06

Fixed


8.143.0

Released: 2023-12-04

Added

Changed

Fixed

  • HLS failover for streams with multiple audio qualities
  • HLS failover support not working on startup when the source has no explicit codecs in the manifest
  • UI: Potential name clashing in CSS animations due to missing bmpui prefix

8.140.2

Released: 2023-12-04

Added

Fixed


8.142.0

Released: 2023-11-22

Changed

  • Update bundled analytics collector from version 2.32.0 to 2.32.1

Fixed

  • Player breaks if browser's Performance API does not support getEntriesByName method
  • Switching between clear and PlayReady-protected audio tracks on Edge Chromium
  • UI: Crash when receiving a SourceLoaded event during scrubbing

8.141.0

Released: 2023-11-13

Added

Fixed

  • Performance improvements for quality switches and seek operations across DASH-Periods and HLS-Discontinuities
  • Tracking URLs not being pinged with IMA module when VAST response is empty and VAST_NO_ADS_AFTER_WRAPPER error is thrown
  • Subtitle labeling API not exposing track label and id on Safari

8.140.1

Released: 2023-11-09

Fixed

  • Performance improvements for quality switches and seek operations across DASH-Periods and HLS-Discontinuities

8.140.0

Released: 2023-11-06

Fixed

  • Performance improvements of seek operations for non-native playback
  • Inaccurate getMaxTimeShift while casting to CAF

8.139.0

Released: 2023-10-30

Added

Fixed

  • Inaccurate seeking with DASH SegmentTimeline streams if presentationTimeOffset is greater than the time value of the first timeline entry

8.138.0

Released: 2023-10-23

Changed

  • If the player fails to play a quality level due to HDCP restrictions it will no longer throw the DRM_RESTRICTED_OUTPUT error but rather emit a WarningEvent for the failed DRM key and try to fall back to quality levels associated with different keys. Only if all keys have been tried a source error will be thrown.

Fixed

  • Playback freezing on HLS discontinuity change on PS4
  • MINIMAL_BACKWARD_BUFFER_CLEARING_INTERVAL tweak value not being respected

8.137.0

Released: 2023-10-16

Fixed

  • Infinite stalling when segments with same url are present in different discontinuities in HLS live sources
  • Playback stall due to downloading two consecutive segments in a loop
  • Incorrect live edge computation when playing multi-period SegmentTimeline streams with startOffset

8.136.0

Released: 2023-10-09

Added

Changed

  • Bundled analytics collector version from 2.31.2 to 2.32.0

Fixed

  • No errors being thrown after receiving an invalid Widevine DRM License
  • No CueExit event when switching subtitle tracks when NativePlayer is used
  • Some HLS tags are not parsed correctly when tags are in a particular order
  • Segment download cancellation not working for MPEG-TS streams when startupBitrate is configured

8.135.1

Released: 2023-10-04

Fixed

  • Some HLS tags are not parsed correctly when tags are in a particular order

8.135.0

Released: 2023-10-02

Changed

  • Considerably improved HLS manifest parser performance

Fixed


8.134.0

Released: 2023-09-25

Added

Changed

  • UI: When having a spatial navigation and using a mouselike device, components will lose focus when the mouse leaves the hovered component. Spatial navigation will continue at the last active component when using arrow keys again.
  • PlayerAPI.getAvailableAudioQualities for HLS streams now returns bitrates based on a preset of values, as opposed to returning 0
  • Update bundled analytics collector from version 2.31.1 to 2.31.2
  • A MODULE_MISSING error is thrown when attempting to play AES-128 encrypted content without importing the Crypto module first
  • A WarningEvent is dispatched when passing an invalid subtitle object to PlayerSubtitlesAPI.add or SourceConfig.subtitleTracks

Fixed

  • Audio quality adaptation not working properly for HLS
  • Legacy API Doc URLs pointing to previous player version

8.133.0

Released: 2023-09-18

Changed

  • Player to trigger PlayerEvent.CueExit and PlayerEvent.CueEnter events immediately after seeking, even when paused
  • UI:: On seek/timeshift operations the UI will only remove subtitle cues which do not enclose the seek target instead of removing all

Fixed

  • DRM_INIT_DATA_MISSING error sometimes being thrown on PS4 when playing mixed protected and clear content
  • VAST pod ad not playing with BitmovinAdvertisingModule if it provides a Wrapper and the ad in wrapper response does not specify a sequence
  • Missing Metadata events when using native_hls_parsing and the same URL is present in different discontinuities inside the playlist

8.132.0

Released: 2023-09-11

Added

Changed

Fixed

  • Playback stalling on WebOS if the DRM source is reloaded with DRMConfig.immediateLicenseRequest while the license request is still ongoing
  • PlayerAPI.setAudio on live streams could lead to infinite stalling on Tizen TVs when the video buffer was already full

8.131.0

Released: 2023-09-05

Changed

Fixed

  • ABR cancelling and re-downloading the same segments in case of high RTT
  • HLS tag names exposed through PlayerManifestAPI.hls not containing EXT-X
  • Wrong segment loaded when recovering from a failed segment request
  • Choosing too high qualities when tying to load segment that failed to load in a different quality
  • Buffer gap after recovering from a segment request that fails or is cancelled for taking too long with DASH SegmentTimeline streams
  • Failing to load an HLS source on Tizen 2016 when hls_parse_manifest_in_worker is enabled

8.130.1

Released: 2023-09-11

Fixed


8.130.0

Released: 2023-08-30

Fixed

  • Potential A/V alignment issues in transmuxed streams on startup
  • Playback failure for multiple representations with same bandwidth in DASH SegmentBase
  • Potential A/V alignment issues or gaps in transmuxed streams on discontinuity switches
  • Improve HLS playlist processing efficiency slightly
  • Player sometimes stalling after falling out of the DVR window when ENABLE_SEEK_FOR_LIVE is set
  • Player sometimes stalling after falling out of the DVR window when immediateLicenseRequest is set

8.129.1

Released: 2023-08-31

Fixed

  • ABR logic cancelling and re-downloading the same segments in case of high request round trip time
  • Wrong segment loaded when recovering from a failed segment request
  • Player potentially choosing too high quality when trying to load segment that failed in a different quality

8.129.0

Released: 2023-08-16

Added

Changed

  • Updated OMSDK to version 1.4.8

Fixed


8.128.0

Released: 2023-08-07

Added

Fixed

  • Uncaught error when prefetching unencrypted content if content before the ad was ClearKey-encrypted
  • Playback stuck when transitioning from period with ClearKey-encrypted content to period with unencrypted content

8.127.0

Released: 2023-07-31

Fixed


8.126.0

Released: 2023-07-24

Added

Fixed

  • Companion ad container sizes being ignored by IMA ad module
  • Broken player instantiation on Tizen 2016 due to missing polyfill
  • UI: Settings panel does not close on a single tap on mobile devices
  • UI: Restoring volume on unmute not working when the volume was changed through the player API

8.125.1

Released: 2023-07-18

Changed

  • Update bundled analytics collector from version 2.31.0 to 2.31.1

8.125.0

Released: 2023-07-17

Added

  • UI: onActiveUiChanged event on the UIManager that is dispatched when the UI manager switches to a different UI variant
  • UI: Readonly currentUi field on the UIManager that exposes the active UIInstanceManager

Changed

  • Update bundled analytics collector from version 2.30.0 to 2.31.0
  • Align return type and update description of buffer.getLevel API

Fixed

  • Player sometimes re-loading segments upon timeshifting or when the currently playing period drops out of the DVR window
  • PlaybackConfig.timeShift is not respected with NativePlayer
  • Player skipping the load of an entire period due to a race condition
  • Switching from one player technology to another in Firefox when a Google Cast v3 remoteControl config is specified
  • Playback sometimes getting stuck on Tizen 2017 models when seeking across Periods/Discontinuities

8.124.0

Released: 2023-07-10

Fixed

  • Discontinuity switching on PlayStation 4
  • Leftover video element styling from VPAID ad break
  • Updated PlayStation 5 Tweaks documentation
  • Closed captions disappearing on period switch

8.123.0

Released: 2023-07-03

Fixed

  • Wrong indexing of segments in DASH SegmentTimeline streams potentially causing playback issues
  • Segment download not being cancelled when playing period drops out
  • Playback failure due to missing init segment when switching periods
  • UI: When more than one UI with spatial navigation is managed by the UI manager, all UIs would handle key events, instead of only the active one.

Removed

  • ClassList polyfill as it is not required for supported devices

8.122.0

Released: 2023-06-26

Changed

  • Update bundled analytics collector from version 2.29.4 to 2.30.0

Fixed

  • ABR improvements on SmartTVs
  • Typo in public readme.md for npm.js
  • Occasional stutter on playback start if autoplay is configured
  • Timeshifting backwards sometimes causing playback to break
  • Player sometimes getting too close to real live edge after timeshifting to 0
  • Player sometimes reporting a buffer level of null during startup on Safari
  • Player potentially cancelling and downloading the same segment

8.121.0

Released: 2023-06-19

Changed

  • Update bundled analytics collector from version 2.29.3 to 2.29.4

Fixed

  • Playback stuck after the first ad if multiple ads are present in one ad break with Bitmovin Advertising Module in Chrome on Android
  • Delayed timing of segment requests when playing HLS live streams

8.120.0

Released: 2023-06-05

Added

  • WebRTC/WHEP support for 2020 Tizen TVs

Fixed

  • PlayStation 5 sometimes freezing on SSAI transitions
  • PlayStation 4 sometimes missing PlayerEvent.PlaybackFinished event
  • WebRTC/WHEP support detection
  • PlayerEvent.VolumeChanged not containing the sourceVolume and targetVolume fields when playing back a WHEP stream
  • Missing PlayerEvent.Playing on PlayStation 4
  • Failing to restore from client side ad to main content using Bitmovin Advertising Module on PlayStation 4 when playing progressive assets
  • Playback failure in Safari when using native_hls_parsing if HLS playlist URLs contain the string $1

8.119.0

Released: 2023-05-30

Added

Fixed

  • Not being able to exit fullscreen mode by clicking on UI button in Safari 16.4+
  • Startup failures on Safari 16+
  • Playback of muxed live streams on TVs affected by a timestamp limit

Removed

  • Unused CustomEvent polyfill

8.118.0

Released: 2023-05-22

Changed

  • Update bundled analytics collector from version 2.29.1 to 2.29.3
  • Limit update interval of DASH live streams to minimum 1 second
  • Update analytics types CollectorConfig, AnalyticsConfig

Fixed

  • Improve memory efficiency of live DASH SegmentTimeline parsing
  • Memory leak when playing DRM-protected content on WebOS

8.117.0

Released: 2023-05-15

Fixed

  • Improve performance of DASH SegmentTimeline processing
  • Failing MSE support checks on Chromium preventing playback of DASH and HLS sources
  • When using limitToPlayerSize, a quality matching the precise player dimensions is not selected

8.116.0

Released: 2023-05-08

Fixed

  • Improvements to enhance the overall performance

8.115.0

Released: 2023-05-02

Fixed

  • Playback breaking due to high BaseMediaDecode time values on WebOS
  • Unnecessary querying of supported DRM capabilities causing warning messages
  • PlayerResized event not fired if CSS classes are used to change size
  • HLS Playback failure when seeking to a new a discontinuity just after having started to load a different one

8.114.0

Released: 2023-04-24

Fixed

  • Player sometimes getting stuck when seeking close to a discontinuity boundary between encrypted and clear content
  • Missing PlaybackFinished event on PlayStation4 when seek is called after end of stream is reached
  • Inconsistent playback start after pre-roll ad in Safari 15 and later
  • HLS playlist processing inefficiencies

8.113.0

Released: 2023-04-17

Added

Changed

  • UI: Updated dependencies
  • Cache variant playlist during codec probing for HLS live streams

Fixed

  • Potential errors when init segments share the same URL across representations

8.112.0

Released: 2023-04-10

Fixed

  • Broken playback on PS4 after transitioning from unencrypted to encrypted content
  • Failed segment requests sometimes retried too many times before being skipped on live streams

8.111.0

Released: 2023-04-03

Fixed

  • HLS parsing inefficiencies
  • Player not emitting TimeChanged events on PS4 with DRM-protected sources
  • Player potentially cancelling segment downloads when the browser reports loadedBytes: -1
  • Broken playback when clicking play after an autoplay failure with client side ads on Safari 16
  • Slow startup with HLS when network slows down after source loading

8.110.0

Released: 2023-03-23

Added

  • UI: Config option forceSubtitlesIntoViewContainer to handle overflowing subtitle labels

Fixed

  • Player sometimes getting stuck when seeking close to a discontinuity boundary in MPEG-TS streams
  • Player sometimes not resuming playback after seeking on 2018 Tizen TVs
  • Player sometimes cancelling segment downloads of the lowest quality when onVideoAdaptation callback is used
  • Enabling fragmented subtitle track during livestream playback resulted in no cue events being fired

8.109.0

Released: 2023-03-13

Fixed

  • Random playback failures when trying to play back IMA ads on TVs

Known Issues

  • Slow startup due to runaway download cancellation under certain circumstances when using onVideoAdaptation callback

8.108.0

Released: 2023-03-06

Added

  • UI: Scrubbing during a FaceTime call automatically creates a SharePlay suspension to not synchronize scrubbing to other participants

Changed

  • Update bundled analytics collector to version 2.29.1

Fixed

  • Player returning relative values for getSeekableRange and getBufferedRanges in livestreams on Safari with NativePlayer when EXT-X-PROGRAM-DATE-TIME is present in the manifest
  • Audio-only stream failing to play and throwing an error on Safari when native_hls_parsing is enabled
  • Custom player builds in the Dashboards

Known Issues

Slow startup due to runaway download cancellation under certain circumstances when using onVideoAdaptation callback


8.107.1

Released: 2023-02-28

Changed

  • PlayerAPI.getSeekableRange and PlayerAPI.getBufferedRanges to return relative values again to prevent problems with PlayerAPI.timeShift and PlayerAPI.seek in HLS streams with EXT-X-PROGRAM-DATE-TIME tags on Safari with player version 8.107.0

8.107.0

Released: 2023-02-27

Fixed

  • Player emitting StallStarted and StallEnded events while timeshifting
  • PlayerAPI.getSeekableRange and PlayerAPI.getBufferedRanges returning relative instead of absolute values on Safari for HLS live streams with EXT-X-PROGRAM-DATE-TIME tags
  • Potential decode error due to gap compensation logic sometimes applying a wrong timestamp offset on HLS discontinuities for fMP4 streams on LG webOS
  • Race condition causing segments to be pushed to buffer using the timestamp offset of a following HLS discontinuity on TVs
  • Dynamically scheduled linear ad sometimes getting skipped when overlay ad is playing using IMA ad module

Known Issues

  • PlayerAPI.seek and PlayerAPI.timeShift not working as expected with HLS streams that have an EXT-X-PROGRAM-DATE-TIME tag on Safari. Fixed in 8.107.1.
  • Slow startup due to runaway download cancellation under certain circumstances when using onVideoAdaptation callback

8.106.0

Released: 2023-02-20

Changed

  • Disabled download cancellation for HLS streams with multiple audio qualities to prevent runaway segment download cancellations

Fixed

  • Playback failure because of race condition between backward buffer clearing and timestamp rollover handling
  • TypeError: Cannot read property isBufferBlockSwitchOngoing of undefined
  • Downloads being cancelled too late when headers weren't yet received
  • Delayed playback start for HLS streams due to first requested segment sometimes not matching initially loaded playlist and thus requiring an additional playlist request

Removed

  • Remove leftover v7 tweak autoqualityswitching from documentation

Known Issues

  • Slow startup due to runaway download cancellation under certain circumstances when using onVideoAdaptation callback

8.105.0

Released: 2023-02-13

Added

  • MIN_SIZE_FOR_GAP_SKIPPING tweak to avoid jumping gaps that the browser can handle on its own

Fixed

  • UI: Circular dependency in the export of AudioTrackListBox
  • Improved accuracy when seeking close to buffer end
  • Leftover buffer range after a timestamp rollover buffer clearing causing playback stall

8.104.0

Released: 2023-02-06

Added

  • UI: UIConfig.enterFullscreenOnInitialPlayback flag to enter fullscreen when clicking PlaybackToggleButton or HugePlaybackToggleButton to initiate the initial playback

Fixed

  • Sudden playback stall caused by unexpected buffer clearing on TVs soon after timestamp rollover
  • Loading a new source while in the middle of a content transition

Removed

  • Legacy transmuxer along with TweaksConfig.experimental_transmuxing flag

8.103.0

Released: 2023-01-30

Added

  • PlayStation 4 support through PS4 module that addresses the following issues
    • App crash when trying to playback DRM content
    • Incorrect event ordering when starting playback of a DRM protected asset
    • Disabled setting of playbackRate when playing adaptive bitrate streams as it results in stalling
  • UI: Language localization for Spanish

Fixed

  • Performance issues with HLS stream carrying a lot of DATERANGE tags
    • Frequent stalls during SSAI sections of HLS streams containing large DATERANGE tags on Tizen TVs
    • Memory leak causing performance degradation after long sessions of HLS live streams that feature DATERANGE metadata
  • Missing Bitmovin header in UI release files
  • Broken UI export in the bitmovin-player npm package preventing import of bitmovin-player/bitmovinplayer-ui.css and bitmovin-player/bitmovinplayer-ui.js

Known Issues

  • Seeking after playback finished results in unexpected behaviour on PS4
  • Player seeks to start of the buffer after playback finished on PS4 with certain assets

8.102.0

Released: 2023-01-23

Fixed

  • Infinite stalling when seeking over, and then seeking back into a discontinuity with different encryption state

Known Issues

  • Broken UI export in the bitmovin-player npm package preventing import of bitmovin-player/bitmovinplayer-ui.css and bitmovin-player/bitmovinplayer-ui.js

8.101.0

Released: 2023-01-17

Added

  • UI: Export Localization and SpatialNavigation to use in external UI configuration

Changed

  • Update bundled analytics collector to version 2.28.1

Known Issues

  • Broken UI export in the bitmovin-player npm package preventing import of bitmovin-player/bitmovinplayer-ui.css and bitmovin-player/bitmovinplayer-ui.js

8.100.0

Released: 2022-12-20

Added

  • UI: Support for spatial navigation
  • UI: SmartTV UI via UIFactory.buildDefaultTvUI

Fixed

  • Failing to play protected audio-only HLS streams

8.99.0

Released: 2022-12-01

Added

  • StyleConfig.container callback config option to specify a container for player styles

Changed

  • Clear buffers by default on Tizen 2017 in case of discontinuity changes, unless the tweak hls_clear_buffers_on_discontinuity_switches is disabled

Fixed

  • Broken playback after HLS discontinuity change due to missing SourceBuffer for either audio or video
  • Broken playback in HLS live streams without #EXT-X-DISCONTINUITY-SEQUENCE and segments with duration of 0
  • Seeking backward sometimes inaccurate or leading to playback getting stuck
  • Incorrect thumbnails appear in DASH streams with non-zero MPD availabilityStartTime or Period.Start

8.98.0

Released: 2022-11-22

Added

  • TweaksConfig.parse_emsg_boxes tweak to disable parsing of emsg boxes from MP4 segments

Fixed

  • Setting time on ending boundary of a buffered range sometimes preventing playback from resuming after a seek
  • Playback freeze with HLS SSAI live stream with growing DVR window when #EXT-X-DISCONTINUITY-SEQUENCE tag is not present
  • Inefficiencies in metadata handling causing playback stutters with long streams and large amounts of inband metadata
  • Reset IMA AdsManager on ALL_ADS_COMPLETED event to ensure unique IMA scor query parameter for each ad request
  • Audio not being audible on Samsung Tizen 2017 for streams with large timestamps

Removed

  • Obsolete polyfill for atob and btoa browser APIs for Base64 de-/encoding

8.97.0

Released: 2022-10-25

Changed

  • DASH and HLS manifest parsing errors to be more descriptive

Fixed

  • Playback sometimes jumping forward a few seconds when playing through a timestamp rollover on TVs
  • Promise returned by load not rejecting when loading a HLS playlist as a DASH source
  • Subtitles not showing up when custom labeling is applied to a HLS source
  • Slight chance of 3rd AdQuartile event not getting dispatched on short ads when using IMA SDK
  • Playback looping or getting stuck after gap is skipped on Tizen

8.96.0

Released: 2022-10-11

Changed

  • The player will now throw an error after it has exhausted all available DRM licenses and none worked

Fixed

  • PlayerEvent.Playing and PlayerEvent.Ready being emitted on PS5 before a DRM license response is received
  • PlayerAPI.getCurrentTime briefly returning inaccurate value when crossing DASH period boundaries and HLS discontinuities, e.g. on SSAI streams

Known Issues

  • On Firefox version 105 the video element sometimes does not emit an ended Event leading to problems with Ad transitions. Firefox version 106 does not seem to have the same error and is scheduled to be released on 2022-10-18.

8.95.2

Released: 2023-02-10

Added

  • MAX_ALLOWED_BANDWIDTH_ESTIMATION config to allow capping the bandwidth observations to a max value in the adaptation logic
  • MIN_SIZE_FOR_GAP_SKIPPING tweak to avoid jumping gaps that the browser can handle on its own

Changed

  • Increase impact of RATE_SAFETY_MARGIN_PERCENTAGE in download prediction logic

Fixed

  • Improve download cancellation policy in the case of very high Time-To-First-Byte
  • Fix TypeError Cannot read property 'readyState' of undefined
  • Performance hog caused by stringification and hashing of potentially large metadata events
  • Sudden playback stall caused by timestamp rollover leaving leftover range after buffer clearing
  • Processing time of Date Range metadata steadily increasing over time
  • Race condition due to backward buffer clearing getting executed on a timestamp rollover
  • Backward buffer clearing removing the entire buffer due to wrong time mapping
  • Player sometimes loading variant playlists twice before scheduling segment downloads on startup
  • Loading a new source while in the middle of a content transition

8.95.1

Released: 2022-12-01

Fixed

  • Broken playback after HLS discontinuity change due to missing SourceBuffer for either audio or video

8.95.0

Released: 2022-09-27

Changed

  • The formerly experimental transmuxer is now considered stable and used by default, hence the default value of TweaksConfig.experimental_transmuxing now changed from false to true. For the time being, it is possible to switch back to the legacy transmuxer by setting this flag to false. Included are various bug fixes and experimental support for CEA-708 closed captions via TweaksConfig.parse_cea_708_caption

Fixed

  • Thumbnails do not appear in DASH streams with no segmentTemplate@startNumber
  • Player unexpectedly stalling at discontinuity boundary when playing SSAI streams on Tizen even though buffer is available
  • Memory leak when using TweaksConfig.native_hls_parsing in Safari since late 15 versions with live streams that have a growing DVR window
  • Memory leak caused by leftover performance marks
  • TypeError Cannot read property 'isPaused' of null
  • TypeError Cannot read property 'seekingOrTimeshifting' of null
  • Seeking after player.load() loaded segments from the beginning instead of the seek target
  • getDroppedVideoFrames() API always returning 0 on Firefox
  • Mid-playback stalls with multi period/discontinuity streams on TVs

Removed

  • Support for HLS MPEG-TS streams with multiple audio tracks muxed into the same segment. The player is now always defaulting to the first audio track. Note: This legacy feature was removed in the new transmuxer implementation but is still supported when using the legacy transmuxer.

8.94.0

Released: 2022-09-13

Fixed

  • Frequent stalling with HLS SSAI live streams on smart TVs
  • Player pausing unexpectedly during content transitions on TVs
  • DVRWindowExceeded handling causing repeated timeShifts and potentially infinite stalling

8.93.0

Released: 2022-08-30

Added

  • hls_clear_buffers_on_discontinuity_switches tweak to clear buffers on discontinuity changes on TVs
  • load() promise rejection message

Changed

  • Prohibit changing the playback rate on PlayStation 5 when playing adaptive bitrate streams to prevent stalling

Fixed

  • Intermittent stalls and playback failures when playing back SSAI HLS streams on WebOS
  • Chance of getting stuck at period switch or discontinuity transition on low-end devices
  • No PlaybackFinished event on PlayStation5 when audio content is longer than video
  • UI: Duration format not getting updated from `
  • mm:sstohh:mm:ss`

Known Issues

  • Rare chance of freezing on HLS SSAI live streams. Can be alleviated by setting tweak hls_clear_buffers_on_discontinuity_switches to false

8.92.2

Released: 2022-11-03

Fixed

  • Playback freeze with HLS SSAI live stream with growing DVR window when #EXT-X-DISCONTINUITY-SEQUENCE tag is not present

8.92.1

Released: 2022-10-27

Added

  • TweaksConfig.parse_emsg_boxes tweak to disable parsing of emsg boxes from MP4 segments.

Fixed

  • Inefficient metadata handling causing playback stutters with long streams and large amount of inband metadata.

8.92.0

Released: 2022-08-16

Fixed

  • Playback not starting for HLS Live streams on WebOS when forcing native technology for hls in PlayerConfig.playback.preferredTech

8.91.0

Released: 2022-08-02

Added

  • Support for audio track switching between muxed AV and external audio
  • Option to disallow the player to use the localStorage via PlayerConfig.storage.disableStorageApi
  • Option to disallow the ad module to use the localStorage via AdvertisingConfig.disableStorageApi

Fixed

  • PlayerAPI.setAudio does not work when PlaybackConfig.audioLanguage is set
  • Ignore styp box with value lmsg (defined only for DASH) when the source is HLS
  • HLS DEFAULT property not being respected when audio is muxed with video
  • Memory leak on Chromium-based browsers with HLS live streams containing Data URLs in playlists

8.90.0

Released: 2022-07-19

Fixed

  • Seeked event triggering prematurely on Tizen 2016 and IE
  • Advertising modules (IMA and BAM) throwing an AdError when VMAP includes escaped characters
  • Source not loading in iOS/iPadOS WebViews that have the mediaTypesRequiringUserActionForPlayback configuration option set
  • Main content not resuming after VPAID ads that triggered an AdPaused event on ad completion
  • PlayStation 5 Module breaking DRM playback
  • Replay sometimes not working after post-roll ad break
  • Parsing of AC-4 and EC-4 codec strings

8.89.0

Released: 2022-07-05

Added

  • HLS_SYNC_SEGMENT_PLAYBACK_TIME_VIA_MEDIA_SEQUENCE tweak to enable synchronizing segment playback time between HLS playlists using X-MEDIA-SEQUENCE playlist tags. Enabling this tweak can help resolving playback stalls occurring during quality switching.

Fixed

  • IMA Advertising module sometimes scheduling the same AdBreak twice
  • TypeError Cannot read property 'fireError' of null
  • player.destroy() failing to tear down player and causing it to continue playback if casting is enabled in CastConfig
  • Memory leak in DASH live streams on Chromium browsers

8.88.0

Released: 2022-06-21

Added

  • PlayStation 5 Module
  • playstation_5.playmode tweak to define hardware resources when playing multiple videos at the same time
  • playstation_5.esvm tweak to toggle Enhanced Security Video Mode
  • playstation_5.pass_through tweak to toggle audio pass through
  • Support for PlayReady-protected content playback with SL-3000 on Playstation 5 via esvm tweak

Fixed

  • Unexpected PlaybackFinished when switching from Live to Vod on Safari 15
  • Removal of Representations with DRM Errors inside merged AdaptationSets got undone by live manifest updates
  • Playback getting stuck at mid-roll ad with DRM-stream on WebOS 2017 highend

Changed

  • Improved stalling behavior for HLS streams without EXT-X-INDEPENDENT-SEGMENTS tags
  • Segment download cancellation is now disabled during codec detection for HLS streams

8.87.0

Released: 2022-06-07

Added

  • SourceConfigOptions.shouldRecreateSourceBuffersOnPeriodSwitch to allow overwriting the default player behavior concerning recreation of SourceBuffers on Period switch

Fixed

  • Pre-rolls not starting on Chrome for iOS after an autoplay failure
  • TypeError Unable to get property 'ready' of undefined or null reference
  • TypeError Cannot read properties of null (reading 'canSwitchToBufferBlockForTime')
  • TypeError this[_$_d149[483]] is null
  • TypeError Unable to get property 'has' of undefined or null
  • TypeError Cannot read properties of null (reading 'getPropertyValue')
  • TypeError Cannot read properties of undefined (reading 'dispatch')
  • TypeError Cannot read properties of null (reading 'dispatchEvent')
  • TypeError Cannot read properties of null (reading 'isTimeShifting')

8.86.0

Released: 2022-05-24

Added

  • Playback is always allowed on domain 127.0.0.1 without requiring license authentication

Changed

  • A MODULE_MISSING warning is now emitted when an additional module is needed to parse CEA captions

Fixed

  • Modular player requiring DASH module to play HLS streams
  • Modular player requiring ContainerTS module to play fMp4 streams
  • Modular player requiring ContainerMp4 module to play MPEG-TS streams
  • DASH Streams with empty EventStream.Event tag not starting
  • Main content restoration occasionally failing when using IMA advertising module
  • Potential minor memory leak when cast is enabled
  • Poster HTML element not getting disposed when destroying the player before starting playback

8.85.0

Released: 2022-05-10

Fixed

  • Player sometimes getting stuck on content restorations after client side ad playback
  • Missing ads on Safari with DRM-protected content
  • Playback sometimes getting stuck at content encryption changes for HLS
  • Player stalling indefinitely when transitioning from video-only period to audio-video
  • Documentation for SubtitleCuePosition specifying wrong row and column range
  • Samsung Tizen 2018+ TVs not choosing AC-3 audio with DRM-protected streams, although supported
  • Seeked event sometimes not being triggered in multi period scenarios

8.84.0

Released: 2022-04-26

Added

  • Added a parse_cea_708_caption tweak in TweaksConfig to support both CEA-708 and CEA-608 with the experimental_transmuxing tweak

Fixed

  • Ready event triggered before promise of player.load() resolves for progressive sources
  • Logging of unhandled errors in event callbacks
  • Unhandled exceptions sometimes being visible in logs when playing HLS content with metadata

8.83.0

Released: 2022-04-12

Added

  • Warning event with code PLAYBACK_INVALID_DATA_SEGMENT_ENCOUNTERED when encountering an invalid data segment

Fixed

  • Incorrect segments being loaded for SegmentTimeline streams when the timeline grows into the past
  • Outdated Open Measurement SDK documentation in the player API reference
  • Playback occasionally stalling on period switches
  • Playback on Tizen 2016/2017 not starting under certain circumstances if the init-segment of an fMP4-stream contains an elst-box
  • UI: Incorrect line alignment for subtitle cues from WebVTT tracks.
  • UI: Incorrect edges of reference for vertical writing cues in block positioning from WebVTT tracks.
  • UI: An empty line is added in vertical subtitle cues.

8.82.0

Released: 2022-03-29

Added

  • Graceful handling of invalid TS segments when transmuxing is required

Fixed

  • Unexpected Paused event sometimes being emitted right before PlaybackFinished on Safari
  • Player sometimes continues playback while paused on period switch
  • Player sometimes unloading during content restoring on Safari 15
  • PlaybackTime adjustment to fill buffer holes on WebOS discontinuity transitions could lead to decoding errors
  • Playback of progressive streams sometimes not starting on Safari 15
  • MetadataParsed and Metadata events of HLS live streams with EXT-X-PROGRAM-DATE-TIME tags on Safari

8.81.0

Released: 2022-03-15

Added

  • Support for EMSG metadata with version 1
  • UI: Seek preview is now configurable via UIConfig.enableSeekPreview or SeekBarConfig.enableSeekPreview

Changed

  • AdvertisingOmSdkModule bundle now includes required OMSDK library

Fixed

  • Playback sometimes not starting on Safari 14+ when native player is used
  • Not respecting order in which standalone ads with the same position get scheduled in Bitmovin Advertising Module
  • Player potentially choosing a wrong audio rendition when there is more than one rendition with the default language
  • Manifest redirects not being respected with enabled native_hls_parsing tweak

8.80.0

Released: 2022-03-01

Fixed

  • AdFinished event sometimes not being emitted with IMA module
  • Player not restoring from ad break on WebOS 2018+ when main content is a progressive stream
  • getAvailableSegments() only returning a single representation for DASH SegmentTemplate streams
  • Playback sometimes not starting for HLS streams due to incorrect timestampOffset being applied
  • Current time in some cases is not progressing on Safari when using the MSE
  • Adjustment of presentation time offsets on the first HLS discontinuity leading to negative PTS values
  • UI: npm install failure when using Node 16

8.79.0

Released: 2022-02-16

Added

  • The following player errors now provide a message and some additional context:
    • NETWORK_PROGRESSIVE_STREAM_DOWNLOAD_TIMEOUT
    • NETWORK_ERROR
    • NETWORK_FAILED_CERTIFICATE_REQUEST

Fixed

  • Sometimes imprecise time-shifting due to wrongfully delayed buffer clearing
  • Superfluous AudioChanged event sometimes being emitted before SourceLoaded when using HLS on Safari
  • player.getTimeshift() returning the wrong offset after restoring from an Ad break on Safari 15
  • player.getTimeshift() sometimes returning the wrong offset when joining a live stream on Safari 15
  • Compilation error using the player package in TypeScript projects where @types/chrome package is not installed

8.78.0

Released: 2022-02-01

Added

  • Optional sendTimestamp to HttpResponseTiming
  • Optional url, elapsedTime and segmentDuration to RequestProgress
  • SEGMENT_LOADING_PROGRESS_CHECK_INTERVAL tweak to set the desired interval of proactive download progress checks
  • Eager download cancellation
  • prepareMediaInfo callback to GoogleCastRemoteControlConfig providing the possibility to alter the MediaInfo object before it is loaded onto the receiver upon changing its media/source
  • UI: Support for providing custom aria-label when ListBox is used

Changed

  • Adjust return types for getAudio, getSnapshot, and getThumbnail APIs to include nullish values
  • API_NOT_AVAILABLE error message now mentions the name of the API that led to the error
  • Player errors DRM_CERTIFICATE_ERROR, DRM_INIT_DATA_MISSING, DRM_FAILED_LICENSE_REQUEST, DRM_MISSING_CONFIGURATION, DRM_NO_LICENSE_SERVER_URL_PROVIDED, DRM_KEY_SYSTEM_NOT_SUPPORTED, DRM_KEY_SESSION_INITIALIZATION_FAILED, DRM_MEDIA_KEY_INITIALIZATION_FAILED, DRM_PLAYREADY_INVALID_HEADER_KEY_VALUE_PAIR, NETWORK_MANIFEST_DOWNLOAD_TIMEOUT, and NETWORK_SEGMENT_DOWNLOAD_TIMEOUT now provide a message and some additional context

Fixed

  • Not respecting AUTOSELECT attributes in HLS streams for audio when played on MSE-based player
  • Not selecting user language in HLS streams for MSE based players
  • Buffer erroneously being cleared while seeking backwards
  • fMP4 encapsulated subtitles sometimes being dropped when playing back an HLS stream
  • Case-sensitive merging of internal and user-defined request headers
  • Potential playback failure when calling load() multiple times
  • UI: Updating the markers on live streams causing unhandled exception after player is destroyed

8.77.0

Released: 2022-01-18

Added

  • Documentation for UNKNOWN, SETUP_LICENSE_ERROR, SOURCE_INVALID, SOURCE_MANIFEST_INVALID, SOURCE_NO_SUPPORTED_TECHNOLOGY, SOURCE_STREAM_TYPE_NOT_SUPPORTED, SOURCE_COULD_NOT_LOAD_MANIFEST, SOURCE_PROGRESSIVE_STREAM_ERROR, SOURCE_HLS_STREAM_ERROR, DRM_INIT_DATA_MISSING and NETWORK_ERROR
  • Additional error context to SOURCE_PROGRESSIVE_STREAM_ERROR and SOURCE_HLS_STREAM_ERROR
  • Actively track asset loading and trigger an error on Tizen with Native player in case asset is not available
  • Support for Dolby Vision video codec strings
  • Tweaks for changing the retry policy on failed downloads

Fixed

  • Improve HLS livestream performance on older low-end devices
  • Fixed issue on older Tizen devices with the duration being NaN during startup
  • Playback occasionally freezing on Tizen when skipping a gap
  • DASH sometimes being chosen over Native HLS even though a FairPlay config is provided
  • Slightly improve parsing performance of HLS playlists
  • Improve resource efficiency when playing long HLS playlists
  • Content restoring sometimes not respecting the startOffset on Native HLS
  • Player missing the target when timeshifting with a positive timestamp value
  • Invalid HTML line break tags for subtitles
  • Player getting stuck on the lowest quality, when the representations are ordered by descending bandwidth
  • Better support for unknown video codecs in HLS

Changed

  • troubleShootLink for the error events

8.76.0

Released: 2021-12-21

Added

  • TweaksConfig.experimental_transmuxer to enable new experimental transmuxer
  • More context for the DRM_MEDIA_KEY_INITIALIZATION_FAILED error
  • PlayerErrorEvent.troubleShootLink to follow for error troubleshooting
  • DRM_NO_KEY_SYSTEM error event now contains information about the provided and available key systems
  • DRM_KEY_ERROR now includes the code and system code provided by the browser
  • The error for DRM_KEY_SESSION_INITIALIZATION_FAILED now includes the reason for the failure

Fixed

  • A nullpointer exception at the end of an advertisment during which the player is destroyed
  • Line spacing being too large for WebVTT subtitles when using Native HLS
  • Not recovering when seeking too close to the end of buffer for PlayReady protected content on Edge Chromium
  • WebOS 2018 and 2019 not rejecting the player.play promise when there is a player error
  • getTimeshift returning out of bounds values for HLS Native on Safari 14+
  • Player firing a DRM_NO_KEY_SYSTEM error instead of MODULE_MISSING when trying to play an encrypted stream without the DRM module
  • Loading too much on seeking to segment boundaries on SegmentTimeline streams
  • Progress bar always jumping to max timeshift offset on Safari 15+ with Native HLS when joining a live stream and after every seek
  • UI: The scrubber could jump to an old position during a seek operation when it was dragged
  • UI: The Seekbar scrubber could jump to an old position on touch devices when the buffer updates during a seek operation

Changed

  • Improve parsing efficiency of long HLS playlists with custom metadata tags
  • Firing a DRM_KEY_ERROR error instead of DRM_MEDIA_KEY_INITIALIZATION_FAILED when msSetMediaKeys fails
  • Firing a DRM_NO_KEY_SYSTEM error instead of DRM_MEDIA_KEY_INITIALIZATION_FAILED when requestMediaKeySystemAccess or createMediaKeys fails

8.75.0

Released: 2021-12-07

Added

  • Documentation for DRM_KEY_SYSTEM_NOT_SUPPORTED, DRM_NO_KEY_SYSTEM, DRM_MEDIA_KEY_INITIALIZATION_FAILED, PLAYBACK_VIDEO_DECODING_ERROR, DRM_KEY_ERROR and DRM_KEY_SESSION_INITIALIZATION_FAILED
  • New detail page for each error from the ErrorCode enum

Fixed

  • ABR logic not recovering when a custom RequestController is in use
  • ABR logic selecting the highest quality for codec probing even on a poor network
  • Player being unable to restore content playback after an AdError with the IMA module
  • Missing AdStarted and AdFinished with the IMA module when the previous ad request has returned an empty response
  • Missing AdStarted and AdFinished with the IMA module when the previous ad is skipped
  • Setting the duration on a closed MSE in a multi period live stream
  • load / unload not resolving in Chrome 95+ on Android with Widevine protected DASH streams
  • Unhandled exception being thrown when attempting to play a Fairplay stream on a device that does not support Fairplay
  • STARTUP_THRESHOLD behaving inaccurately on start times close to the end of a segment
  • NativePlayer ignoring TimeMode parameter in getCurrentTime
  • OMSDK not respecting VAST manifest verification parameters

8.74.0

Released: 2021-11-23

Added

  • setAspectRatio and getAspectRatio API methods
  • PlayerEvent.AspectRatioChanged event which is fired when aspect ratio is changed using PlayerAPI.setAspectRatio

Fixed

  • Failed time-shifts for fMP4 HLS assets
  • Playback with DRM content failing to destroy player due to unhandled exception
  • Throwing unhandled exceptions during repeated destroying of player on tizen

Changed

  • All player errors (except DRM and network errors) now provide a message, and some also provide contextual data
  • Improve parsing efficiency of long HLS playlists with #EXT-X-KEY tags considerably

8.73.0

Released: 2021-11-09

Added

Fixed

  • Playback not starting when setting initial time too close to gap on Chromium browsers
  • Broken content restoring after ad when using production build
  • Unhandled exceptions during Player.destroy() causing playback failures on low-end devices

8.72.0

Released: 2021-10-27

Added

  • CueEnter event includes VTT properties in native player

Changed

  • Updated ErrorCode documentation
  • Better mapping of MediaError from the HTMLMediaElement to PlayerError when using native player

Fixed

  • Missing Playing event when casting using CAF
  • Freeze on Tizen due to gap in audio buffer

8.71.0

Released: 2021-10-12

Fixed

  • player.getCurrentTime returning NaN when the player is finishing an ad break
  • Period switches sometimes failing on slow network when audio and video segments are not aligned
  • Player stalling when seeking during an ongoing quality switch with SegmentBase WebM assets
  • Playback of subsample encrypted WebM assets failing when ClearKey is used
  • Ads schedule with BAM module not respecting the order they are defined when the schedule time is the same
  • Network API documentation used outdated namespace in code examples
  • Broken playback in Safari for HLS streams that carry PROGRAM-DATE-TIME tags in any but the first discontinuity sequence
  • Player not respecting audio selection when video segments contained muxed audio while separate audio playlists were available
  • UI: Incorrect font size for TTML subtitles

8.70.0

Released: 2021-09-28

Fixed

  • DVRWindowExceeded event fired during a time shift operation, even when we are not close to the maximum DVR Window
  • VR playback not working on iOS devices
  • Device orientation not being used for VR playback on iOS 13+ devices
  • Native player sometimes failing to enable an external subtitle track after an ad break
  • Duplicated text tracks being added on Native player after content restoring
  • Inconsistent reporting of subtitles being fragmented / not fragmented when using native player
  • PlaybackFinished event sometimes not being fired on Safari when using MSE
  • Subtitle cue timing sometimes off after a discontinuity switch

8.69.0

Released: 2021-09-14

Added

  • Support for the @endNumber attribute in DASH manifests.
  • UI: Sort AudioTracks inside the AudioTrackSelectBox and the AudioTrackListBox by their identifier.

Changed

  • Player now dispatches an AudioChanged event when the native player is used in case an enabled audio track is added after the SourceLoaded event has already been dispatched
  • AudioChanged event definition now allows sourceAudio property to be null

Fixed

  • No StallStarted event if video element stops before buffer end is reached
  • Playback stalling on WebOS and Tizen when switching between audio tracks with different timescales
  • Parent wrapper sequence and fallback ads inside VAST manifests not being respected when using the Bitmovin ad module
  • TTML region style linked to head style ID not being applied
  • Correctly set the live stream duration when it is provided by the manifest

8.68.0

Released: 2021-08-31

Changed

  • AdPlayerAPI.done and AdPlaybackReportingAPI.done now returns a promise
  • PlayerAdvertisingAPI.skip now returns a promise

Fixed

  • UI becoming unresponsive when reloading the page or creating a new player instance while casting
  • Playback failing after unprotected/protected content transitions on 2016 WebOS TVs
  • When switching from one ad to another, the last played content was still visible for a few frames

8.67.0

Released: 2021-08-19

Fixed

  • Playing over period switches on Tizen 2016 for non-aligned audio and video segments
  • UI: Empty line being added to subtitle boxes when VTT positioning attributes are present

8.66.0

Released: 2021-08-04

Added

  • Support for mid-stream key rotation for PlayReady in Edge browsers
  • Support for subtitle styling via WebVTT default classes

Fixed

  • Quality switches interfering and causing inaccuracies in seeking/timeShifting on HLS streams
  • Freezing playback during seeking when adjusting the time to a buffer start which will be removed
  • Duplicate handling of the DVRWindowExceeded event
  • Playback occasionally freezing on Tizen when switching periods
  • Preferred language order for playback.audioLanguage and playback.subtitleLanguage not respected
  • Fragmented subtitles tracks sometimes failing to activate
  • getCurrentTime sometimes returning 0 during period transitions
  • startOffset not getting applied in live streams after a pre-roll ad has finished
  • Not handling multiple DATERANGE tags per segment
  • Not firing metadata event for DATERANGE tag with duration zero
  • Error event swallowed on content restore after an ad break
  • AdVerifications in nested Extension tags prevented ads from being played when using the BitmovinAdvertisingModule

8.65.0

Released: 2021-07-20

Added

  • RttEstimationMethod AdaptationConfig parameter that allows to choose the RTT estimation method used by the ABR

Fixed

  • Mapping to external time sometimes not working when the BaseMediaDecodeTime is rewritten
  • Playback occasionally starting from 0 on Tizen after seeking back in VOD content
  • Freezing playback when switching between unencrypted and encrypted audio tracks
  • Fragmented subtitles not appearing after seeking over a period boundary
  • Parsing of styled CEA Closed Captions causing out-of-memory issue and broken playback on HLS with MPEG-TS segments
  • Playback not starting when configuring audioLanguage on HLS streams with multiplexed audio+video
  • WebVTT subtitles new line not respected on native player

8.64.0

Released: 2021-07-06

Fixed

  • Playback occasionally not starting on Native during initial load
  • Source unloading during content restoring on Native player
  • Nudging the video element causing playback to stall under certain conditions on 2018 Tizen TVs
  • No PlayerError being triggered when a video element error was encountered during the playback of live streams
  • Subtitles rendered automatically and duplicated on Safari 14
  • Switching audio in Livestream with PTS exceeding 32bits causing playback to stop on LG and Tizen TVs
  • Source being reloaded on the receiver after casting an already playing source
  • Switching from a Period without subtitles to a Period with fragmented subtitles
  • Tizen emitting fake ended event on live streams that still have not ended

8.63.1

Released: 2021-06-28

Added

  • force_software_decryption tweak to force software decryption over the default of using WebCrypto API

Fixed

  • Potential memory leak with HLS live streams that have growing DVR window

8.63.0

Released: 2021-06-22

Added

  • Support for DASH Thumbnails which use a SegmentTimeline

Fixed

  • Playback breaking when running the same source on multiple players
  • Playback on Tizen TVs sometimes not starting
  • Player failing when trying to cast client side Ads to CAF
  • Native player not reporting time changed events after startup
  • VTT position alignment calculation based on text alignment property
  • Subtitles disappearing after PTS rollover in HLS streams

8.62.0

Released: 2021-06-08

Fixed

  • Live streams with Thumbnails and missing segment template information not starting
  • Slow DVRWindowExceeded handling causing stalls
  • Playback on XBox freezing after a seek operation in playready VOD content

8.61.0

Released: 2021-05-26

Fixed

  • Multiple <![CDATA elements within the same XML element were not evaluated correctly
  • IE and Legacy Edge could play beyond the video's duration using a progressive source, missing the PlaybackFinished event

8.60.0

Released: 2021-05-11

Added

  • Support for WebVTT timestamp tag styling with :past and :future pseudo-classes
  • Support for WebVTT paint-on rendering style, hide future content by default if timestamp tags are present
  • Tweak preserve_gaps_for_base_media_decode_time_rewrite that fixes live streams with timestamps larger than 32 bits and small frequent gaps in segments getting out of sync in video and audio on Tizen

Fixed

  • PlaybackFinished event could wrongly be triggered after seeking
  • Player getting stuck when timeshifting over a MPEG2-TS PTS rollover
  • VAST NonLinearClickTracking event not fired when using BitmovinAdvertisingModule

Changed

  • WebVTT: Dispatch CueUpdate events for cues containing timestamp tags, with past/future text wrapped in spans.
  • Wrap generated WebVTT cue HTML in a <span> element

8.59.1

Released: 2021-06-25

Changed

  • Use median instead of a weighted average for RTT calculations

Fixed

  • Player consecutively timeShifting if it fell out of the DVR window
  • Player not starting playback when seek target is adjusted to buffer start
  • Slow DVRWindowExceeded handling causing stalls
  • Unnecessary frequent DRM license state serialization potentially causing performance issues
  • Period switches failing if they're interrupted by time-shifts
  • Loading of incorrect segments when joining a multi-period DASH live stream in any but the last period
  • Erroneous end-of-stream signalling causing period switches to fail
  • Erroneous timestamp-rollover handling on Tizen causing period switches to fail

8.59.0

Released: 2021-04-27

Fixed

  • PeriodSwitched being emitted before it has actually finished
  • Parsing of DASH-IF IOP thumbnails skipping first sprite when SegmentTemplate.startNumber is zero
  • Timescale changes between discontinuities got the player stuck on Tizen2016
  • NativePlayer not transitioning to ended state after post-roll ads
  • RestrictStrategy.shouldPlaySkippedAdBreaks not being treated correctly on multiple consecutive seeks
  • Player shows DRM_KEY_ERROR when the certificate request finishes after loading a new Fairplay source
  • Failing to detect dropping out of the DVR window in some SegmentTemplate live streams
  • BufferController returning cached buffer ranges too early

8.58.0

Released: 2021-04-13

Fixed

  • Audio and Subtitle tracks information not being updated correctly when using startOffset option to start playback from any period other than the first
  • Order of preferredTech not being respected
  • Segment playback time parsing for WebM segments
  • Ads in an AdBreak being sorted by sequenceNumber in alphabetical order instead of numerical when using freewheelVastFallbackHandling
  • Tizen not signaling correctly end of period on multi-period live streams
  • Live streams freezing on certain webOS TVs when time-shifting or switching audio tracks

8.57.0

Released: 2021-03-30

Added

  • Skipping duplicate audio renditions within the same rendition group in HLS streams

Fixed

  • Playback freezing after client side mid-roll ad break with HLS stream
  • Tizen playback getting stuck after skipping an ad
  • Exception thrown when trying to get a thumbnail inside a gap
  • Video staying frozen while audio plays normally after unstalling on Chromium-based browsers
  • PlaybackFinished event occasionally not being fired on Chromium-based browsers

8.56.0

Released: 2021-03-16

Added

  • Passing on withCredentials flags from SourceConfig and DRMConfig to CAF receiver for cookie/credentials support

Fixed

  • Playback on Tizen freezing when time shifting backwards
  • Playback not starting in some cases, mostly with low latency streams
  • webOS buffer levels not correct on discontinuity changes
  • Fragmented subtitles being downloaded from the beginning when activating after a seek
  • Uncaught exceptions when playing HLS with fragmented WebVTT subtitles
  • Uncaught exceptions after manifest updates

Changed

  • Fix mutating passed in SubtitleTrack in InternalPlayer.addSubtitle method

8.55.0

Released: 2021-03-02

Added

  • Support plain text fragmented VTT subtitles with DASH streams

Fixed

  • UI freeze and slow startup and with HLS streams that have long playlists
  • Tizen playback freeze with SegmentBase asset
  • WebVTT HTML5 styling isn't respected in Safari
  • HLS codec detection only being applied to the selected variant playlist
  • Wrong WebVTT cue position alignment

Removed

  • Native flash player for native Hls playback when flash is supported
  • Flash renderer for Html5 and Hls playback when flash is supported
  • HWDECODING tweak to enable or disable hardware decoding for flash playback

8.54.0

Released: 2021-02-17

Added

  • Image Media Playlist thumbnail support
  • Proper handling of Widevine protected streams with representations that don't have valid DRM licenses

Fixed

  • Dynamic removal of non-playable representations due to DRM license not being usable
  • Tizen 2016 not seeking in VOD content
  • Tizen playback occasionally freezing during a period switch or seeking in VOD
  • Player not switching to a HLS backup stream
  • Missing Seek and Seeked event when setting current time on video element during startup with startOffset
  • drm: DrmAPI missing in the PlayerAPI interface
  • Playback of raw AAC segments on Tizen

Changed

  • Do not recreate SourceBuffer on encryption change on Firefox

8.53.0

Released: 2021-02-02

Added

  • PROACTIVE_GAP_SKIP_DISTANCE_SECONDS tweak that allows skipping of gaps in the content proactively
  • AdvertisingConfig.freewheelVastFallbackHandling to enable sequence based fallback handling for ad pods

Fixed

  • Video duration returning null on TVs during ad/main content transition
  • Some Tizen TVs freezing when skipping gaps in the content

Changed

  • More gradual resolution change on heavy bandwidth drops

8.52.0

Released: 2021-01-19

Added

  • player.drm.renewLicense API to trigger a manual license reload for Playready streams
  • DrmLicenseAdded event to signal a DRM license becoming active

Fixed

  • HLS codec probing if variant and rendition have same URL
  • Safari autoplay blocker handling fails with IMA module
  • Tizen occasionally freezing or seeking to wrong position when the content has finished playing and user seeks back to content
  • Memory leak when loading and unloading sources
  • Fallback to standalone ad from ad buffet if VPAID ad within VAST ad pod fails to resolve

Changed

  • Rename SETUP_MISSING_DOMAIN_LICENSE_WHITELIST and SETUP_MISSING_LICENSE_WHITELIST error codes to use more up-to-date terminology

8.51.0

Released: 2020-12-22

Added

  • metadata field on the SourceConfig that is automatically passed to CAF v3 receivers whenever a source is loaded

Fixed

  • TTML Bitmap based subtitles not rendering on Tizen TV 2018 and older
  • Occasionally wrongly reported timeshift value
  • player.getTimeShift sometimes not returning 0 while being at the live edge on Safari
  • CEA-608 captions not being parsed on HLS live streams with a discontinuity related to SSAI
  • CEA-608 captions overlapping on live streams after time shifting back
  • Downloads not being cancelled on drastic bandwidth drops
  • Subtitle not rendering with smooth streaming
  • Metadata provided by CLOSED-CAPTIONS renditions in HLS and Accessibility descriptors in DASH not being exposed in SubtitleTracks of CEA closed caption tracks
  • Unresponsive player after livestream pre-roll ad has finished

8.50.0

Released: 2020-12-09

Added

  • drop_invalid_segments tweak that enables dropping of invalid MP4 segments to prevent breaking the playback.

Fixed

  • HLS backup stream handling for manifests with relative URLs
  • Overlap of CC1 or CC3 CEA-608 closed captions with CC2 or CC4
  • Stop VPAID ad if playback is already finished on AdPaused event
  • Race condition on simultaneous playlist updates causing timeline gaps

8.49.0

Released: 2020-11-25

Added

  • Expose dword_base_media_decode_timestamps and force_base_media_decode_time_rewrite in the tweaks config
  • Switching of active audio on a CAF V3 receiver
  • ServiceWorker support for the source.withCredentials config
  • Usage of the ABR for progressive ad media file selection with present bitrate
  • Handling for HLS backup streams with different audio group-id
  • Delaying of BufferBlock switch on timeshift/seek if target BufferBlock is not available

Fixed

  • Player not playing audio on HLS streams with a non video or audio codec in CODECS attribute
  • Playback stalling sometimes after seeking/timeshifting due to a failed BufferBlock switch
  • Race condition while updating HLS live playlists, that leads to incorrect playback times.
  • Unnecessary segment cancellation after timeshift

8.48.2

Released: 2020-11-12

Fixed

  • Segment downloads stopping unexpectedly after time-shifting, causing the player to stall

8.48.1

Released: 2020-11-12

Fixed

  • Incorrect handling of HTML character encoding in manifest

8.48.0

Released: 2020-11-10

Fixed

  • SourceBuffer.changeType shouldn't be used on tizen
  • Safari autoplay blocker handling fails with IMA module
  • Race condition which could lead to the player loading outdated segments in HLS live streams
  • First segment not loaded on timeShift
  • Fixed ad playback failures on platforms not supporting Object.assign
  • Dash live playback freeze on Tizen due to removal of segment before pushed into buffers
  • Stalling when restoring the content from CSAI due to wrong SegmentIndex calculation
  • Deliberate playlist download cancellations sometimes causing all future playlist updates to fail for HLS live streams
    • Chrome HLS playback starts at wrong position when #EXT-X-START:TIME-OFFSET=0,PRECISE=NO is present in variant manifest

Added

  • Put back segment_encryption_transition_handling tweak to PlayerConfigAPI as deprecated
  • force_base_media_decode_time_rewrite tweak

8.47.0

Released: 2020-10-27

Fixed

  • On webOS segments were added to the buffer twice
  • On webOS the gap filling logic for discontinuity handling was executed too often, leading to inaccurate playback times
  • Player getting stuck on emtpy VPAID ads with BitmovinModule
  • Seeks in quick succession through the UI breaking the UI when a V3 CAF Receiver is connected
  • Stalling on Samsung Tizen TVs when segments' BaseMediaDecodeTimes go from below 32 bit to above 32 bit mid-stream

Changed

  • Remove obsolete segment_encryption_transition_handling from PlayerConfigAPI

Added

  • Support for enabling and disabling subtitles loaded from manifest on google CAF V3
  • Support for adding new subtitles to a Chromecast V3 session using the Player API
  • Support for removing subtitles from a Chromecast V3 session using the player API
  • Support for configuring subtitles using source config for Chromecast V3
  • Support for DASH ClearKey License Server

8.46.0

Released: 2020-10-13

Fixed

  • Stream freezes on HLS streams with TS container format and SSAI
  • Ad pod ads not being replaced by ad buffet ads in case the ad pod ads cannot be loaded when the Bitmovin Advertising Module is used
  • Player not unstalling automatically when calling seek shortly after play during startup
  • SourceConfigOptions.startOffset not respected in native player on WebOS 2018 and later
  • Player sometimes stuck in stalling state when switching periods after a seek event on a live stream
  • Xbox and Legacy Edge rare stalling when switching periods
  • Incorrect relative time returned by PlayerAPI.getCurrentTime for live streams
  • Accidental URL special character replacement in manifest metadata

Changed

  • Rewritten XML Parser to boost parsing speed.

8.45.2

Released: 2020-10-08

Fixed

  • Freezing on small buffer gaps on Webos devices
  • Stream freezes on HLS streams with TS container format and SSAI

8.45.1

Released: 2020-09-30

Fixed

  • Player not selecting the correct starting segment for live streams with different segment lengths

8.45.0

Released: 2020-09-29

Fixed

  • Improved performance of low-latency Catchup and Fallback modes
  • Short clear discontinuities inbetween encrypted content could be skipped
  • Fallback tag plays twice with Bitmovin advertising module
  • Progress Bar jumping to Live position when it starts playing from a MaxTimeShift position
  • Playback freezing at discontinuity boundary when timescales differ between segments

Changed

  • Jumps over video gaps immediately when audio continues to play. Improves visible video stalls.

Added

  • Filtering of unsupported codecs based on MediaKeySystemMediaCapabilities

8.44.0

Released: 2020-09-15

Added

  • Support for sending custom metadata to CAF receivers
  • MPEGTS-to-fMP4 transmuxing support for HEVC

Fixed

  • Falsely logged 'PSSH data found but DRM is not configured'
  • Play all resolved ads of the ad break with empty wrapped VAST while seeking over
  • Main content not playing with persistent: true flag and IMA module
  • Race condition causing loading of HLS streams to fail if loaded in quick succession
  • Documentation for PlaybackConfig.audioLanguage
  • Tizen stuck in stalling state on loading stream with segments if both 32bit and >32bit timestamps exist
  • Different start time offset in audio and video Hls playlist
  • Rare stalling of HLS live streams when timeshifting back
  • License call gets only issued once per player creation

8.43.0

Released: 2020-09-02

Added

  • Basic media playback support for CAF v3 receivers
  • New error code SEGMENT_PSSH_DATA_MISSING when no PSSH box in init segments is provided for Tizen 2016

Fixed

  • Check if pssh and pro are available before loading them in from the drm config to avoid undefined index error
  • SEGMENT_PSSH_DATA_MISSING firing on non DRM protected content when running on tizen 2016
  • PLAYBACK_VIDEO_DECODING_ERROR being thrown sometimes during seeking
  • Playback stuck when seeking on webOS
  • Fairplay DRM license requests using incorrect LA_URL with multi-key streams

8.42.1

Released: 2020-09-02

Fixed

  • Play all resolved ads despite wrapped VAST ads are empty

8.42.0

Released: 2020-08-18

Added

  • WebVTT subtitle property descriptions

Fixed

  • Play event firing twice
  • Segments erroneously being pushed into the Renderer multiple times
  • Memory leak in the Tizen module caused by keeping a reference to individual segments
  • Playing back content with playback time less than Period.start after a period switch

8.41.0

Released: 2020-08-05

Added

  • onSelectAdQuality which applies custom logic before picking to download progressive ads

Fixed

  • Uncaught error while adding event listener on edge video element wrapper
  • Period switching in DRM streams on webos 2016 TVs
  • Filter out ranges that are too small for playback when handling gaps
  • Decoding error with assets containing incompatible codecs with the same mimetypes (e.g aac and ac-3)

Changed

  • Updated analytics collector to v2.17.2
  • startupBitrate applied only on initial loading of main content
  • Exposing isAd and representations to the onVideoAdaptation and onAudioAdaptation callback to allow custom processing

8.40.0

Released: 2020-07-23

Added

  • Replace all custom protocols with skd when EXT-X-SESSION-KEY is present in a hls master playlist and the ServiceWorker is used
  • DRMConfig api spec to add preferredKeySystems, and PlayreadyDRMConfig to add utf8message and plainTextChallenge

Fixed

  • Joining a live stream near the end of a DASH period could lead to a playbackfinished event being fired
  • PlayReady DRM to DRM period switches sporadically failing in the Edge browser
  • RestrictStrategy.shouldPlaySkippedAdBreaks is not respected on seek with IMA module
  • Time shifting for DASH SegmentTimeline sometimes not accurate
  • Loading segment index rewind after ongoing segment download cancellation
  • DRM protected streams with init-data only in the manifest not playing back on webOS TVs
  • Main content not playing after adaptive streaming ad when Bitmovin Advertising Module is used
  • Main content playing while switching between midroll adBreaks for same position

8.39.1

Released: 2020-07-10

Fixed

  • Video freezing or device slowing down due to lack of memory

8.39.0

Released: 2020-07-07

Added

  • Support for VAST Extensions for Bitmovin Advertising Module
  • Support for stpp.ttml.im1t subtitle codec
  • Improved performance of manifest parsing
  • Decreased the time between processing of the manifest and start downloading of segments

Changed

  • Updated bundled analytics-collector to v2.15.2

Fixed

  • Failing to continuously rewrite BaseMediaDecodeTimes with active Tizen module, when only one stream had BaseMediaDecodeTimes exceeding 32 bits
  • Video freezing when player stalls and quality switch occurs
  • Several unhandled exceptions when quickly changing sources
  • Accessing undefined property on Tizen 2018 TV's when switching sources
  • Fix missing subtitles when startOffset is set
  • Initially requesting lowest quality variant playlist before target variant playlist for HLS
  • Missing audio on Tizen TVs when switching from a Period with BaseMediaDecodeTimes > 2**32 to a Period with smaller BaseMediaDecodeTimes while the playback time stayed over 4.294.967
  • Inaccurate time shifting with multi-period DASH SegmentTimeline streams
  • Playback of self-init dash segments

v8.38.0

Released: 2020-06-23

Added

  • Possibility to switch between audio tracks with different MimeTypes and incompatible codecs
  • Missing documentation for BufferMediaTypeConfig

Fixed

  • Handle HDCP error when having immediateLicenseRequest and preroll ad
  • Updating of licence storage data

v8.37.1

Released: 2020-06-10

Fixed

  • Playback freezing after mid-roll adbreak on Smart TVs

v8.37.0

Released: 2020-06-09

Fixed

  • CEA-608 Closed Caption cues sporadically missing for HLS streams with fMP4
  • Missing seeked event when seeking via the touch bar and a startOffset was present.

Added

  • Dispatch a Warning event if the setTimestampOffset attempt fails on Tizen with DOM_EXCEPTION 11.

v8.36.2

Released: 2020-06-05

Fixed

  • Seeking across BufferBlock boundaries with not aligned start times

v8.36.1

Released: 2020-05-29

Fixed

  • Player freeze when seeking back to previous period
  • Restoring main content when VMAP adbreak contains an empty VAST
  • Uncaught error and playback stuck when seeking during the transition between clear and DRM-protected content

v8.36.0

Fixed

  • Ad player pause error on failing to load ad
  • Clear past cues from TimeMetadataHandler
  • Depleting audio buffer could freeze Tizen 2017 models
  • Custom Labeling functions breaking due to invalid string response
  • Content starts automatically when broken streaming ad creative URL is present in VAST response

Added

  • Improved performance for SegmentBase streams on low-end device
  • selectMediaFile method on AdPlayerDelegate to select progressive ad media file based on main content download quality data

Changed

  • Improved API description for PlayerEvents and PlaybackConfig
  • Quality selection of progressive ads considers content bitrate over player resolution when using the Bitmovin Advertising Module

v8.35.0

Released: 2020-05-12

Added

  • Parallel requesting of VMAP ad tags before the source has been loaded

Fixed

  • Some HLS streams using a deprecated AVC codec format playing back without audio
  • Player failure due to isLive of undefined error
  • HLS live streams playback on Samsung Tizen 2016
  • VMAP Ad tracking requests not including cookies
  • Transition from ad break to content on XBox
  • WebVtt subtitle offset being applied for wrong container formats

Changed

  • Seeking backwards within buffered range does not re-download segments

v8.34.0

Released: 2020-04-28

Fixed

  • Tracking VMAP breakStart and breakEnd events when containing VAST tag is empty
  • Inefficient handling of EventStream events on period switches
  • Smooth live streams stopping playback after some time
  • Segment downloads sometimes being cancelled too aggressively
  • CEA-608/708 captions stuck during and after SSAI in HLS stream when using NativePlayer
  • Playback stops when seeking back to 0

Added

  • ServiceWorker public documentation
  • Immediately sending DRM license requests when initialization-data becomes available, if the DRMConfig.immediateLicenseRequest configuration option is set
  • Expose ImaAdData.traffickingParameters provided by the IMASDK

v8.33.0

Released: 2020-04-14

Fixed

  • Seeking on non-seekable streaming ads using the video element API directly
  • Pixelated picture when switching between unencrypted and encrypted segments
  • MPD update stops when both DASH and HLS source is provided in SourceConfig
  • Certain segments being disregarded after a discontinuity on HLS with MPEG-TS
  • Subtitles not showing in fullscreen on iOS/Safari
  • Wrong playback position when restoring main content after ad break
  • Multiple VMAP tracking URLs for same tracking event type

Changed

  • Interface of ImaAdBreak.trackingEvents to support multiple URLs for each tracking event type

8.32.1

Released: 2020-04-08

Added

  • Legacy SSL support on Samsung Tizen

8.32.0

Released: 2020-03-31

Added

  • AdTagConfig.discardAfterPlayback to enable keeping the AdBreaks in schedule after playback. Default is true
  • DASH WebM Clearkey support

Fixed

  • WebVTT cue times which use a , as a second - millisecond separator
  • TTML ignoring <tt:elementName> tags
  • A MODULE_MISSING warning when WebOS module not present
  • Documentation for Event.AdStarted and Event.OverlayAdStarted
  • getViewMode returns an incorrect value if the source is changed while in "fullscreen" mode

8.31.0

Released: 2020-03-17

Added

  • HttpRequestType.MEDIA_SEGMENTINDEX used for DASH SegmentBase
  • Extended PlayerAPI.getCurrentTime to also provide a relative time for live streams

Fixed

  • Seeking back when VOD stream ended
  • HLS adaptation logic would fail to switch to other renditions if playlist was missing resolution information
  • Cancelling an ongoing XMLHttpRequest on Tizen leading to a DOMException, making unloading unsuccessful
  • Adding DRM initial data while a DRM config setup is happening
  • Duplicate PlaybackFinished events after loading different technologies
  • Not respecting startupBitrate on content restoration for VOD

8.30.1

Released: 2020-03-09

Fixed

  • Audio tracks being removed on HLS discontinuity
  • DRM-protected live streams getting stuck
  • Transition back to DRM-protected main content after ads fails

8.30.0

Released: 2020-03-03

Added

  • WebVTT inline styles support
  • WebM Segment index parsing support

Fixed

  • Failing to play back MPEG-TS streams when the Tizen module is active
  • Decoding error when playing back unencrypted content with a DRM config on LG 2017 devices
  • Rapid seeking could lead to the player loading segments at the wrong position with SegmentTimeline streams
  • DRM protected playback when DRMConfig is present in manifest but not in SourceConfig
  • Multiple encryption transitions for DASH assets on WebOS devices
  • VTT subtitle cues not updating when seeking back

v8.29.1

Released: 2020-02-18

Fixed

  • Player failing to instantiate when loaded on a page with script tags with no src attribute
  • The player could fire wrong PeriodSwitch / PeriodSwitched events when playing fMp4 HLS streams leading to removed audio languages
  • Improved TweaksConfig.resume_live_content_at_previous_position_after_ad_break accuracy on Safari Live HLS when EXT-X-PROGRAM-DATE-TIME is present

8.29.0

Released: 2020-02-17

Added

  • Envivio module to handle shortcomings of the Envivio packager.
  • onLog callback to the LogsConfig that is invoked whenever a message is logged

Fixed

  • Playback failure when joining a live stream at the very moment of its creation
  • TweaksConfig.resume_live_content_at_previous_position_after_ad_break not working properly for Live HLS in Safari

8.28.0

Released: 2020-01-30

Added

  • Smarter adaptation set merging where only adaptation sets with the same language get merged
  • Reuse DRM session across client side ad transitions, no additional license requests when MediaKeys or MsMediaKeys is used
  • Cache HLS master playlist across ad breaks on live streams
  • Enhanced support for WebVTT subtitle styling and positioning

Fixed

  • PlayerEvent.SegmentPlayback sometimes being fired at the wrong playback time when using HLS sources with multiple qualities
  • Wrong error message when MEDIA_ERR_DECODE is fired by video element
  • Potentially stalling for a long time when trying to play over a discontinuity when the playlist contains duplicate segment URLs in different discontinuity sequences
  • Metadata event not firing on each segment with ID3 HLS sources
  • Loading the same segment for two different qualities when playing at the DVR edge in a HLS live stream and the player stalls while segments drop out
  • Skipping the first segment in a playlist when playing at the DVR edge in a HLS live stream and a quality switch happens while segments drop out
  • Discontinuity adjustments are not made on Fragmented Subtitles
  • Potentially long stalling when switching qualities right at HLS discontinuity boundaries
  • Wrong timing of SegmentPlayback and Metadata events with ServiceWorker
  • Improved segment_encryption_transition_handling tweak to behave more seamless and add support for new Edge
  • Captions not being properly parsed after discontinuity transitions in HLS streams

8.27.0

Released: 2020-01-17

Added

  • TweaksConfig.resume_live_content_at_previous_position_after_ad_break, which provides the ability to change at what playback position the content will resume after an ad break for live streams

Fixed

  • Seeking back to the start of an ad shortly after the ad starts playback when using adaptive streaming ads
  • Missing DASH dependency for Smooth and XML dependency for DASH module
  • EXT-X-START sometimes not being respected when using HLS in Safari
  • CEA Closed Captions not being reactivated after transitioning back from a client-side ad
  • Pixelated content after ad break on HLS + PlayReady
  • Player stalling after postroll ad

8.26.0

Released: 2020-01-08

Added

  • PlayerType enum to PlayerExports

Fixed

  • XML parsing error log when parsing DASH sources on IE, Edge and Firefox
  • Playhead directly jumping to the end of the stream when seeking near it
  • Seek into unbuffered area would sometimes seek to the beginning of a segment before seeking to target time
  • Uncaught exception on second run when having persistent ads
  • Fragmented TTML Subtitles are being activated with wrong time information on TizenTV

8.25.1

Released: 2019-12-19

Fixed

  • DRM_INIT_DATA_MISSING error being thrown in Chrome 79 for multi-period streams

8.25.0

Released: 2019-12-18

Added

  • Support for forced subtitles on Safari native player
  • Manifest caching to speed up ad break to content transitions for VoD sources
  • PlayerEvent.AdInteraction, which is fired when the user interacts with the ad. For now this is only fired when a VPAID AdInteraction event occurs

Fixed

  • TTML empty body and non-wrapped timed element parsing errors
  • Dash switching to secondary baseURL when segment request failed from primary baseURL
  • Player inclusion from other JS projects in a Node context
  • SourceConfigOptions.startOffset failing to be applied when using TweaksConfig.native_hls_parsing
  • Audio glitches with some MPEG-TS streams getting transmuxed to fMP4
  • Gracefully handle initial partial request to HLS master playlist by the video element when using TweaksConfig.native_hls_parsing with ServiceWorker

Changed

  • Optional LA_URL value in DrmConfig for Widevine, Primetime and Fairplay

8.24.3

Released: 2019-12-17

Fixed

  • DRM playback on WebOS
  • DRM playback on Tizen
  • Playback of fMP4 streams with Movie Fragment (moof) boxes containing only a single video sample and do not specify an explicit sample size

8.24.2

Released: 2019-12-13

Fixed

  • CEA caption parsing from fMP4 with multiple Movie Fragment (moof) boxes within a segment

8.24.1

Released: 2019-12-12

Fixed

  • metadata events not fired on Safari native player
  • Playback of DRM protected streams on the Tizen platform
  • Parsing of DRM initData containing more than one PSSH box (too many license requests)

8.24.0

Released: 2019-12-10

Added

  • Support persistent licenses in Chrome, Firefox and Edge

Fixed

  • currentTime shifted far off in Firefox due to EditList boxes of fMP4 not being removed
  • An initial internal seek to the start position could trigger an unintended seeked event when a second seek operation was started
  • Parsing urls with semicolons after the pathname in the Service Worker
  • Tizen preferring native player for hls over html5
  • Race condition where an unreachable segment was skipped instead of trying a backup stream
  • Incorrect value of downloadTime property on PlayerEvent.DownloadFinished
  • PlaybackFinished event being triggered prematurely
  • Pre-roll ads not being played after initial autoplay was blocked
  • VPAID clickthrough URLs not opening with the Bitmovin Advertising Module when an ad
    is clicked and the VPAID ad specifically requests the Player to handle the redirection (playerHandles)
  • Sambatech licensing and impression server URLs
  • PlaybackFinished event sometimes not triggered
  • Tizen2016 models would fail to start playback when a skip box was present in the init segment
  • Seeking during startup could lead to a missing seeked event

Changed

  • Updated bundled analytics-collector to v2.8.0

8.23.1

Released: 2019-11-28

Fixed

  • Wrong Sambatech licensing and impression server URLs
  • Fallback to bitmovin licensing server URL if a custom URL specified by TweaksConfig.licenseServer is not whitelisted
  • Tizen preferring native player for hls over html5

8.23.0

Released: 2019-11-25

Added

  • Sambatech licensing server URL in availableLicenseServers and availableImpressionServers
  • frameRate property to VideoQuality except for Safari use-case

Fixed

  • PlayerManifestAPI not being documented on PlayerAPI.manifest
  • Graceful handling of faulty SampleEncryptionBox in fMP4 streams
  • Player stalling on period transitions with DASH live streams when new Periods are added to the manifest
  • Chromecast ready event isn't fired
  • Sometimes seeking to the beginning of a segment rather than the correct time
  • Functionality to build custom players
  • Changes of the audio track ID across HLS discontinuities in MPEG-TS streams cause wrong timestamps

8.22.0

Released: 2019-11-11

Added

  • Better mapping of MediaError from the HTMLMediaElement to PlayerError
  • Forced subtitles for HLS

Fixed

  • Inaccurate seeking when there are several buffered ranges
  • Playback of HLS streams with multiple audio renditions having identical LANGUAGE attributes within the same rendition group
  • Period switching between encrypted and non-encrypted content on WebOS devices
  • Playback of HLS live streams in IE11
  • A/V running out of sync due to wrongly inserted silence for duration mismatches between audio, video and manifest
  • Subtitles not being displayed on LG TV
  • Inaccurate warning of 'A required player module is missing: Advertising' when module is actually not required
  • Fix EMSG boxes parsing for MicrosoftEdge/IE
  • Console error when calling player.unload during playback of TrueX VPAID ad
  • Chromecast was not usable anymore after playback finished
  • Absence of style module causing playback issues

8.21.0

Released: 2019-11-06

Added

  • Possibility to dynamically define forced subtitles by PlaybackConfig.isForcedSubtitle

Fixed

  • Treating subtitles with role alternate as forced_subtitles

Changed

  • Updated bundled analytics-collector to v2.7.1

Removed

  • PlaybackConfig.forcedSubtitles which got replaced by PlaybackConfig.isForcedSubtitle

8.20.0

Released: 2019-10-28

Added

  • Default logic for DASH forced subtitles
  • Support for live streams transitioning into a VoD during playback
  • Support for VAST adaptive streaming ads in the Bitmovin Advertising Module (DASH and HLS)

Fixed

  • Console error when using subtitle-cea608 module without container-mp4
  • Error code when HDCP playback is restricted by DRM
  • Playback of AES encrypted HLS streams failing on WebOS devices
  • Audio track switching before playback has started
  • Player being stuck at lowest resolution when playing back a VR stream with limitToPlayerSize set
  • Server time synchronization
  • DefaultContentLoader doesn't load infinitely on network outage
  • Stop manifest requests on unload
  • Player falling out of DVR window on streams with smaller DVR window than targetBufferLevel
  • Infinite loop when parsing DASH-IF IOP thumbnails for live streams
  • Safari throwing DRM_KEY_ERROR with FairPlay protected stream before requesting license

8.19.3

Released: 2019-10-25

Fixed

  • Fragmented subtitles not shown on Chromecast
  • Player may get stuck upon period switch if video qualities differ between periods and AdaptationConfig.limitToPlayerSize is used
  • Player getting stuck on DASH SegmentBase streams with different segment lengths on different qualities

8.19.2

Released: 2019-10-24

Fixed

  • Player getting stuck at HLS discontinuity transitions
  • Player unable to start playback with multiple HLS discontinuities and without EXT-X-PROGRAM-DATE-TIME tags
  • Player failed to switch quality back to a previous one after it has encountered a HLS discontinuity transition while playing a different quality

8.19.1

Released: 2019-10-16

Fixed

  • Missing metadata events on the first HLS discontinuity transition
  • hls fail to load variations raises multiple errors in console

8.19.0

Released: 2019-10-11

Added

  • PlayerEvent.DurationChanged, which is fired when the duration of a source changes
  • player.subtitles.cueEnter and player.subtitles.cueExit to fire custom subtitle cue events
  • Partial support of AdaptationSet/ContentProtection DRMs in DASH manifests

Changed

  • player.subtitles.add may now be called without an URL

Fixed

  • Handle parsing of named colors in TTML subtitles
  • getCurrentTime returning 0 while ad is playing
  • Subtitles not showing after period switch
  • DASH fragmented TTML subtitles not showing on IE11
  • Pixelation when switching qualities due to segment order getting mixed up
  • PROGRAM-DATE-TIME-based timestamp mapping for HLS is applied wrongly if awaiting one or more playlist updates before starting playback
  • Segments being assigned wrong playbackTime due to a rare race condition with live manifest updates
  • Pixelation due to segments being dropped from Renderer's segment queue before actually reaching the MediaSource
  • Flickering of content
  • Starting a seek operation right before a gap in the content could be overruled by skipping the gap
  • Endless buffering when the current period drops out of the manifest
  • HLS variant playlists still being requested after the player was unloaded
  • An error being logged when attempting seek in a SegmentList live stream before playback has started

8.18.2

Released: 2019-10-08

Fixed

  • Dependency from core module to analytics
  • Missing metadata events after HLS discontinuity changes

8.18.1

Released: 2019-09-30

Fixed

  • Transition from AES-128-encrypted segments to non-encrypted segments in HLS

8.18.0

Released: 2019-09-30

Added

  • DASH-IF IOP thumbnail support - WebVTT thumbnail tracks in SourceConfig.thumbnailTrack have priority over these thumbnails
  • Support for multi-region TTML subtitles

Changed

  • Removed Tweak to disable period switching on subtitles.

Fixed

  • New loaded sources on Chromecast don't follow autoplay configuration
  • Uncaught error when disposing a player that uses the Tizen module
  • Endless buffering of segments when requested from invalid/non-existing domains
  • DRM_KEY_ERROR being triggered for some Fairplay streams due to duplicate needkey events
  • Consider merging Representation.SegmentTemplate with AdaptationSet.SegmentTemplate while selecting MPDHandler
  • Fix uncaught exception when merging AdaptationSets for DRM streams with multiple video AdaptationSets and differing DRM decryption keys

8.17.1

Released: 2019-09-24

Fixed

  • CEA-608 captions for HLS fMP4 streams
  • Buffered CEA-608 captions discarded in case of an in-buffer seek or timeShift

8.17.0

Released: 2019-09-16

Added

  • Missing typings for Analytics metadata configuration in PlayerConfig and SourceConfig.

Changed

  • Updated bundled analytics-collector to v2.5.4

Fixed

  • HLS live streams with one segment being looped at the start/end of the playlist
  • Segments requested from incorrect URL when a manifest containing a redirect is loaded
  • VPAID ad tag that lead to faulty IMA SDK behaviour making the Player buffer forever
  • Skip button not being shown for some linear VPAID ad tags
  • Not being able to set a higher target buffer level than the default
  • Video and audio segments getting downloaded out of sync for HLS VOD with missing segments
  • Improve ServiceWorker memory usage
  • Playback getting stuck when doing a timeShift exactly to boundaries of DASH Periods and HLS discontinuities
  • Seek for HLS live streams (TweaksConfig.enable_seek_for_live enabled)

v8.16.2

Released: 2019-09-09

Fixed

  • DASH fragmented TTML subtitles didn't show from the very beginning.

v8.16.1

Released: 2019-09-04

Fixed

  • Redux warning of not being in production mode

8.16.0

Released: 2019-09-02

Fixed

  • Transition from VPAID pre-roll ads to main content containing segments addressed via byte ranges
  • Occasional stalling of SegmentTimeline streams with a short DVR window
  • Metadata events being kept across loads when service worker is active
  • Loading HLS master manifest twice in NativePlayer when native_hls_parsing tweak is enabled
  • PlayerAPI.timeShift not being usable when TweaksConfig.enable_seek_for_live is set for live streams when using the NativePlayer

Changed

  • Updated bundled analytics-collector to v2.5.2

8.15.0

Released: 2019-08-18

Fixed

  • PlayerAPI.load or PlayerAPI.unload not cancelling an ongoing load call that is timing out
  • Subtitles not shown when casting from mobile device
  • Initial seeking/timeshifting with HLS streams that contain duplicate segment URIs
  • Content sometimes not being restored correctly after an ad when using HLS streams with discontinuities

8.14.2

Released: 2019-08-07

Fixed

  • getSeekableRange and getCurrentTime returned inconsistent values after seeking with enable_seek_for_live
  • Loading new source on a player that has already loaded a DRM source fails in Firefox 68 and newer

Changed

  • Updated bundled analytics-collector to v2.5.0

8.14.1

Released: 2019-08-06

Fixed

  • Failing npm build

8.14.0

Released: 2019-08-05

Added

  • Improved period switching performance
  • SegmentPlayback.presentationTimestamp
  • Replace EXT-X-KEY URIs protocol with skd:// when ServiceWorker and Fairply are in use.
  • ImaAdvertisingConfig.beforeInitialization, ImaAdvertisingConfig.onAdContainerAvailable and ImaAdvertisingConfig.onAdsManagerAvailable. These callbacks can be used to access properties of the Ima sdk directly from the config
  • Support Metadata and MetadataParsed events for Custom HLS tags

Fixed

  • getSeekableRange returning 0 on a live stream before playback is started
  • HLS streams with multiple audio tracks not starting on specific default track settings
  • Inaccurate timeshifting on live streams with multiple Periods / Discontinuities
  • Period switching on Tizen with active tizen module

Changed

  • PlayerAdvertisingAPI.list with the IMA Advertising Module will now return the list of scheduled ad breaks sorted by the preloadTime, same as in the Bitmovin Advertising Module
  • PlayerAPI.destroy will now first fire PlayerEvent.Destroy before disallowing API access and destroying the Player

8.13.1

Released: 2019-07-30

Fixed

  • Fragmented subtitles not being displayed after seek on fmp4 streams

8.13.0

Released: 2019-07-22

Added

  • Speed up main content restoration after ad breaks by prefetching segments during ad playback
  • MediaRole on SubtitleTracks exposed by the Subtitle API
  • Promise.finally polyfill in the polyfills module
  • TweaksConfig.prevent_video_element_preloading to prevent native player from preloading data
  • Tweak to disable period switching on subtitles. In case there are discontinuities in the video and audio playlists, but not in the subtitle playlist, one has to enable this tweak to make the subtitles show up on period switching
  • Metadata and MetadataParsed events for SCTE35, DATERANGE and custom tags without additional HTTP requests (using a ServiceWorker).

Fixed

  • Initial period not being set on live streams
  • Audio and video segments not being downloaded in sync with each other
  • Player getting stuck when loading an IMA playlist that resolves in an empty VAST tag
  • Subtitles are not shown on cast devices
  • Typo in tweak live_segment_list_start_index_offset
  • Cues with the same timestamps and same content are now detected as duplicates
  • Fragmented subtitles with fMp4 HLS streams
  • Player getting stuck on postroll ad during hls stream and doesn't display replay button
  • Unreasonably heavy quality drops after timeshifts in live streams

8.12.1

Released: 2019-07-17

Fixed

  • Property access on undefined when using custom build player

8.12.0

Released: 2019-07-08

Added

  • AdvertisingConfig.withCredentials, which can be used to specify whether to send credentials such as cookies or authorization headers along with ad requests. Default value is true, which is a change from previous versions for the Bitmovin Advertising Module
  • Synchronize current playback position in live stream between Chromecast sender and receiver when starting/stopping cast session

Fixed

  • PlayerEvent.SourceUnloaded not being fired when unloading the player during ad playback
  • Ad not being completely unloaded with VPAID ads when unloading the player during ad playback
  • Player not using complete HLS DVR window in case of shorter playlist duration than buffer level
  • Loading a valid source right after an invalid one
  • SourceConfigOptions.startOffset not being applied correctly with HLS streams
  • HLS live variant playlists reloaded too frequently

8.11.1

Released: 2019-06-28

Fixed

  • HLS live manifests being requested too frequently
  • Improved performance on low-end devices when playing back content for a long period of time

8.11.0

Released: 2019-06-24

Added

  • API documentation in JSON format
  • Advertising error 2000, which is fired when a player module is not loaded that is required for ad playback
  • Support for DRM system of Edge Anaheim

Fixed

  • Main content not being correctly restored when playing back ad pods with the IMA Advertising Module
  • VMAP ads not played and aderror event triggered due to ad manifest parsing failure
  • Consider BaseURL along with Location while switching CDN for MPD
  • PlayReady protected HLS streams not being played back correctly
  • Player reporting incorrect seekable ranges in live streams

8.10.2

Released: 2019-06-18

Fixed

  • Player not working within minimized Webpack builds

8.10.1

Released: 2019-06-17

Fixed

  • Playback of DRM protected live streams failing, if init data is only provided in the manifest
  • AudioChanged not being fired directly after loading a live source and changing the audio track
  • Don't process event callbacks after player.destroy() was called.

Changed

  • Updated bitmovin-analytics to version 2.4.2

8.10.0

Released: 2019-06-11

Added

  • Support HLS protocol version 8 to determine updateInterval
  • PlayerEvent.LicenseValidated event

Fixed

  • Delayed update of internal buffer ranges causes detection of buffer thresholds being reached to fail
  • Incorrect documentation about SourceLoaded
  • Switching assets during ad playback
  • Target buffer level adjustment on growing DVR window
  • Improve the documentation of startOffset
  • SegmentPlayback events sometimes not being triggered
  • Potential stalling on period switches with a fixed video quality set

Changed

  • The impression will be tracked after the main content or a pre-roll ad started playback.

8.9.0

Released: 2019-05-27

Added

  • Support startOffset in SourceConfigOption

Fixed

  • IMA ads on Chromecast with DASH/HLS/Smooth source
  • HLS codec detection for muxed live content
  • Uncaught TypeError occurring for streams with video resolutions greater than 1080p
  • Initial seek and timeshift sometimes inaccurate due to the GapHandler interfering
  • ContainerTS module required for fMP4/CMAF streams

Changed

  • getSeekableRange now returns values that are consistent with getCurrentTime for live streams

8.8.2

Released: 2019-05-20

Changed

  • Removed DRM_KEY_MISSING error due to false positives

8.8.1

Released: 2019-05-16

Fixed

  • The first switch from unprotected to protected periods might lead to decoding errors on certain hardware

8.8.0

Released: 2019-05-13

Fixed

  • Fairplay DRM not being recognized via PlayerAPI.getSupportedDRM in Safari 12.1+
  • Player potentially getting stuck in case of inaccurate seek/timeshift
  • Problem with playback of live streams using WEBM container format
  • Player stalling on period switches
  • Player stuck when seeking to the start of a gap between DASH periods

8.7.0

Released: 2019-05-02

Added

  • Various memory & performance optimizations

Changed

  • PlayerAPI.getCurrentTime now always returns the current time minus the current timeshift for live streams

Fixed

  • Correctly reset pendingSegmentInfoRequest to prevent infinite timeShift loop
  • Chromecast on Android from Chrome versions where Cast Framework provides wrong initial session state (i.e. Chrome 73 and newer)
  • Pausing the local player when resuming an ongoing Chromecast session
  • Re-enable triggering of the DRM_KEY_MISSING error in case the EME fires a keyneeded event after all known licenses have been requested, but ignore the handling in IE and Edge

8.6.0

Released: 2019-04-17

Fixed

  • Support for multiple closed caption labels using DASH Accessibility tags
  • SMPTE-TT subtitles not being rendered correctly
  • Abort SourceBuffer when updating is done
  • Enter Play state before triggering pre-roll Ads
  • Continuous currentTime when playing over HLS discontinuities

Changed

  • timeShift and getTimeShift are now more honest and work on an extrapolated continuous liveEdge
  • The player's currentTime is mapped to the wall-clock (preferably EXT-X-PROGRAM-DATE-TIME) for HLS live streams

v8.5.0

Released: 2019-04-02

Added

  • Support DateRange Metadata when native_hls_parsing is enabled
  • NativePlayerManifestAPI on the player.manifest namespace, to allow read-only access to data from HLS manifest in NativePlayer
  • Support MetadataChanged event for DateRange metadata
  • Optional VideoQuality.codec and AudioQuality.codec properties to retrieve codec information through the quality APIs (getAvailableVideoQualities, getAvailableAudioQualities, …)

Changed

  • Moved AdvertisingConfig.allowedUiElements to ImaAdvertisingConfig.allowedUiElements and added IMA-specific documentation

Fixed

  • Generate an invalid XML when a newline is present in betweeen an XML tag
  • LiveLatencyTracker.getLatency was returning null when uninitialized
  • AdvertisingConfig.allowedUiElements not hiding unwanted UI elements correctly when it was empty in the IMA Advertising Module
  • Player getting stuck when autoplay is blocked for ads in Firefox
  • Player getting into an infinite loop of trying to start ads and ad playback being blocked by the browser in certain devices
  • Ad break schedule being wrongly triggered when an ad is already playing in the IMA Advertising Module
  • Ad playback being blocked by the browser even though play was triggered through a user-interaction on some platforms like Samsung Browser 8 and iOS Safari on iPad
  • Player sometimes getting stuck if multiple ad breaks are scheduled at the same time and the last one of them does not contain linear ads
  • Old avc1 codec strings not being converted to the new format

v8.4.0

Released: 2019-03-21

Added

  • Support for SmoothStreaming Clip elements
  • PlayerManifestAPI on the player.manifest namespace, which allows read-only access to data from the loaded DASH or HLS manifest

Changed

  • Temporarily disabled DRM_KEY_MISSING error, as it was fired in situations where DRM playback was working fine

Fixed

  • Player not maintaining the audio language when it temporarily drops out in multi-period streams
  • Seeking close to the end of the period caused player.play to reject and player.destroy to remain pending indefinitely when called
  • Player stalling on period switches if audio is catching up after changing the audio track
  • Handling of all periods dropping out of a DASH manifest
  • Stop certain HTTP codes from being retried on given HttpRequestTypes by adding entries to TweaksConfig.disable_retry_for_response_status
  • Content decoding errors due to failed buffer appendage of cached init segments
  • Playback of PlayReady protected streams not containing a PlayReady Object in every PSSH box

v8.3.0

Released: 2019-03-18

Added

  • Optional Ad.data property that provides various additional information about the ad
  • Disabling edts boxes of fMP4 to work around different browser's inconsistent behavior in handling such
  • Firing of the DRM_KEY_MISSING error in case a keyneeded event is triggered after all known licenses have been requested
  • BufferType.BackwardDuration to specify a target backward buffer level that is maintained throughout playback
  • Support for non-linear VPAID ads when using the BitmovinModule for advertising
  • ImaAdTagConfig.passthroughMode, which provides a way to tell the Player which ad tags should be downloaded by the IMA SDK and not by the Player itself.
  • DASH Live Low Latency Streaming with chunked CMAF
  • Support EXT-X-DATERANGE HLS tag

Changed

  • ImaPassthroughMode.Vast is the new default passthrough mode
  • Improve error event data on video element and network errors

Fixed

  • Player's currentTime jumps to wrong value during timeShift with DASH SegmentTimeline
  • Incorrect handling of QUOTA_EXCEEDED errors, causing the player to stall
  • Correctly identify audio codec from CODECS attribute of HLS variants
  • getManifest, getDroppedVideoFrames and getTotalStalledTime should work across ads
  • When a segment is unavailable during a live stream, it will now be skipped instead of permanent retries
  • Ad tag requests missing IMA-specific parameters when using the IMA Advertising Module by using the new ImaPassthroughMode
  • Video element potentially getting stuck in paused state when player unstalls
  • Change default value of MINIMUM_ALLOWED_UPDATE_PERIOD tweak to 1
  • Parsing of VMAP manifests when it included ad urls with newlines
  • player.getCurrentTime returning inconsistent values between timeshift and timeshifted events. It will now always report the old position until the time-shifting operation has finished.
  • Player stalling on period switches if audio is catching up after changing the audio track
  • No types being published to npm

v8.2.4

Released: 2019-04-02

Changed

  • Moved AdvertisingConfig.allowedUiElements to ImaAdvertisingConfig.allowedUiElements and added IMA-specific documentation

Fixed

  • AdvertisingConfig.allowedUiElements not hiding unwanted UI elements correctly when it was empty in the IMA Advertising Module
  • Player getting stuck when autoplay is blocked for ads in Firefox
  • Player getting into an infinite loop of trying to start ads and ad playback being blocked by the browser in certain devices
  • Ad break schedule being wrongly triggered when an ad is already playing in the IMA Advertising Module
  • Ad playback being blocked by the browser even though play was triggered through a user-interaction on some platforms like Samsung Browser 8 and iOS Safari on iPad
  • Player sometimes getting stuck if multiple ad breaks are scheduled at the same time and the last one of them does not contain linear ads

v8.2.3

Released: 2019-03-07

Added

  • ImaAdTagConfig.passthroughMode, which provides a way to tell the Player which ad tags should be downloaded by the IMA SDK and not by the Player itself

Fixed

  • Playback of PlayReady protected streams not containing a PlayReady Object in every PSSH box

v8.2.2

Released: 2019-02-20

Changed

  • Adding an invalid module will result in an error

Fixed

  • Playback of HLS VOD streams with unequal #EXT-X-DISCONTINUITY tag indexes
  • Correctly identify audio codec from CODECS attribute of HLS variants

v8.2.1

Released: 2019-02-08

Fixed

  • Timeshift with a positive timestamp parameter
  • Filtering of unsupported ad media types

v8.2.0

Released: 2019-02-04

Added

  • Dynamic removal of non-playable representations due to DRM license errors
  • VideoQualityAdded, VideoQualityRemoved, AudioQualityAdded and AudioQualityRemoved events
  • Support default sample duration specified in tfhd box of fMP4
  • Time synchronization config as part of the LiveConfig
  • Support for HLS Live streams with #EXT-X-DISCONTINUITY tags but without #EXT-X-DISCONTINUITY-SEQUENCE
  • Tizen Module that implements workarounds for Tizen TV specific issues like BaseMediaDecodeTimes exceeding 32 bits in length
  • VAST MediaFiles and NonLinearAds are now being chosen more optimally based on relevant information about the client
  • Support for linear VPAID ads when using the BitmovinModule for advertising

Changed

  • Default overlay ad position
  • Update bundled Bitmovin Analytics to 2.x+

Fixed

  • Superfluous warning event being occasionally fired after pre-rolls ads
  • Tizen would sometimes play 1 frame beyond the end of buffer, which could lead to us clearing the post timestamp rollover buffer
  • An issue where the Player could enter an endless loop when pre-roll ads were available and autoplay was blocked
  • Ads just showing a black screen on iOS when using the IMA Advertising Module
  • Issue with ad pods containing ads with errors
  • Metadata events originating from segments not being fired after seeking back
  • Player seeking to wrong position in multi-period SegmentTemplate VOD streams
  • PlayerApi.getManifest throwing an Error when used with the NativePlayer
  • PlayerApi.getSource not returning the SourceConfig of the main content while an ad is playing
  • Endless loop when an ad was clicked
  • Wrong source being played back after manual setting of video.src
  • Handling of SegmentTemplate on Representation level
  • Fixed StallStarted occuring between Play and Playing
  • Setting the playback speed in pause state in IE11
  • HLS subtitle playlists could lead to an incorrect stream duration

8.1.2

Fixed

  • Timeshift with a positive timestamp parameter
  • Playback of PlayReady protected streams not containing a PlayReady Object in every PSSH box

v8.1.1

Released: 2019-01-24

Fixed

  • Companion ads not being displayed correctly using the Google IMA SDK
  • Ignored config.location.google_ima
  • Skipped pre-roll ad break in IMA ads module if playback was blocked
  • Attempted to play flash media from VAST tags with video element in Bitmovin ads module
  • isPlaying returning true after a blocked playback attempt with Bitmovin ads module
  • AdBreak.scheduleTime sometimes being null inside the AdBreakStarted event when using the Bitmovin Advertising Module
  • Issue with ad pods containing ads with errors

v8.1.0

Released: 2018-12-21

Added

  • Fairplay key rotation support
  • Support multiple init segments within one HLS media playlist
  • Parsing HEVC codec parameters from ISO BMFF segments
  • Ad tag placeholders (macros)
  • getSupportedTech API method extended with SupportedTechnologyMode parameter to query supported technologies of the loaded player modules
  • VAST AdVerifications support. The parsed AdVerifications tag of a given VAST manifest is now available on the new verifications property of the corresponding Ad.
  • Support for seamless AdaptationSet switching for AdaptationSets with identical group and codecs
  • BufferConfig, PlayerBufferAPI.setTargetLevel and PlayerBufferAPI.getLevel API that can be used to limit and view the forward buffers for video and audio separately.
  • AdManifestLoadedEvent will now also be fired for AdTagConfigs like VMAP.
  • AdManifestLoadedEvent.adConfig, which includes the ad tag that was downloaded. Useful for ad tags that do not result in an AdBreak like VMAP tags. In that case AdManifestLoadedEvent.adBreak is set to null.
  • AdManifestLoadedEvent.downloadTiming, which includes timing information like how long it took for the ad tag to be downloaded. PlayerDelegate.metadataLoaded received a new parameter downloadTiming in order to pass the information along to the event.
  • The AdError now includes the AdConfig that caused the error. PlayerDelegate.onError received a new adConfig parameter to pass the AdConfig along to the event.
  • PlayerAdvertisingAPI.getModuleInfo, which returns the name and version of the currently used advertising module.
  • Support for seamless AdaptationSet switching for AdaptationSets with identical group and codecs
  • PlayerAdvertisingAPI.getActiveAd function that returns the currently active ad.
  • Bitmovin advertising module

Changed

  • PlayerAdvertisingAPI.skip now removes the currently active overlay ad.
  • Advertising API documentation structure
  • Advertising error code documentation structure

Fixed

  • Unsmooth audio track switching
  • Wrong player technology (native.hls instead of html5.hls) being chosen per default on Tizen TVs
  • HLS stream with incorrect segment durations not being played back until the end
  • player.getCurrentTime not returning the current time of the currently active linear ad.
  • AdError.data.code sometimes being undefined.
  • A few seconds of content being skipped after playback of SSAI ad
  • Ad playback in IE with the Bitmovin advertising module
  • Playback of PlayReady protected HLS streams only specifying the WRMHEADER instead of a full pssh box
  • Closed captions being out of sync in live-streams with multiple discontinuities
  • Impression calls being issued for ads
  • Timeout defined in AdvertisingConfig.videoLoadTimeout not always being respected

Deprecated

  • TweaksConfig.max_buffer_level. Please use BufferConfig instead.
  • getVideoBufferLength. Please use PlayerBufferAPI.getLevel instead.
  • getAudioBufferLength. Please use PlayerBufferAPI.getLevel instead.

v8.0.4

Released: 2019-01-10

Fixed

  • Closed captions being out of sync in live-streams with multiple discontinuities
  • Live Smooth Streaming playback
  • View mode switching
  • Ad playback being blocked on iOS when using the Google IMA SDK
  • DASH SegmentTimeline live stream playback
  • VTT subtitle rendering issue due to unexpected order of attributes of X-TIMESTAMP-MAP header
  • stallstarted not being fired on hls livestreams
  • The start time of a HLS discontinuity was added to the video's currentTime if a subtitle playlist was present
  • Unexpected PlayerEvent.StallStarted in live stream startup
  • Switching audio language of live streams after manifest update

v8.0.3

Released: 2018-12-12

Fixed

  • Handling of SegmentTemplate on Representation level
  • Last segment check for long SegmentTimeline MPD assets
  • Playback of Fairplay source after progressive source on Safari
  • Uncaught TypeError Cannot read property 'find' of null on period switch for live streams

v8.0.2

Released: 2018-11-29

Fixed

  • options.startTime not being respected
  • Snapshot acquisition when native playback technology is used
  • Some overlay ads not getting displayed correctly
  • A MODULE_MISSING warning being triggered for the AdvertisingModule although no ads were specified in the player config
  • Graceful handle missing timing properties in conf.network.sendHttpRequest response
  • Stalling state and events on transition from/to paused state
  • Apply PlaybackConfig.volume and muted at setup and retain state during player lifecycle (no reset on load calls)
  • When doing an in-buffer seek near the end of the stream with unequal audio and video buffer length, no playbackfinished event was fired
  • Uncaught exception if HLS master playlist request is cancelled
  • PlayerEvent.AirplayChanged was not renamed to v8 pattern
  • Subtitles being disabled directly after they've been enabled when playing back a HLS stream with metadata tracks
  • Trigger onPlaying after play when autoplay rejected beforehand on iOS
  • Reject load in NativePlayer on source error (e.g. 404)
  • Missing PlayerEvent.TimeChanged when loading a live asset after a finished VOD asset

v8.0.1

Released: 2018-10-19

Fixed

  • getAvailableAudio and getAudio returning more data than specified in the API
  • Backup stream switching for live stream playlist updates
  • Seeking near the end of a Period caused the player to stall indefinitely in Edge
  • Ad playback for Flash
  • Flash renderer overlaying UI
  • Widevine license requests having no headers
  • Remove poster when source is unloaded
  • PlayerSubtitlesAPI.list sometimes returning null instead of an empty array when using the NativePlayer
  • Single file subtitles from a multi-period manifest could not get cleaned up on period switch and were not re-activated after switching
  • Detection of PlayPromise in Safari
  • Transition from non DRM to DRM period
  • Fixed problems with start time calculation on live streams
  • Improved initial time calculation for MultiPeriod Segment Template live streams
  • Player got stuck because of a race condition with drm streams and loading new drm sources before proper playback
  • Init segment not downloaded when timeshifting during init segment request
  • fMP4 media playlists playback
  • Playback speed resetting when switching video quality in the NativePlayer
  • Player getting stuck after switching the audio track with multiple periods / discontinuities
  • Rare race condition with live SegmentTimeline manifests with very short periods which lead to endless buffering
  • Rapid seeking could lead to an exception when accessing undefined.duration

v8.0.0

Released: 2018-09-12

Added

  • Analytics module
  • Config.ui to disable UI or pass UIConfig to player-managed UI via the UI module
  • ViewMode API: getViewMode, isViewModeAvailable, setViewMode & Event.ViewModeChanged
  • SourceConfig.subtitleTracks[]
  • player.getContainer retrieves the HTMLElement the player is embedded in, replacement for removed player.getFigure
  • Event.ModuleReady when a public API of a module becomes available
  • Event.DownloadFinished.timeToFirstByte event property
  • PlayerAPI.getSource(): SourceConfig | null
  • Export ModuleName from player core
  • PlayerSubtitlesAPI in player.subtitles namespace
  • The AdvertisingModule
  • PlayerErrorCode, PlayerError, PlayerModuleMissingError exports
  • Generation of typescript type definition files
  • Documentation for the AdvertisingModule

Fixed

  • PlayReady header parsing
  • Player not being able to play back content in WebKit browsers without play-promise
  • Player did not fire ON_METADATA from raw AAC audio segments
  • DRM playback using WebKit-prefixed EME
  • The PlaybackFinished event firing before post-roll ads are finished
  • VR Events not being fired
  • Playback not starting after initial play call on Safari
  • Loading a new source after playing back a DRM protected source
  • Handling of unexpected behavior of the play promise introduced in Edge 17
  • VMAP manifest parsing in Edge
  • Calling play+pause in load().then in Edge left the video playing

Changed

  • No Player API call returns the player object anymore
  • Automatically upload all modules to Akamai with every release
  • HTTP header array structure to simple headers object
  • No Event.Paused before Event.PlaybackFinished
  • native-flash config moved from config.drm.access to config.nativeflash
  • player.play() now returns a promise which resolves when playback actually starts
  • player.setVolume() now no longer changes the muted state
  • Remove player.setLastSegment()
  • Remove preferred_audio_codec_order and preferred_video_codec_order tweaks (use PlaybackConfig.audioCodecPriority/videoCodecPriority)
  • Move UserSettings into separate module
  • PlayerAPI.getThumb() became PlayerAPI.getThumbnail(), Thumbnail property w became width and h became height, property i was dropped.
  • player.isPlaying() only returns true once playback has actually started on the media element
  • Moved module-local exports from core to the modules (DRM, VR)
  • Converted Player to class (instantiate with new), setup method removed and logic moved into constructor
  • Moved Event and LogLevel exports out of Player object to root namespace
  • Stall events not triggered anymore on initial play and seek/timeShift
  • Change SourceConfig.tracks[] to SourceConfig.thumbnailTrack
  • Event.PlayerResize renamed to Event.PlayerResized
  • Player resize event handling moved from style module to core
  • PlayerAPI.unload(): Promise<void> return value
  • Take SEEK_TO_END_OFFSET into account when applying startOffset
  • Renamed PlayerAPINotAvailableException to PlayerAPINotAvailableError
  • VR starting position (0°) to be in the center of the video frame instead of the left edge
  • Every advertising-related error now has only the AdError event associated with it and not a mix of Warning and AdError
  • Completely reworked the AdvertisingConfig and advertising-related player functions. The new Advertising API is available in the ads namespace on a player instance after a source has been loaded.
  • documentation for the ErrorEvent
  • Smooth manifest errors now will be thrown as a SOURCE_MANIFEST_INVALID error with an appropriate message.
    Unknown mime types in the manifest will only cause a warn log instead of an error.
  • The ABR logic v3 (DOWNLOAD_PREDICTION_LOGIC) is now activated by default
  • WarningMessages became WarningCode enum
  • Rename getDroppedFrames to getDroppedVideoFrames
  • ImaAdBreak.vastResponse now holds a Promise that resolves with the loaded ad manifest
  • Rename bitmovin-player.zip and bitmovin-player-modules.zip to bitmovinplayer.zip and bitmovinplayer-modules.zip

Removed

  • Deprecated addEventHandler and removeEventHandler methods
  • search_real_end configuration tweak
  • PlayerAPI.fireEvent
  • Config.style.ux flag to toggle UI
  • Fullscreen & PiP API (replaced by ViewMode API): isPictureInPictureAvailable, enterPictureInPicture, exitPictureInPicture, isPictureInPictureAvailable, EVENT.ON_PICTURE_IN_PICTURE_ENTER, EVENT.ON_PICTURE_IN_PICTURE_EXIT, enterFullscreen, exitFullscreen, isFullscreen, EVENT.ON_FULLSCREEN_ENTER, EVENT.ON_FULLSCREEN_EXIT
  • User settings (module)
  • The player will not create a figure element around the video anymore, removed player.getFigure API call
  • Config.source (the source has been separated from the player Config)
  • getAvailableLicenseServers and getAvailableImpressionServers