Release Notes (Web)
8.189.0
Released: 2024-11-11
Added
- Support for HLS Playlist Delta Updates
Fixed
- Unexpected
Playing
event being emitted when seeking via Player UI on Safari PlaybackFinished
event sometimes not being emitted on Safari 18- Playback not resuming after skipping multiple mid rolls with
IMA Advertising Module
- Inconsistent values returned by
getPlaybackVideoData()
on Safari with Service Worker when playing HLS streams featuring audio-only variants - Improved performance of ClearKey decryption
8.188.0
Released: 2024-11-04
Fixed
- Audio track switch only becoming audible after several seconds on smart TVs
- Type error when calling
AdaptationApi.setConfig
with production builds of the player - VPAID preroll ad sometimes getting skipped if scheduled after unloading a previous ad when using
Bitmovin Advertising Module
8.187.0
Released: 2024-10-28
Added
advertising.trackers.omSdk.onAccessMode
now also works for the IMA module by converting the returned map toomidAccessModerules
Fixed
- Beginning in October 2024, when starting a CAF cast session with active subtitles, the subtitles would not become active on the receiver.
Changed
- UI: Dpad keymap for Android devices
8.186.0
Released: 2024-10-21
Added
- Improved documentation for
shouldRecreateSourceBuffersOnPeriodSwitch
Changed
- Update bundled analytics collector from version 2.40.1 to 2.41.0 (release notes)
Fixed
- Broken playback when seeking backwards via
Bitmovin Player UI
after playing near the end of the stream - Missing
AdQuartile
events with VPAID +BAM
when scheduling back-to-back ads - TypeError:
Cannot read properties of undefined (reading 'dispatch')
atcloseSession
- Infinite loop when calling the
getAvailableSegments
API while playing HLS content
8.185.0
Released: 2024-10-14
Added
- HLS Playlist Delta Updates with live streams that support them and carry Program Date Time tags
LiveConfig.incrementalManifestUpdates
flag to control whether the player should perform incremental manifest updates such as HLS Playlist Delta Updates. Default istrue
.- Support for multi-discontinuity HLS streams where video is encrypted and audio is not
Changed
- Update bundled analytics collector from version 2.40.0 to 2.40.1 (release notes)
8.184.0
Released: 2024-10-07
Fixed
- Chance of stalling with fMp4 HLS live streams after switching to a never-tried-before quality
- Playback getting stuck on Tizen 2018 and 2019 models when seeking close to the end of buffer
- Make input type of
PlayerConfigBuilder.optimizeForPlatform
optional
8.183.0
Released: 2024-09-30
Added
- Introduced
PlayerConfigBuilder
for a simplified configuration of the player
Fixed
- Unnecessary delay in segment scheduling for HLS Live due to playlist updates
- Switching between audio tracks with different codecs sometimes causing playback to stall on WebOS 2021 and later
- Missing properties on the API documentation for
GoogleCastRemoteControlConfig
andWebSocketRemoteControlConfig
8.182.0
Released: 2024-09-23
Fixed
- Sometimes a
DRM_FAILED_LICENSE_REQUEST
player error is thrown when loading a clear source after an AES encrypted source - Player with active Tizen/WebOS module getting stuck when only one content type exceeded the safe BaseMediaDecodeTime limit and the other content type was loaded first
8.181.0
Released: 2024-09-16
Fixed
- Broken playback when a buffer gap is encountered in proximity of a timestamp rollover on Tizen
- HLS live stream not erroring out or recovering from failure during quality switch-up
8.180.0
Released: 2024-09-09
Changed
- Player no longer dispatches additional
PlayerError
s after the first one is emitted - Update bundled analytics collector from version 2.39.0 to 2.40.0 (release notes)
- UI:
selectbox
now sets itsViewMode
toPersistent
whenever and as long as the select-dropdown is shown - UI:
uicontainer
andsettingspanel
will no longer auto-hide if there are any components that are in thePersistent
view mode
Fixed
- Advertising with IMA not resuming content when starting with an offset that goes across multiple ad breaks and VMAP with passthroughMode is set to
vastandvmap
- Update
PlayerAPI
to exposeanalytics: Bitmovin8Adapter
with analytics public Adapter API - UI:
selectbox
dropdown not closing in Safari when the UI is hidden
Added
- UI:
Component
now has aViewMode
that can either bePersistent
orTemporary
8.179.0
Released: 2024-09-02
Changed
- Update bundled analytics collector from version 2.38.0 to 2.39.0 (release notes)
Fixed
- HLS live streams sometimes not recovering from stall when going offline while playing at live edge
- Parsing of HLS manifest freeze when having custom tags with quoted values
Added
- UI: Dutch (nl) subtitles
- UI: Link to API docs in README
- UI: Support for a new placeholder
{adBreakRemainingTime}
in AdMessageLabel that displays the remaining time in an ad break. Documentation on usage.
8.178.0
Released: 2024-08-21
Changed
- Update bundled analytics collector from version 2.37.1 to 2.38.0 (release notes)
Fixed
- Subtitles not being displayed on iOS/iPadOS devices when entering fullscreen in a
WKWebView
- Native player on Safari not triggering
Metadata
event for HLSDATERANGE
tag withEND-ON-NEXT=YES
and no matching future tag - Native player on Safari not respecting
CLASS
attribute on HLSDATERANGE
tags withEND-ON-NEXT=YES
- Player skipping HLS discontinuity sequence or DASH period if it is shorter than the forward target buffer length and has overlapping timestamps with its preceding discontinuity sequence or period.
Added
- UI: API doc generation and publishing. The API doc from the UI can be found here
8.177.1
Released: 2024-08-14
Fixed
- Playback failure with ClearKey content on Tizen 2016
8.177.0
Released: 2024-08-12
Added
- Property TextTrack.isSideloaded to distinguish between sideloaded and in-stream text tracks
Fixed
- Enabling non-fragmented in-stream subtitles on Chromecast
- HTML5 player not triggering
Metadata
event for HLSDATERANGE
tag withEND-ON-NEXT=YES
and no matching future tag - SSAI ads with gaps in-between sometimes getting skipped if playback is paused and resumed again
- Same ClearKey loaded twice when present in both audio and video HLS variant playlist
8.176.0
Released: 2024-08-06
Added
- Parsing of
forced-subtitle
attribute in addition toforced_subtitle
for DASH streams - A
LowLatencyConfig
can now also be defined on the source level within aLiveConfig
in theSourceConfig
- Support for
LowLatencyAPI.getLatency()
on Safari
Fixed
- Playback of streams with timestamps larger than 32bits on VIDAA TVs
- ABR improvements for MPEG-TS streams
8.175.0
Released: 2024-07-29
Added
TweaksConfig.infinite_retries_for_live
(default value:true
) which, if disabled, will cause the player to fire aPlayerError
if all segments and/or playlists become unavailable during playback of a live stream
Changed
- Update bundled analytics collector from version 2.36.0 to 2.37.1 (release notes)
Fixed
- Playback sometimes not starting or resuming on VIDAA TVs
- Skipped SSAI Ad when seeking from one Ad period to another with SegmentBase DASH asset
preloadOffset
not applied toadBreaks
extracted fromVMAP
- HLS VOD streams not throwing a
SOURCE_COULD_NOT_LOAD_MANIFEST
error after all variants become unreachable - Potential memory leak with HLS live streams
8.174.0
Released: 2024-07-22
Fixed
- Infinite AES-128 key loading retries for HLS manifests with missing codecs when loading the key fails
- Missing
frameRate
attribute onVideoQuality
returned bygetPlaybackVideoData()
- Startup failure on some VoD streams with encoded startup times larger than 0
8.173.0
Released: 2024-07-15
Changed
- Provide consistent IDs for closed caption tracks
Fixed
- Player no longer providing consistent closed captions IDs across browsers since Safari 17.4
- Low-latency ABR not working in
prod
builds
8.172.0
Released: 2024-07-08
Fixed
- Player sometimes emitting a
PlaybackFinished
event on Safari when the currentTime is set on the video element directly and seeking is disabled - Playback stuck at discontinuity when subtitles are enabled with HLS fMP4 stream and plaintext WebVTT subtitles
Added
- UI: Eco Mode toggle button
Changed
- UI: Playground demo page to include checkbox to enable/disable ads
- UI: Store basic configuration of playground demo page in localStorage
8.171.0
Released: 2024-07-01
Fixed
- Playback of Widevine streams using a server certificate failing during client-side ad playback on 2017 WebOS TVs
- Skipping a segment upon failover for HLS live streams with sliding windows
- Player failing to play HLS streams with a single segment and an
EXT-X-START
tag - Player throwing unhandled errors during HLS failover [e.g.
Cannot read properties of undefined (reading 'promise') in 'e.getPayload'
] - Missing
Paused
event on autoplay failure on Firefox and Safari on iOS
8.170.0
Released: 2024-06-24
Fixed
- Player would default the offset of an
EXT-X-BYTERANGE
tag to0
instead of the end of the previous segment
8.169.0
Released: 2024-06-17
Added
- Support for
ManagedMediaSource
on Safari for more efficient media segment download scheduling and DASH support on iOS. It can be controlled with theprefer_managed_media_source
tweak (default:true
)
Fixed
- Synchronizing client time with time server via
LiveConfig.synchronization
not working with HLS streams - Player staying on the lowest quality when the Qualities are in reverse bitrate order when using a Smooth stream
- PlayerAPI.getCurrentTime with TimeMode.RelativeTime returning wrong value for DASH live stream
- Temporarily stalling at discontinuities on webOS when
TweaksConfig.hls_clear_buffers_on_discontinuity_switches
is disabled - CSS pseudo-class deprecation warning logged on Chrome
8.168.0
Released: 2024-06-12
Changed
SegmentRequestFinished
event now includes atimeToFirstByte
property which is set to -1 if the segment request is cancelled before headers are received
Fixed
- Player not respecting user selected representation even if it is excluded through the adaptation config
- Player sometimes requesting segments from wrong CDN after HLS failover
8.167.0
Released: 2024-06-03
Changed
- Update bundled analytics collector from version 2.34.1 to 2.36.0 (release notes)
Fixed
- Video element gets hidden when loading a different source during CSAI ad playback if multiple pre-rolls are scheduled
Unmuted
event sometimes not firing during ad playback in Safari on iOS- Missing
SourceUnloaded
event when a new source is loaded while playing an Ad with IMA SDK - Player not exiting
ViewMode.Fullscreen
whendestroy
is called - UI: Two touch interactions needed to skip an ad or open the click through link
Added
- UI:
Component
instances are now assigned to theirHTMLElements
for easier accessing
8.166.0
Released: 2024-05-27
Added
- Native PiP support using
HTMLVideoElement.requestPictureInPicture
Changed
- Update bundled analytics collector from version 2.33.1 to 2.34.1 (release notes)
Fixed
- Player skipping first segment of DASH
SegmentTimeline
VOD streams
8.165.0
Released: 2024-05-21
Changed
- Update bundled analytics collector from version 2.33.0 to 2.33.1 (release notes)
Fixed
- WebVTT only displaying one line of subtitles in some cases
- Replay through video element play call after playback has ended on PS5
- Playback failure when redirected HLS source is used on Safari 17.4
- Improve recovery mechanism for temporary playlist failures
Added
- UI:
QuickSeekButton
control bar component for jumping +/- a configurable number of seconds (10 second default)
8.164.0
Released: 2024-05-13
Changed
- Update bundled analytics collector from version 2.32.5 to 2.33.0 (release notes)
Fixed
- Player not falling back to Widevine L3 renditions after L1 ones are excluded from DASH streams
- Player mistakenly selecting DASH
trickmode
track for regular video playback - Playback beginning from live edge even when
startOffset
is set to 0 andstartOffsetTimelineReference
is set toTimelineReferencePoint.Start
- UI: No subtitle is shown when switching between different tracks
8.163.0
Released: 2024-04-29
Fixed
- Potential playback issues resulting from calling
player.play()
multiple times - UI:
ControlBar
not auto-hiding whenUIConfig.disableAutoHideWhenHovered
is set totrue
on some touch screen devices
8.162.0
Released: 2024-04-22
Fixed
- Subtitle Fragments loaded from the start of the video instead of the current position after a mid roll ad
- Safari crashes when turning on certain CEA captions tracks
Added
- UI: Type export for
UIVariant
interface
8.161.0
Released: 2024-04-15
Changed
- CEA caption extraction for fMP4 segments with the
SubtitlesCEA608
module does not depend on theContainerTS
module anymore
Fixed
- Player not properly updating its target buffer level for growing DVR streams, potentially causing ABR downshifts in cases where the initial DVR length is much shorter than the configured forward buffer duration
- Duplicate or wrong
SegmentPlayback
events when the same segments are loaded multiple times, e.g. when doing a backward out-of-buffer seek.
Removed
- Legacy
TweaksConfig.live_segment_list_start_index_offset
that was allowing to reduce the seekable range for live HLS and DASH SegmentList streams - Web Worker polyfill
Added
- UI:
UIContainerConfig.hideImmediatelyOnMouseLeave
to immediately hide the UI when mouse leaves it
8.160.0
Released: 2024-04-09
Fixed
- Playback of AES-128 encrypted HLS streams with unencrypted init segments
- Playback jumping forward during period transitions with DASH
SegmentTimeline
streams having negative period start times
Added
- UI:
seekbarSnappingEnabled
flag inUIConfig
to enable/disable the play head snapping to markers on the seek bar when seeking near them, the default istrue
.
8.159.0
Released: 2024-04-02
Fixed
- Wrong segment getting loaded as a fallback on init segment loading failure
- UI: Subtitle settings not being retained when the UI variant switches
Added
- UI:
disableStorageApi
config option
Changed
- UI:
localStorage
availability check to not create a test-entry anymore
8.158.0
Released: 2024-03-25
Added
TweaksConfig.hls_parse_native_metadata
that, if set to false, disables processing of native metadata events on Safari
Fixed
- Potential stall when switching to a redundant stream in case of HLS live stream failover
- IMA module throwing an exception when calling
load
orunload
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
AdaptationConfig.maxStartupBitrate
sometimes not being respectedAdaptationConfig.startupBitrate
mistakenly disabling ABR for DASH sources- Duplicate live edge seek/timeshift on startup
- Modular player breaking on platforms without
Map
/WeakMap
support when using DRM, VR or RemoteControl modules - Failing to load HLS sources on Tizen 2016 due to error
Can't find variable: Set
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
- Player stuck on lowest quality when using Low Latency ABR
- Missing
PlayerEvent.Metadata
event for HLSDateRange
tag whenEND-ON-NEXT
attribute is present
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
andcorrelator
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
NetworkConfig.requestApi
to specify the API that the player uses for network requests.XHR
is used by default.
Fixed
- Incorrect Typescript types for
AppleFairplayDRMConfig
SOURCE_MANIFEST_INVALID
error when loading HLS sources with missing codec strings if WISH ABR is enabledaudioCodecPriority
not working for HLSPLAYBACK_VIDEO_DECODING_ERROR
when unstalling after rebuffering with DRM content on WebOS 2023
8.148.1
Released: 2024-01-25
Fixed
PLAYBACK_VIDEO_DECODING_ERROR
when unstalling after rebuffering with DRM content on WebOS 2023
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
- Player sometimes getting stuck at SSAI transitions on PlayStation 4
maxStartupBitrate
andstartupBitrate
config options ignored on source reloadmaxStartupBitrate
should not be used asstartupBitrate
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
TweaksConfig.check_all_drm_licenses_for_kid
to control whether a KID should be checked for a usable key status across all available DRM licenses. Default istrue
.
Changed
- Update bundled analytics collector from version 2.32.1 to 2.32.2 (release notes)
Fixed
- Unexpected
DvrWindowExceeded
event andtimeshift
attempt during SSAI transitions on PlayStation 5 - Player sometimes getting stuck at period transitions on PlayStation 5
ErrorCode.DRM_MEDIA_KEY_INITIALIZATION_FAILED
error when (re-)loading DRM sources in quick succession- DRM error if KID becomes unusable on one license but remains usable on others
- Potential race conditions during Load/Unload on WebOS when using
immediateLicenseRequest
8.143.2
Released: 2024-01-03
Fixed
- Delay DRM preparation until encrypted period is encountered on WebOS, even if
DRMConfig.immediateLicenseRequest
is enabled maxStartupBitrate
andstartupBitrate
config options ignored on source reload
8.143.1
Released: 2023-12-06
Fixed
- Potential race conditions during Load/Unload on WebOS when using
DRMConfig.immediateLicenseRequest
8.143.0
Released: 2023-12-04
Added
- DRM key system priority is now configurable using the
keySystemPriority
inWidevineModularDRMConfig
,PlayReadyDRMConfig
,AdobePrimeTimeDRMConfig
, andAppleFairplayDRMConfig
. TweaksConfig.hls_backup_stream_penalty_duration
to depenalize failed backup streams
Changed
- HLS failover upon failure on primary stream switches all representations to backup
PlayerConfig.adaptation.onVideoAdaptation
andPlayerConfig.adaptation.onAudioAdaptation
are no longer called for init segments. The init segment will be loaded as a result of the adaptation choice.
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
TweaksConfig.check_all_drm_licenses_for_kid
to control whether a KID should be checked for a usable key status across all available DRM licenses. Default istrue
.
Fixed
ErrorCode.DRM_MEDIA_KEY_INITIALIZATION_FAILED
error when switching DRM sources in a fast manner- DRM error if a KID becomes unusable on one license but remains usable on others
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
mimeType
property to the audio tracks exposed vialabeling
API on Safaricodec
property to the data returned bygetPlaybackVideoData
API on Safari whenServiceWorker
is used
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 tracklabel
andid
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
- Documentation for
SOURCE_ERROR
error code
Fixed
- Inaccurate seeking with DASH
SegmentTimeline
streams ifpresentationTimeOffset
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 aWarningEvent
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
- AdaptationConfig.logic for selecting type of adaptation logic being used
- WidevineModularDRMConfig.retryOtherKeysOnForbiddenLicense which when enabled attempts the playback of other representations with different Key IDs whenever a DRM license request returns 403 Forbidden
- DRM_FAILED_LICENSE_REQUEST warning when the Widevine license request fails because access is forbidden and WidevineModularDRMConfig.retryOtherKeysOnForbiddenLicense is enabled
- WISH ABR that can be enabled via AdaptationConfig.logic
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
- Duplicated
PlayerEvent.MetadataParsed
being triggered in Safari when usingnative_hls_parsing
- Player reporting a
currentTime
of0
when switching audio track while a segment is being processed
8.134.0
Released: 2023-09-25
Added
PlayerEvent.Metadata
andPlayerEvent.MetadataParsed
withmetadataType
EVENT_STREAM
will have theirschemeIdUri
exposed on themetadata.schemeIdUri
field
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 theCrypto
module first - A
WarningEvent
is dispatched when passing an invalid subtitle object toPlayerSubtitlesAPI.add
orSourceConfig.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
andPlayerEvent.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 usingnative_hls_parsing
and the same URL is present in different discontinuities inside the playlist
8.132.0
Released: 2023-09-11
Added
- OmSdkTracker config
advertising.trackers.omSdk.serviceWindowProxy
to override the default window.top
Changed
- Arrays returned by
PlayerAPI.getAvailableAudioQualities
andPlayerAPI.getAvailableVideoQualities
are no longer reflecting the order in the manifest and are instead sorted by bitrate in ascending order - Updated API docs theme and structure; URLs are no longer in lowercase, but match the casing of the type name
PlayerEvent.SegmentRequestFinishedEvent
now provides the url of the segment request
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
- Capitalized HLS tag names instead of small case exposed through
PlayerManifestAPI.hls
- Variant playlist url is exposed as
uri
instead ofvalue
inHlsAPI.properties
throughPlayerManifestAPI.hls
Fixed
- ABR cancelling and re-downloading the same segments in case of high RTT
- HLS tag names exposed through
PlayerManifestAPI.hls
not containingEXT-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
- Playback stalling on WebOS if the DRM source is reloaded with
DRMConfig.immediateLicenseRequest
while the license request is still ongoing
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
- Possibility to dynamically change
AdaptationConfig.limitToPlayerSize
via Adaptation API
Changed
- Updated OMSDK to version
1.4.8
Fixed
- Unhandled type error upon competing
player.unload()
andplayer.destroy()
calls - ABR improvements for HLS on lower-end devices
8.128.0
Released: 2023-08-07
Added
- Possibility to dynamically change AdaptationConfig.resolution via Adaptation API
- AdaptationAPI.getConfig method to retrieve the current adaptation config
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
SourceConfigOptions.startOffset
sometimes not respected with HLS live streams on Safari
8.126.0
Released: 2023-07-24
Added
DrmConfig.immediateLicenseRequest
support on LG WebOS TVsAdaptationAPI
available onPlayerAPI.adaptation
to dynamically change the behavior of the player's adaptation logic
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 theUIManager
that is dispatched when the UI manager switches to a different UI variant - UI: Readonly
currentUi
field on theUIManager
that exposes the activeUIInstanceManager
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 thesourceVolume
andtargetVolume
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
- StaticPlayerAPI.removeModule to remove added modules
engine-webrtc
module that adds support for WHEP sources
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
hls_parse_manifest_in_worker
tweak to enable HLS playlist parsing in web worker
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
andgetBufferedRanges
in livestreams on Safari withNativePlayer
whenEXT-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
andPlayerAPI.getBufferedRanges
to return relative values again to prevent problems withPlayerAPI.timeShift
andPlayerAPI.seek
in HLS streams withEXT-X-PROGRAM-DATE-TIME
tags on Safari with player version8.107.0
8.107.0
Released: 2023-02-27
Fixed
- Player emitting
StallStarted
andStallEnded
events while timeshifting PlayerAPI.getSeekableRange
andPlayerAPI.getBufferedRanges
returning relative instead of absolute values on Safari for HLS live streams withEXT-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
andPlayerAPI.timeShift
not working as expected with HLS streams that have anEXT-X-PROGRAM-DATE-TIME
tag on Safari. Fixed in8.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 clickingPlaybackToggleButton
orHugePlaybackToggleButton
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
- Frequent stalls during SSAI sections of HLS streams containing large
- Missing Bitmovin header in UI release files
- Broken UI export in the
bitmovin-player
npm package preventing import ofbitmovin-player/bitmovinplayer-ui.css
andbitmovin-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 ofbitmovin-player/bitmovinplayer-ui.css
andbitmovin-player/bitmovinplayer-ui.js
8.101.0
Released: 2023-01-17
Added
- UI: Export
Localization
andSpatialNavigation
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 ofbitmovin-player/bitmovinplayer-ui.css
andbitmovin-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
orPeriod.Start
8.98.0
Released: 2022-11-22
Added
TweaksConfig.parse_emsg_boxes
tweak to disable parsing ofemsg
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
andbtoa
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
andPlayerEvent.Ready
being emitted on PS5 before a DRM license response is receivedPlayerAPI.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 logicMIN_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 fromfalse
totrue
. For the time being, it is possible to switch back to the legacy transmuxer by setting this flag tofalse
. Included are various bug fixes and experimental support for CEA-708 closed captions viaTweaksConfig.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 TVsload()
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:ss
to
hh: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
tofalse
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 ofemsg
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 forhls
inPlayerConfig.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
viaPlayerConfig.storage.disableStorageApi
- Option to disallow the ad module to use the
localStorage
viaAdvertisingConfig.disableStorageApi
Fixed
PlayerAPI.setAudio
does not work whenPlaybackConfig.audioLanguage
is set- Ignore
styp
box with valuelmsg
(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
WebView
s that have themediaTypesRequiringUserActionForPlayback
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 usingX-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 timeplaystation_5.esvm
tweak to toggle Enhanced Security Video Modeplaystation_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 wrongrow
andcolumn
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 inTweaksConfig
to support both CEA-708 and CEA-608 with theexperimental_transmuxing
tweak
Fixed
Ready
event triggered before promise ofplayer.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 anelst
-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 beforePlaybackFinished
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
andMetadata
events of HLS live streams withEXT-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
orSeekBarConfig.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 beforeSourceLoaded
when using HLS on Safari player.getTimeshift()
returning the wrong offset after restoring from an Ad break on Safari 15player.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
toHttpResponseTiming
- Optional
url
,elapsedTime
andsegmentDuration
toRequestProgress
SEGMENT_LOADING_PROGRESS_CHECK_INTERVAL
tweak to set the desired interval of proactive download progress checks- Eager download cancellation
prepareMediaInfo
callback toGoogleCastRemoteControlConfig
providing the possibility to alter theMediaInfo
object before it is loaded onto the receiver upon changing its media/source- UI: Support for providing custom
aria-label
whenListBox
is used
Changed
- Adjust return types for
getAudio
,getSnapshot
, andgetThumbnail
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
, andNETWORK_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
andNETWORK_ERROR
- Additional error context to
SOURCE_PROGRESSIVE_STREAM_ERROR
andSOURCE_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 troubleshootingDRM_NO_KEY_SYSTEM
error event now contains information about the provided and available key systemsDRM_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 ofMODULE_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 ofDRM_MEDIA_KEY_INITIALIZATION_FAILED
whenmsSetMediaKeys
fails - Firing a
DRM_NO_KEY_SYSTEM
error instead ofDRM_MEDIA_KEY_INITIALIZATION_FAILED
whenrequestMediaKeySystemAccess
orcreateMediaKeys
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
andDRM_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
andAdFinished
with the IMA module when the previous ad request has returned an empty response - Missing
AdStarted
andAdFinished
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
ignoringTimeMode
parameter ingetCurrentTime
- OMSDK not respecting VAST manifest verification parameters
8.74.0
Released: 2021-11-23
Added
setAspectRatio
andgetAspectRatio
API methodsPlayerEvent.AspectRatioChanged
event which is fired when aspect ratio is changed usingPlayerAPI.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
- Support for the Open Measurement Software Development Kit (OM SDK)
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 theHTMLMediaElement
toPlayerError
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
/ notfragmented
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 theAudioTrackListBox
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 theSourceLoaded
event has already been dispatched AudioChanged
event definition now allowssourceAudio
property to benull
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
andAdPlaybackReportingAPI.done
now returns a promisePlayerAdvertisingAPI.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
andplayback.subtitleLanguage
not respected - Fragmented subtitles tracks sometimes failing to activate
getCurrentTime
sometimes returning 0 during period transitionsstartOffset
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 nestedExtension
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 inspan
s. - 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 usingfreewheelVastFallbackHandling
- 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 fromSourceConfig
andDRMConfig
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
andSeeked
event when setting current time on video element during startup withstartOffset
drm: DrmAPI
missing in thePlayerAPI
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 proactivelyAdvertisingConfig.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 streamsDrmLicenseAdded
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
andSETUP_MISSING_LICENSE_WHITELIST
error codes to use more up-to-date terminology
8.51.0
Released: 2020-12-22
Added
metadata
field on theSourceConfig
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 returning0
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 andAccessibility
descriptors in DASH not being exposed inSubtitleTrack
s 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
andforce_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 targetBufferBlock
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
- Chrome HLS playback starts at wrong position when
Added
- Put back
segment_encryption_transition_handling
tweak toPlayerConfigAPI
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'
BaseMediaDecodeTime
s go from below 32 bit to above 32 bit mid-stream
Changed
- Remove obsolete
segment_encryption_transition_handling
fromPlayerConfigAPI
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 afterplay
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
andFallback
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
andpro
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 2016PLAYBACK_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
andrepresentations
to theonVideoAdaptation
andonAudioAdaptation
callback to allow custom processing
8.40.0
Released: 2020-07-23
Added
- Replace all custom protocols with
skd
whenEXT-X-SESSION-KEY
is present in a hls master playlist and the ServiceWorker is used DRMConfig
api spec to addpreferredKeySystems
, andPlayreadyDRMConfig
to addutf8message
andplainTextChallenge
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
forBitmovin 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
BaseMediaDecodeTime
s with active Tizen module, when only one stream hadBaseMediaDecodeTime
s 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
BaseMediaDecodeTime
s > 2**32 to a Period with smallerBaseMediaDecodeTime
s 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 havingimmediateLicenseRequest
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 astartOffset
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 onAdPlayerDelegate
to select progressive ad media file based on main content download quality data
Changed
- Improved API description for
PlayerEvents
andPlaybackConfig
- 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
andbreakEnd
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 usingNativePlayer
- 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 theAdBreaks
in schedule after playback. Default istrue
- 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
andEvent.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 DASHSegmentBase
- 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 aDOMException
, 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 whenEXT-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 theLogsConfig
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
orMsMediaKeys
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
andMetadata
events withServiceWorker
- 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 toPlayerExports
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 VPAIDAdInteraction
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 usingTweaksConfig.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 inDrmConfig
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 toEditList
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 onPlayerEvent.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
andavailableImpressionServers
frameRate
property toVideoQuality
except for Safari use-case
Fixed
PlayerManifestAPI
not being documented onPlayerAPI.manifest
- Graceful handling of faulty
SampleEncryptionBox
in fMP4 streams - Player stalling on period transitions with DASH live streams when new
Period
s 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 theHTMLMediaElement
toPlayerError
- 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
asforced_subtitles
Changed
- Updated bundled analytics-collector to
v2.7.1
Removed
PlaybackConfig.forcedSubtitles
which got replaced byPlaybackConfig.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 withoutcontainer-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 changesplayer.subtitles.cueEnter
andplayer.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 theMediaSource
- 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 duplicateneedkey
events- Consider merging
Representation.SegmentTemplate
withAdaptationSet.SegmentTemplate
while selectingMPDHandler
- Fix uncaught exception when merging
AdaptationSet
s for DRM streams with multiple videoAdaptationSet
s 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
ortimeShift
8.17.0
Released: 2019-09-16
Added
- Missing typings for Analytics metadata configuration in
PlayerConfig
andSourceConfig
.
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
whennative_hls_parsing
tweak is enabled PlayerAPI.timeShift
not being usable whenTweaksConfig.enable_seek_for_live
is set for live streams when using theNativePlayer
Changed
- Updated bundled analytics-collector to
v2.5.2
8.15.0
Released: 2019-08-18
Fixed
PlayerAPI.load
orPlayerAPI.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
andgetCurrentTime
returned inconsistent values after seeking withenable_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
URI
s protocol withskd://
when ServiceWorker and Fairply are in use. ImaAdvertisingConfig.beforeInitialization
,ImaAdvertisingConfig.onAdContainerAvailable
andImaAdvertisingConfig.onAdsManagerAvailable
. These callbacks can be used to access properties of theIma
sdk directly from the config- Support
Metadata
andMetadataParsed
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
Period
s /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 thepreloadTime
, same as in the Bitmovin Advertising ModulePlayerAPI.destroy
will now first firePlayerEvent.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
SubtitleTrack
s exposed by the Subtitle API Promise.finally
polyfill in the polyfills moduleTweaksConfig.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
andMetadataParsed
events forSCTE35
,DATERANGE
and custom tags without additional HTTP requests (using aServiceWorker
).
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 istrue
, 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 withLocation
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 alive
source and changing the audio track- Don't process event callbacks after
player.destroy()
was called.
Changed
- Updated
bitmovin-analytics
to version2.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
inSourceConfigOption
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 withgetCurrentTime
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
andgetTimeShift
are now more honest and work on an extrapolated continuous liveEdge- The player's
currentTime
is mapped to the wall-clock (preferablyEXT-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 theplayer.manifest
namespace, to allow read-only access to data from HLS manifest inNativePlayer
- Support
MetadataChanged
event for DateRange metadata - Optional
VideoQuality.codec
andAudioQuality.codec
properties to retrieve codec information through the quality APIs (getAvailableVideoQualities
,getAvailableAudioQualities
, …)
Changed
- Moved
AdvertisingConfig.allowedUiElements
toImaAdvertisingConfig.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 uninitializedAdvertisingConfig.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 theplayer.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 andplayer.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
HttpRequestType
s by adding entries toTweaksConfig.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 akeyneeded
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 duringtimeShift
with DASHSegmentTimeline
- Incorrect handling of
QUOTA_EXCEEDED
errors, causing the player to stall - Correctly identify audio codec from CODECS attribute of HLS variants
getManifest
,getDroppedVideoFrames
andgetTotalStalledTime
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 to1
- Parsing of VMAP manifests when it included ad urls with newlines
player.getCurrentTime
returning inconsistent values betweentimeshift
andtimeshifted
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
toImaAdvertisingConfig.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
andAudioQualityRemoved
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
andNonLinearAds
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 anError
when used with theNativePlayer
PlayerApi.getSource
not returning theSourceConfig
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
onRepresentation
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
returningtrue
after a blocked playback attempt with Bitmovin ads moduleAdBreak.scheduleTime
sometimes beingnull
inside theAdBreakStarted
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 withSupportedTechnologyMode
parameter to query supported technologies of the loaded player modules- VAST
AdVerifications
support. The parsedAdVerifications
tag of a given VAST manifest is now available on the newverifications
property of the correspondingAd
. - Support for seamless
AdaptationSet
switching forAdaptationSet
s with identicalgroup
andcodecs
BufferConfig
,PlayerBufferAPI.setTargetLevel
andPlayerBufferAPI.getLevel
API that can be used to limit and view the forward buffers for video and audio separately.AdManifestLoadedEvent
will now also be fired forAdTagConfigs
like VMAP.AdManifestLoadedEvent.adConfig
, which includes the ad tag that was downloaded. Useful for ad tags that do not result in anAdBreak
like VMAP tags. In that caseAdManifestLoadedEvent.adBreak
is set tonull
.AdManifestLoadedEvent.downloadTiming
, which includes timing information like how long it took for the ad tag to be downloaded.PlayerDelegate.metadataLoaded
received a new parameterdownloadTiming
in order to pass the information along to the event.- The
AdError
now includes theAdConfig
that caused the error.PlayerDelegate.onError
received a newadConfig
parameter to pass theAdConfig
along to the event. PlayerAdvertisingAPI.getModuleInfo
, which returns the name and version of the currently used advertising module.- Support for seamless
AdaptationSet
switching forAdaptationSet
s with identicalgroup
andcodecs
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 ofhtml5.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 beingundefined
.- 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 fullpssh
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 useBufferConfig
instead.getVideoBufferLength
. Please usePlayerBufferAPI.getLevel
instead.getAudioBufferLength
. Please usePlayerBufferAPI.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
onRepresentation
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 theAdvertisingModule
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
andmuted
at setup and retain state during player lifecycle (no reset onload
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
andgetAudio
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 returningnull
instead of an empty array when using theNativePlayer
- 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 passUIConfig
to player-managed UI via the UI moduleViewMode
API:getViewMode
,isViewModeAvailable
,setViewMode
&Event.ViewModeChanged
SourceConfig.subtitleTracks[]
player.getContainer
retrieves the HTMLElement the player is embedded in, replacement for removedplayer.getFigure
Event.ModuleReady
when a public API of a module becomes availableEvent.DownloadFinished.timeToFirstByte
event propertyPlayerAPI.getSource(): SourceConfig | null
- Export
ModuleName
from player core PlayerSubtitlesAPI
inplayer.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 fromconfig.drm.access
toconfig.nativeflash
player.play()
now returns a promise which resolves when playback actually startsplayer.setVolume()
now no longer changes the muted state- Remove
player.setLastSegment()
- Remove
preferred_audio_codec_order
andpreferred_video_codec_order
tweaks (usePlaybackConfig.audioCodecPriority
/videoCodecPriority
) - Move
UserSettings
into separate module PlayerAPI.getThumb()
becamePlayerAPI.getThumbnail()
, Thumbnail property w became width and h became height, property i was dropped.player.isPlaying()
only returnstrue
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 withnew
),setup
method removed and logic moved into constructor - Moved
Event
andLogLevel
exports out ofPlayer
object to root namespace - Stall events not triggered anymore on initial play and seek/timeShift
- Change
SourceConfig.tracks[]
toSourceConfig.thumbnailTrack
Event.PlayerResize
renamed toEvent.PlayerResized
- Player resize event handling moved from
style
module tocore
PlayerAPI.unload(): Promise<void>
return value- Take
SEEK_TO_END_OFFSET
into account when applyingstartOffset
- Renamed
PlayerAPINotAvailableException
toPlayerAPINotAvailableError
- 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 ofWarning
andAdError
- Completely reworked the
AdvertisingConfig
and advertising-related player functions. The new Advertising API is available in theads
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
becameWarningCode
enum- Rename
getDroppedFrames
togetDroppedVideoFrames
ImaAdBreak.vastResponse
now holds aPromise
that resolves with the loaded ad manifest- Rename
bitmovin-player.zip
andbitmovin-player-modules.zip
tobitmovinplayer.zip
andbitmovinplayer-modules.zip
Removed
- Deprecated
addEventHandler
andremoveEventHandler
methods search_real_end
configuration tweakPlayerAPI.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, removedplayer.getFigure
API call Config.source
(thesource
has been separated from the playerConfig
)getAvailableLicenseServers
andgetAvailableImpressionServers
Updated 4 days ago