Fix an issue where the player was not sized correctly for some customers.
2.66.0 (09/12/2019)
General
Features
Add support for native fullscreen for Google IMA advertisements on iOS.
Improvements
Disabled native video element controls during playback of FreeWheel ads.
When playing a HLS stream with multiple tracks in the MPEG-TS segments, the player now selects the first track to align with the Apple reference implementation.
Improve DRM capability checking.
Minor improvements to AirPlayer.
Fix an issue where time-related properties were reported incorrectly for live streams while casting.
Fix an issue where the player would dispatch a durationchange event with value NaN when switching to Chromecast.
Improve dispatch of events while switching to Chromecast.
Issues
Fix an issue where the player unnecessarily switched to alternative quality renditions after manual quality switch.
Fix an issue where the player always started the next period in the lowest quality when playing a DASH stream on Android.
Fix an issue where start and end times for MP4-embedded WebVTT subtitles in multi-period DASH streams were miscalculated.
Fix an issue where the player selects the wrong quality to calculate the program date time.
Fix an issue where the player would briefly display a spinner while switching periods in a DASH stream.
Fix an issue where the player would sometimes stall indefinitely when switching periods in a DASH stream.
Web
Features
Add content-protection type and sub-types in Network API's request object.
Add support for Google DAI DASH.
Add Google DAI stream request configuration options adTagParameters, authToken and streamActivityMonitorID.
Improvements
Dispatch an updateadbreak event in Google IMA integration to signal that the AdBreak's timeOffset has been updated. This is the case when an ad has been scheduled using percentages.
Issues
Fix an issue where using percentages for scheduling ads in Google IMA would not work.
Android
Features
Add support for Google IMA Dynamic Ad Insertion (DAI).
Issues
Fix an issue where NoClassDefFoundError is thrown on devices with an API lower than 19.
Fix an issue where ConcurrentModificationException is thrown while casting to Chromecast.
Fix an issue where requestCurrentProgramDateTime crashes the application.
Known Limitations
When playing a Google DAI advertisement the THEOplayer UI is disabled.
When playing a Google DAI advertisement and the application goes to background and then to foreground, the advertisement automatically continues playing.
iOS
Features
Add CastStrategy.auto to automatically connect to a Chromecast session when the device is connected.
Add support for Google IMA Dynamic Ad Insertion (DAI).
Issues
Fix a memory leak issue while casting to Chromecast.
Fix an issue where using the Reachability Module causes some interference with THEOplayer.
Fix an issue where AdError event was not triggered.
Known Limitations
THEOplayer has API limitations on iOS 10. For more information please contact our support team.
When playing a Google DAI advertisement the THEOplayer UI is disabled.
When playing a Google DAI advertisement and the application goes to background and then to foreground, the advertisement automatically continues playing.
Chromecast
Issues
Fix an issue where switching audio tracks while casting took a long time to take effect.
2.65.1 (15/11/2019)
iOS
Improvements
Introduced module stability from Swift 5.1
tvOS
Improvements
Introduced module stability from Swift 5.1
2.65.0 (09/10/2019)
General
Features
Add support for CEA-608 captions in DASH streams.
Improvements
Ensure all analytics updates are sent before the page unloads.
Issues
Fix an issue where the Chromecast statechange event was dispatched too early when disconnecting from a receiver.
Web
Issues
Fix an issue where the mediaUrl of Google IMA ads is sometimes not exposed.
Fix an issue where DASH streams would sometimes not replay in Edge/IE.
Chromecast
Issues
Fix an issue where subtitle metadata that is too long would cover too much of the screen while casting.
2.64.1 (07/11/2019)
General
Issues
Fix an issue where DASH streams would not play on Firefox.
2.64.0 (17/09/2019)
General
Features
Add support for alternative audio renditions without URI attribute in HLS.
Improvements
Do not create audio and video tracks for variant streams with unsupported codecs in HLS.
Issues
Fix an issue where track switches would not always work for multi-period DASH streams.
Fix an issue where ad-related UI elements would reappear in later ads.
Fix an issue where multi-audio HLS streams would sometimes fail to play.
Fix an issue where the UI would sometimes not show the buffered ranges correctly in the progress bar.
Fix an issue in the IMA integration where sequential ads can not always be paused.
Web
Features
Add content-protection type and sub-types in Network API's request object.
Known Limitations
Setting IMA mid-roll using percentage does not work.
Android
Features
Add a new strategy CastStrategy.AUTO which enable automatically casting a new source when the device is connected to Chromecast.
Issues
Fix an issue where a new player instance couldn't connect to an existing Chromecast session.
Known Limitations
Setting IMA mid-roll using percentage does not work.
iOS
Features
Add support for versioning in the THEOplayer.version API.
Improvements
Removed default user-agent from SpotX integration to be compatible with iOS 13. If your implementation relies on this default behaviour, please follow our workaround guide
Issues
Fix an issue where seek did not work after the video has ended.
Fix an issue where IMA ad didn't play on iOS.
Known Limitations
Setting IMA mid-roll does not work.
2.63.0 (22/08/2019)
General
Issues
Fix an issue where the player wouldn't throw an error when the status of a media session key would be output-restricted or internal-error.
Fix an issue in the THEO ad system where Tracking Events in the wrapper wouldn't fire for linear VAST ads.
Fix an issue where live DASH streams with unsupported representations would crash after a manifest update.
Fix an issue where playback would not be resumed at the correct position after seeking over an ad.
Fix consistency issues with UI tooltips.
Web
Features
Add distinction between main and descriptions kind for HLS audio tracks.
Upgrade Yospace integration from 1.2.x to 1.7.9.
Add support for DASH with EMSG for the Yospace integration.
Add an ABR strategy which optimizes playback of low latency chunked streams. This can be enabled by adding lowLatency in TypedSource.
Improvements
Improved behaviour when placing focus on the volume bar to improve keyboard accessibility.
Issues
Fix an issue where content would not play fullscreen after playing a pre-roll ad in fullscreen on iOS Safari.
Deprecations
Removed pre-integration for MediaMelon QBR.
Android
Features
Add support for #EXT-X-DATERANGE tags in HLS through the player.textTracks API.
Issues
Fix an issue where replay did not work while connected to Chromecast.
Fix an issue where seek paused the video while connected to Chromecast.
Fix an issue where the duration of the stream was not correct while connected to Chromecast.
Fix an issue where the application would crash when changing the Chromecast session.
Fix an issue on Edge and Internet Explorer where seeking to the end of a DASH stream or replaying it would not work correctly.
Known Limitations
Replay while connected to Chromecast does not work. See workaround
iOS
Features
Add distinction between main and descriptions kind for HLS audio tracks.
Add support for native UIGestureRecognizer through THEOplayer API.
Add support for aspect ratio in the THEOplayer.fullscreen API.
Issues
Fix an issue where replay did not work while connected to Chromecast.
Fix an issue where seek paused the video while connected to Chromecast.
Fix an issue when selecting one audio track would disable all audio tracks.
Fix an issue where THEOplayer would deactivate AVAudioSession when the application goes to background.
Known Limitations
Replay while connected to Chromecast does not work. See workaround
Leaving a Chromecast session while playing a DASH stream causes an unrecoverable error. See workaround
2.61.0 (21/06/2019)
Web
Features
Add support for WebVTT subtitles embedded in ISOBMFF segments.
Add support for #EXT-X-DATERANGE tags in HLS through the player.textTracks API.
Improvements
Improve Agama integration by upgrading support to EMP Client version 3.7.
Improve Agama integration by suspending reporting on the sender side while the content is being cast.
Issues
Fix an issue where the ABR of the player would not always correctly switch when using response interceptors.
Fix an issue where the ABR of the player would not always correctly switch on streams with small segments.
Android
Features
Add support for Agama analytics.
Add support for WebVTT subtitles embedded in ISOBMFF segments.
Issues
Fix an issue where requesting video width/height sometimes caused an exception.
iOS
Features
Add support for Agama Analytics.
Add support for sideloaded WebVTT subtitles when using Airplay.
Issues
Fix an issue where device volume was not reported properly.
Fix an issue where advertisement volume was not reported properly.
Fix an issue where the ProgressEvent was not reported.
tvOS
Features
Add support for sideloaded WebVTT subtitles.
Chromecast
Features
Add support for Agama analytics on Chromecast.
2.60.0 (17/05/2019)
General
Features
Add distinction between captions and subtitles kind of text tracks for DASH manifests.
Add distinction between captions and subtitles kind of text tracks for HLS manifests with #EXT-X-MEDIA tags.
Improvements
Improve buffer segment selection and fetching for DASH streams.
Issues
There are known major issues with the Chromecast feature in this release. These are planned to be fixed in 2.61.1.
Fix an issue where the player would sometimes hang on a discontinuity edge on Safari.
Fix an issue where the player would not dispatch an adend event when ending a non-linear ad.
Fix an issue where Conviva analytics would not work correctly if ads were configured in the source description.
Fix an issue where sometimes a TTML text track was created even when the stream does not contain TTML data.
Fix an issue where it was not possible to pause or play by clicking on the video area while casting to Chromecast.
Fix an issue where the direction indicator did not update when looking around in a VR video.
Fix an issue where the player sometimes leaked DRM key sessions after playing multiple DRM-protected streams.
Web
Features
Add support for inspecting ads and ad breaks from Google IMA through the ads API. This also adds the following events to the ads API: addad, updatead, addadbreak, removeadbreak.
Add systemCode to player.error and contentprotectionerror event for key system specific error codes.
Improvements
Improve the startup time of the player when playing an IMA pre-roll advertisement.
Issues
Fix an issue where the fullscreen button tooltip did not change to 'Exit fullscreen' when in fullscreen mode.
Android
Features
Add flag to THEOplayerGlobal to force use customWebView for minapi16
Add the ability to join a Chromecast session
Add support for offline Uplynk DRM
Add support for multi key session streams
Add support for manifest-only PSSH streams
Add support for offline multi key session streams
Issues
Fix an issue where Google IMA Ad events were not dispatched correctly.
iOS
Features
Update iOS SDK to Swift 5.0
Add the ability to join a Chromecast session
Recognise TextTrack accessibility kind values
Issues
Fix an issue where leaving a Chromecast session, the channel was not cleared properly.
Fix an issue where Google IMA Ad events were not dispatched correctly.
Deprecations
Objective-C is no longer supported. Please update to the Swift API. If you have questions, please contact our support team.
tvOS
Features
Update tvOS SDK to Swift 5.0
Chromecast
Issues
Fix an issue where it was not possible to set the target quality while casting.
2.59.0 (07/05/2019)
General
Features
Add support for rendering of sideloaded WebVTT text tracks in native fullscreen on iOS Safari.
Improvements
Improve scrubbing while casting to Chromecast.
Issues
Fix an issue where AES-128 encrypted HLS streams failed to play.
Fix an issue where certain HLS streams failed to play in some browsers when using player.src.
Fix an issue where certain HLS streams stalled near the end of the video.
Fix an issue where seeking after a stream ends restarts the media at the beginning.
Fix an issue where Chromecast sender had incorrect property values after media ended.
Fix an issue where Chromecast sender could not replay or seek after media ended.
Fix an issue where Chromecast sender could not manually switch audio or video.
Fix an issue where Chromecast receiver volume was set to sender volume.
Fix an issue with UI controls after starting a Chromecast session.
Fix a issue with HLS playback where incomplete audio frames are not always correctly silenced.
Fix an issue where adbreakbegin event would sometimes dispatch too often in the THEO ad system.
Fix an issue where the player would sometimes give double ended events after a Google IMA post-roll.
Fix an issue where the played property would sometimes return incorrect values for HLS streams.
Fix an issue where a clipped video would briefly show its unclipped duration in the controls.
Web
Issues
Fix an issue where images with parentheses in the URL did not render correctly.
Fix an issue where the AirPlay target selection menu would not show again after closing it previously.
Fix an issue where calling destroy on the player would not remove the global beforeunload event handler
Fix an issue where errors appeared in the browser console while playing an audio-only HLS stream.
Android
Issues
Fix an issue that caused crash when MOAT analytics was enabled but the ad did not support MOAT tracking
Fix an issue where inBandMetadataTrackDispatchType was missing when ADDTRACK event occurs
iOS
Deprecations
Objective-C support is deprecated, and is scheduled to be removed in the next version (2.60.0). Please update to the Swift API. If you have questions, please contact our support team.
Issues
Fix an issue with playing VR/360 source.
Fix an issue where isDestroyed property was not correctly set.
Fix a Google IMA issue where "Learn More" (top right corner) and content countdown (bottom left corner) are partially hidden on iPhoneX(+).
Fix an issue where the UI sometimes showed an incorrect selected audio track.
Fix an issue that shows indefinite spinner when seeking while using Airplay.
Fix an issue when subtitle font size increased during scrubbing/seeking.
Fix an issue when player state was not properly synced with AirPlay state.
Chromecast
Issues
Fix an issue that prevented volumeChanged event from being triggered
Fix missing pause icon
2.58.0 (25/03/2019)
General
Improvements
Improve internal asynchronous handling of synchronous API methods (setting source / reset / destroy)
Web
Features
Add integration for Uplynk Fairplay DRM
Issues
Fix an issue where the player would show an incorrect buffering spinner when using Conviva analytics
iOS
Features
Add integration for Uplynk Fairplay DRM
tvOS
Features
Add integration for Uplynk Fairplay DRM
2.57.0 (11/03/2019)
Web
Features
Add integration for Azure Widevine DRM
Add integration for Verimatrix Fairplay DRM
Issues
Fix an issue where the UI sometimes did not display the available video qualities of a multi-audio HLS stream.
Fix an issue where HLS streams on Internet Explorer on Windows 7 would not play.
Fix an issue where up-next would keep redirecting on single-page web apps.
Fix an issue where up-next would appear during linear advertisements.
iOS
Features
Added support for Verimatrix MultiRights FairPlay DRM.
Issues
Fixed an issue where ad related events were not reported correctly.
Fixed an issue where setting the current time for Chromecast did not work.
2.56.0 (25/02/2019)
Web
Issues
Fix an issue where the wrong content type was sent to the chromecast
Android
Features
Added support for Axinom Widevine DRM.
Implement track switching for experimental rendering pipeline.
Improvements
Improve minapi16 variant to use the packaged WebView replacement in case an older WebView Chrome version is detected on the device.
Various improvements to experimental rendering pipeline.
Issues
Various fixes to experimental rendering pipeline.
Android TV
Features
Added support for Axinom Widevine DRM.
Implement track switching for experimental rendering pipeline.
Improvements
Various improvements to experimental rendering pipeline.
Issues
Various fixes to experimental rendering pipeline.
iOS
Features
Improved native playback logic.
Added support for Axinom FairPlay DRM.
Added support for offline Xstream FairPlay DRM.
Extend the ABR API with two new properties: preferredPeakBitRate and preferredMaximumResolution
Issues
Fixed an issue where Chromecast device selection was not visible.
Fixed an issue where device and statusbar orientation were not correct when caching was enabled.
Fixed an issue where a caching task did not transition to the error state
Fixed an issue where caching a DRMToday protected stream did not work
Removed SpotX Advertising Identifier for non-SpotX customers.
Chromecast
Issues
Fix an issue where the chromecast ended up in the pause state for mp4
2.55.0 (11/02/2019)
Web
Issues
Fix an issue where sometimes HLS subtitle renditions with DEFAULT=YES were not automatically selected.
Fix an issue where TTML subtitles would sometimes get stuck.
Fix an issue where scheduling an ad would resume playback on a paused player.
Fix an issue where SpotX ads would not always be able to play.
Fix an issue where Picture-in-picture would not behave correctly in Safari.
Fix an issue where thumbnails would not behave correctly.
2.54.0 (28/01/2019)
Web
Features
Added integration with Axinom DRM
Issues
Fix an issue where Google IMA would not always correctly switch between two ads.
Fix an issue with seeking before the player is fully initialized.
iOS
Features
Added license renewal for offline DRM streams.
Issues
Fixed an issue with Fairplay DRM protected streams.
Fixed issue when playing multiple DRM protected streams simultaneously.
Fixed an issue where Chromecast couldn't register a channel.
Fix an issue with scrubbing when DRM protected stream was played.
2.53.0 (15/01/2019)
Web
Features
Added support for Vimond FairPlay DRM.
Added support for CMAF segments in HLS.
Issues
Fix an issue where DASH livestreams would report seekable.start as zero incorrectly.
Fix an issue where streams using SIDX would not play.
iOS
Features
Added support for Vimond FairPlay DRM.
2.52.0 (02/01/2019)
Web
Features
Added the possibility to configure title attribute in the Now Playing section of the Control Center
Allow vmap/adrule to be scheduled dynamically (via player.ads.schedule) by addition of the adSource API.
Add PlayReady playback support for Tizen 3.0.
Issues
Fix an issue where a clip would sometimes play beyond its end time.
Fix an issue where some IMA ads using a custom timeOffset wouldn't play
Fix an issue where the player would sometimes accidentally seek back to the start of the stream
Added allowNativeFullscreen to the player configuration. This allows using fullscreen on the video element directly instead of on the whole player.
Added support for Conax FairPlay
Added a generic metadata property to SourceDescription to allow for more descriptive sources.
Added the adskip event to the Advertisement API to indicate ads that are being skipped
Added support for more timeOffset formats for GoogleIMAAdDescriptions (scheduling ads without VMAP): timestamps, "start", "end" and percentages (for VOD)
Improvements
Improved the UI for the Up Next feature
Improved the handling of ID3 metadata on iOS
Improved the adskip button to feature the poster image
Issues
Solved an issue where muted autoplay on iOS could not be unmuted
Solved an issue where the ended event was not always dispatched when IMA ads were used
Solved an issue where tooltip for currentTime was not updating correctly on mobile web when switching to picture-in-picture
2.20.0 (12/09/2017)
Web
Features
Allow THEOplayer to be used as an Audio Node within the Web Audio API
Improvements
Improved the player's big play button
Improved the UI of Picture-in-Picture on the web
Improved the UI of the up-next panel
Various improvements to the player's internals
Improved the UI of the top control bar
Improved the player to play content as smoothly as possible
Issues
Solved an issue where a wrong play/pause icon would show on mobile platforms after returning from tab inactivity
Solved an issue where the player sometimes stalls when the PTS/DTS offset changes on a discontinuity edge
Solved a memory leak issue
Solved a freezing issue on Chrome/Opera
Solved an issue where sideloaded text tracks appear twice in the subtitle menu
Solved an issue where the player would not be correctly resized for 4:3 videos
Solved an issue with mouse behaviour when using 360/VR
2.19.0 (28/08/2017)
Web
Features
Added support for KeyOS Fairplay
Improvements
Improved the player's download prioritization
Improved handling of offline DASH manifests
Improved playback of multiple sequential advertisements
Various updates and improvements to the player's codebase
Issues
Solved an issue where playing certain DASH manifests could trigger a memory leak
Solved an issue where the player would stall playback on certain HLS live streams
Solved an issue where including the Google IMA script would cause the player to pause after a single tap on mobile devices
Solved an issue where the language selection menu was not always correctly updated
Solved an issue where the player's manifest downloads would not be correctly cleared after setting a new source
Solved an issue where the 'Up Next' UI did not always show at the end of a video
2.18.0 (18/08/2017)
Web
Features
Added support for DASH SegmentTemplate parameter prefix padding
Added support for setting a list of qualities as target qualities (documentation)
Added a right-click menu to the player's UI
Added support for Irdeto Registered User Flows (documentation)
Improvements
Improved handling of unsupported DASH tracks
Various improvements to the player's internals
Improved handling of streams with empty or missing segments
Issues
Solved an issue where the player did not correctly recover from an unavailable Google IMA ad
Solved various minor issues with advertisement playback
Solved an issue where the useCredentials flag was not taken into account correctly
Solved an issue where ID3 cuechange events where not correctly fired on iOS
Solved an issue where multiple players on the same page would not share a Chromecast session correctly
Solved an issue where the player's bandwidth algorithm estimation gave bad results
Solved an issue where DASH emsg events were not correctly exposed
API Updates
Removed all support for the previously deprecated drmController API
Added pre-integration support for server-side ad insertion with Yospace (documentation)
Improvements
Side-loaded text tracks are now lazy-loaded
Chromecast: various minor improvements
Issues
Solved an issue with autoplay and Fairplay content in Safari on macOS
Solved various minor issues
2.11.0 (27/04/2017)
Web
Features
Added support for chapters on the seek bar
Added support for preview thumbnails on the seek bar
Added pre-integration support for KeyOS DRM (documentation)
Improvements
UI: the mouse cursor is now hidden while the mouse is resting still above the player
UI: the control bar is now hidden immediately when the mouse moves outside of the player
Issues
Solved an issue where picture-in-picture mode would not re-activate automatically in some scenarios
Solved an issue where subtitles would not appear in some edge cases
Solved an issue with Internet Explorer 10 support
Solved various minor issues with DRM protected playback on Internet Explorer and Edge
Solved various minor issues with advertisements
2.10.0 (12/04/2017)
Web
Issues
Solved an issue where changing the audio track on a DASH source would sometimes freeze the player on Edge
Solved an issue where Airplay was sometimes marked as available when it really wasn't
Solved an issue with preloading while in fullscreen mode on iOS
Solved an issue where querying the played property lead to an error when no source was set
Solved various minor issues with advertisements
2.9.11 (07/04/2017)
Web
Improvements
Improved player behavior for redirected manifests
Improved the player's playback behavior on Windows 7
Issues
Solved an issue where the Airplay overlay was not hidden correctly
2.9.10 (05/04/2017)
Web
Improvements
Added support for SKD protocol for Fairplay license URLs
Improved the player to detect broken AAC frames and replace them with silent audio
Issues
Solved an issue where a DASH live stream with inconsistent segments timelines for audio and video would not start playing
Features
Added support for Airplay playback on Mac OS and iOS
2.9.9 (03/04/2017)
Web
Improvements
Improved advertisement viewing experience
Improved Segment packaging for HLS streams
Issues
Solved some issues with the Player UI's menus
Solved an issue with setting the player's currentTime before ads were completely loaded
Solved an issue with cues not being updated correctly for sideloaded text tracks
Solved an issue with handling different Fairplay formats
2.9.8 (28/03/2017)
Web
Improvements
Improved the player's behavior when there is a 404 error on segments.
2.9.7 (27/03/2017)
Web
Issues
Solved some issues with the Player UI's menus
2.9.6 (27/03/2017)
Web
Issues
Solved an issue that made the player pause when seeking.
Solved an issue with multiple identical content protection systems.
2.9.5 (23/03/2017)
Web
Features
Fallback to track.label as title for audio tracks with no specific language.
Improved scrubbing behaviour.
Issues
Solved an issue with subtitle selection on Chromecast
Solved an issue with quality selection on Chromecast
2.9.4 (17/03/2017)
Web
Features
Added compatibility with Chromecast Default Media Receiver.
Added support for setting the default selected sideloaded text track.
Issues
Solved an issue where text track labels were not shown.
2.9.3 (13/03/2017)
Web
Issues
Solved an issue where an empty DRM description prevented DASH streams from being played correctly.
Solved an issue with text track cues that were not being dispatched correctly.
2.9.2 (10/03/2017)
Web
Improvements
Improved outline behavior in the THEOplayer UI quality selection menu.
2.9.1 (09/03/2017)
Web
Features
Added support for the poster property on Chromeless as well as UI players.
Added an optional poster property to SourceDescriptions.
Issues
Solved an issue where setting the preload property was not always correctly handled.
Solved an issue with the currentTime and duration displays in the THEOplayer UI.
Solved an issue where the fullscreen button was permanently hidden after casting to Chromecast.
2.9.0 (07/03/2017)
Web
Features
Added a crossOrigin property to the player
Added support for Picture-in-Picture (PIP)
Added support for ad-block detection
Improvements
Improved detection and handling of gaps in MPEG-DASH streams
Issues
Solved an issue where the loadedmetadata event was not always correctly dispatched
Solved multiple issues with the ready- and playback state of the player
Solved an issue where it was no longer possible to specify global DRM configurations in a SourceDescription
2.8.6 (02/03/2017)
Web
Issues
Solved an issue where the player would often have to resync when it had to rebuffer
Solved an issue with Chromecast text tracks
Improvements
Improved track synchronization behavior
2.8.5 (24/02/2017)
Web
Issues
Solved an issue where content with persistent Playready licenses did not start playback correctly
2.8.4 (24/02/2017)
Web
Issues
Solved an issue where the first cue of an SRT file was not parsed correctly
2.8.3 (24/02/2017)
Web
Issues
Solved an issue where activequalitychanged event wasn't dispatched for HLS tracks
Solved an issue which prevented the progress bar UI from resetting
Solved an issue related to post-rolls
Solved an issue with the spinner icon on source change
Solved an issue with playback of periods that are no longer part of a stream
Improvements
Improved id3 support
Improved THEOplayer events
Improved buffering approach
2.8.2 (14/02/2017)
Web
Issues
Solved an issue where the player would sometimes miscalculate the end time of stream
Solved an issue on IE/Edge where DRM protected content did not always start playback
Solved an issue where the player kept waiting for a seeking event that would never occur
Features
Improved mobile UI
Improved menu UI
2.8.1 (08/02/2017)
Web
Issues
Solved an issue with the seekbar when using Google IMA
Solved an issue which didn't correctly dispatch events when using ads
Solved an issue with VuDRM
Features
Updated menu UI
Improvements
Improved error message for missing ContentProtection tag
2.8.0 (31/01/2017)
Web
Issues
Solved an issue where the readystate was not always updated correctly when using ads
Features
Updated advertisement UI
2.7.2 (25/01/2017)
Web
Issues
Solved an issue where DRM protected content did not start playback on Edge
Solved an issue where errors from native playback were not dispatched correctly
Solved an issue where embedded text track segments were not being downloaded in a live stream
Features
Added support for decryption of Clearkey-encrypted content through EME
2.7.1 (16/01/2017)
Web
Features
Added support for playback of advertisements via Google-IMA
2.7.0 (16/01/2017)
Web
Issues
Solved an issue where the UI was not reset correctly when changing a source
Solved an issue where the player stayed in an indefinite seeking state
Solved an issue where casting to a Chromecast device occasionally failed on startup
Features
Added support for playback of non-DASH media sources (e.g. regular MP4-files)
Updated the API to allow for per-source DRM configuration
Added support for playback of advertisements without requiring a main source
Added a ‘targetqualitychanged’ event to Audio and VideoTrack objects that is triggered when the target Quality of that track is set
Added an ‘activequalitychanged’ event to Audio and VideoTrack objects that is triggered when the active quality of that track changes
2.6.1 (16/01/2016)
Web
Issues
Solved an issue where text tracks where not switched correctly when changing the playback context e.g. to ChromeCast
Solved an issue where license errors were not handled correctly and lead to a nonsense trace in console
2.6.0 (26/12/2016)
Web
Issues
Solved an issue where ‘segmentnotfound’ events and errors were thrown multiple times for the same segment
Solved an issue where framerate was not exposed correctly
Features
Added support for EventStream events
Added support for DVB Subs text tracks
Added support for casting via ChromeCast
Added support for scheduling and playback of VAST and VMAP advertisement files
Added support for scheduling and playback of custom advertisements
2.5.10 (22/12/2016)
Web
Issues
Solved an issue where the player stopped playback at the end of the shortest track instead of playing all available content
Solved an issue where a timeline gap at the end of a stream caused the player to not finish playback of a Period
Solved an issue where ‘addtrack’ and ‘removetrack’ events were dispatched twice
Improvements
Improved the player to be able to handle broken segments more robustly
Various improvements to player’s internal architecture
2.5.9 (20/12/2016)
Web
Issues
Solved an issue where dispatching a seeking event too soon caused the player to remain in an eternal seeking state
2.5.8 (19/12/2016)
Web
Issues
Solved an issue where default PSSH information was not parsed from manifests correctly
Solved an issue where the player did not start playback when detecting a gap in a stream
Solved an issue where resetting the player would not always clean up the player’s playing state completely
Solved an issue where the player would detect a gap in a stream that wasn’t actually there
Solved an issue where seeking the player ahead one frame at a time was not working
Improvements
Various improvements to the internal seeking behavior of the player
2.5.7 (09/12/2016)
Web
Features
Added support for Advanced DRM Integration
Issues
Solved an issue where the last segment in a stream kept being downloaded endlessly
Solved an issue where ‘seeked’ events where being dispatched too early
Solved an issue where the duration, start and end times were being miscalculated for segments of SegmentTemplates with no explicit SegmentTimeline
Solved an issue where a SourceBuffer was not initialized with the right codecs
Improvements
Various minor improvements to the player codebase
Various improvements to the player’s UI stylesheets
Various improvements to the player’s API via SourceDescriptions (Section 4)
2.5.6 (01/12/2016)
Web
Features
Added support for the new Latens Titanium v2.5 error response format
Added a ‘source’ property to the player API which allows users to get and set the current SourceDescription. This deprecates the older player.setSource() method.
Issues
Solved an issue where segment timestamps in a multi-period manifest were not always calculated correctly
Improvements
Improved the player to handle some errors caused by invalid manifests more gracefully
Improved the estimate strategy in timeline searching algorithms
Various improvements to the internal DRM structure
2.5.5 (21/11/2016)
Web
Issues
Solved an issue where a bug in the transition from dynamic to static behavior caused an endless loop. This is turn caused webpages that contained a malfunctioning player to freeze
2.5.4 (18/11/2016)
Web
Issues
Solved an issue where the complexity of algorithms that handle manifest updates put a drain on resources in Chrome, which caused the browser to drop video frames. This in turn caused stuttering playback
Improvements
Various improvements to the computational complexity of algorithms in the player
Improved player behavior for disabling and re-enabling audio and video tracks
2.5.3 (07/11/2016)
Web
Resolved Issues
Solved an issue where a segment timeline for dynamic manifests without explicit timeline information was not constructed correctly
2.5.2 (04/11/2016)
Web
Resolved Issues
Solved an issue where the player would not reach the playing state after entering a waiting state twice, but leaving it only once
Solved an issue where the player would crash when setting its currentTime before the manifest finished loading
Solved an issue where manually switching an audio or video quality would sometimes leak an error to the console
Solved an issue where the activeQuality property of an audio or video track would always be undefined
Solved an issue where a gap at the start of a stream would sometimes prevent the player from reaching the ‘playing’ state
Improvements
Improved the player’s track switching algorithm
Improved the player’s manual quality switching algorithm
2.5.1 (26/10/2016)
Web
Improvements
Improved the player to optimally handle 64-bit precision timestamps in manifests
2.5.0 (24/10/2016)
Web
Features
Added support for inband (‘emsg’) events
2.4.5 (21/10/2016)
Web
Resolved Issues
Solved an issue where the player would stall indefinitely when a large gap would occur in audio or video data
Improvements
Improved the player’s ability to detect and handle data gaps in audio or video tracks
Improved the player’s synchronization algorithm
2.4.4 (06/10/2016)
Web
Resolved issues
Solved an issue where resetting the player would cause IE11 on Windows 8.1 to crash
Solved an issue where an MPD error would cause an unhandled error to leak to the console
2.4.3 (28/09/2016)
Web
Resolved issues
Solved an issue where a video Quality’s framerate was not exposed correctly
Improvements
Improved the player to detect and handle overlapping segments in a dynamic stream
2.4.2 (22/09/2016)
Web
Resolved issues
Solved an issue with indexes for SegmentList-based VOD content that prevented the content from being played
Solved an issue where the enabled state of an audio track was not correctly visualized initially
Solved an issue where text tracks that ended before audio or video tracks would prevent seeking beyond the end of that text track
Solved an issue where protected content would keep the player from reaching the ‘loadedmetadata’ state on Edge
Solved an issue where the player would leak an error to the console when a DRM problem occurred and ongoing license requests were not cancelled
Solved an issue where the player’s duration was not reset to NaN after resetting the source
Improvements
Improved the player to detect and handle missing frames in audio and video data
2.4.1 (16/09/2016)
Web
Resolved issues
Solved an issue where the initialization of persistent DRM failed because two initialization requests were ran in parallel
Solved an issue where the active video track would be unnecessarily synced when switching the active audio track
2.4.0 (08/09/2016)
Web
Features
Added support for playback of multi-period manifests
Added support for the WebVTT text track format
Added support for side-loaded text tracks
Added support for video tracks
Added support for manual quality or rendition switching and inspection of audio and video tracks
Resolved issues
Solved an issue with buffering of embedded text tracks that prevented subtitles from being rendered
Fixed some typing errors throughout the API documentation
Solved an issue where a BaseURL pointing to ‘./’ was not being resolved correctly
Solved an issue where multiple occurrences of the same parameter in an URL template were not being resolved
2.3.4 (02/09/2016)
Web
Resolved issues
Resolved an issue where a call to stop, followed by a call to play, would cause an unrecoverable DRM error
Improvements
Various improvements to the player’s UI
Various improvements to the player’s internal structure
2.3.3 (31/08/2016)
Web
Resolved issues
Resolved an issue where the player was not able to switch content-protected audio tracks
Resolved an issue with the player’s volume
Resolved an issue where the player did not use the updated time at which a MPDs was last fetched
Resolved an issue where the player stuttered due to decoding delay of DRM streams
Resolved an issue where event listeners for external events were not always attached correctly
Improvements
Improved the player to ignore unplayable tracks instead of throwing an error
Improved various aspects of the player’s internal code
Improved the player’s synchronization algorithm
Improved the player to handle transit between internal and external events
2.3.2 (17/08/2016)
Web
Resolved issues
Resolved an issue where track lists did not dispatch ‘removetrack’ events when resetting the player
Resolved an issue where new segments’ numbers were wrongfully assigned when updating the manifest
Resolved an issue where the player’s error property was not set when dispatching an error event
Resolved an issue where the player allowed a user to seek outside of its seekable range
Resolved an issue where a period’s duration was not correctly detected
Improvements
Improved the player to detect between which codecs can be switched during Adaptive Bitrate Streaming
Improved the player to signal representation changes when they occur visually instead of when they start downloading
Improved the player to detect unsupported platforms to prevent bad User Experience on those platforms
Improved the player to retry downloading failed manifests on multiple locations- when possible
Improved the player’s error handling and made license errors more descriptive
2.3.1 (02/08/2016)
Web
Improvements
Added support to detect and filter representations that can’t be played by the MediaSource environment
Improved the player’s behavior when switching between two tracks
Improved the player’s setCurrentTime functionality
Improved the player’s use of the presentationTimeOffset attribute
2.3.0 (20/07/2016)
Web
Features
Added support for the publishTime attribute in media presentation descriptions
Added support for playback on Chrome 52 on Android
Added support for saving and restoring state of volume and muted properties over multiple sessions
Added support for location elements in manifests
Added the currentProgramDateTime property to the player to indicate the player’s date time relative to a manifest’s publish time
Resolved issues
Resolved an issue where the player stalled indefinitely upon switching representations
Resolved an issue causing the player to go in a waiting state when its ready state is higher than HAVE_CURRENT_DATA
Resolved an issue with asynchronous creation of audio tracks
Resolved an issue where the player stalled indefinitely after playing 3 segments
Resolved an issue for SegmentTimeline segments with a repeat count equal to -1
Resolved an issue where the player did not dispatch a waiting event when starting playback of a stream
Resolved an issue with BaseURL elements that point to root
Improvements
Improved the internal architecture for track-based playback
Improved support for default attributes in multiple levels of a manifest’s segment info hierarchy
Various small improvements in the player’s seeking behaviour
2.2.1 (16/06/2016)
Web
Features
Added support for the MPEG-DASH BaseURL element to the player
Reworked the players play() and pause() flow
Resolved issues
Resolved an issue with UI display order on Firefox
Resolved an issue with UI handling durationchange events and displaying an incorrect duration
Resolved an issue with UI not displaying all buffered ranges correctly
Resolved an issue where the internal duration was not correctly reset after stopping the player
Resolved an issue in correctly resetting of media elements when a new data source is loaded
Resolved an issue with playbackRate of the player being reset to 1 when loading a new source
Resolved an issue with the player occasionally dispatching a timeupdate event despite being in a waiting state
Resolved an issue with the player dispatching a playing event before having a data source loaded
Resolved an issue with the player attempting to seek before having a data source loaded
Resolved an issue with the player getting in an eternal waiting state while buffering data
Improvements
Changed the readyState of the player and all internal components waiting for readyState to being dependent on DRM being complete
Further optimized the build pipeline of the player
Improved event flow related to subtitle tracks
Improved the players support for the MPEG-DASH SegmentTemplate element
Various small improvements in the flow and stability of the player
2.2.0 (30/05/2016)
Web
Features
The player now supports loading, parsing and rendering of TTML (Timed Text Markup Language) subtitles. More specifically it supports the Core Presentation Profile of the TTML specification
The player now has integration with a UI component
Resolved Issues
Resolved an issue that caused the player to repeatedly redownload a manifest file
Resolved an issue in correctly calculating the segment numbers in some manifest files
Improvements
Optimized the build pipeline of the player
Added a build target with build in user interface
Further optimized the calculation of time related ranges
Various small improvements in the flow and stability of the player
2.1.5 (17/05/2016)
Web
Resolved Issues
Resolved an issue in correctly determining the end of stream and end of buffer
Resolved an issue in sometimes determining the duration of Period elements
Improvements
Optimized the build pipeline of the player
Added the videoWidth, videoHeight and error properties to the player
Improved the calculation of buffered, played, seekable properties
Various small improvements in the flow and stability of the player
2.1.4 (02/05/2016)
Web
Resolved Issues
Resolved an issue in correctly determining that the end time of a media element had changed
Resolved an edge case that caused the player to repeatedly download the same segment
Resolved detecting that the player no longer was in sync with the available data in the manifest
Improvements
Improved buffer handling of the player
Various small improvements in the flow and stability of the player
2.1.3 (16/04/2016)
Web
Resolved Issues
Resolved an issue that caused the player to not play when changing the source of the player while autoplay is enabled
Resolved an issue in correctly detecting the end of stream of the player
Resolved an issue in calculating the correct duration of some streams
Optimized the parsing of MPEG-DASH documents and removed blocking code
Improvements
Improved the memory usage of the MPEG-DASH document parser
Added missing documentation about the date attribute of some events that the player dispatches
Various small improvements in the flow and stability of the player
2.1.2 (29/03/2016)
Web
Features
A new buffering algorithm has been added to the player
Added the ‘played’ TimeRanges attribute to the player to indicate the played range
Resolved Issues
Resolved an issue where individual tracks started playback before all tracks are DRM decrypted
Resolved an issue in determining the content type of a representation for some manifests
Resolved an issue in correctly calculating the duration of time ranges
Resolved an issue where the player could go in a stalling state
Improvements
Improved the synchronization of the individual tracks
Ensured that the player never goes in a playing state before the ‘canplay’ event has been thrown by the player
Improved the memory handling of the player
Added more detailed documentation about the various events that the player dispatches
Various small improvements in the flow and stability of the player
2.1.1 (14/03/2016)
Web
Resolved Issues
Resolved a reference error in relation to MSMediaKeys.isTypeSupported on Microsoft Edge
Resolved a reference error that occurred when reporting Titanium Widevine error messages
Improvements
Removed unnecessary debug messages being outputted to console in release versions
Various small improvements in the flow and stability of the player
2.1.0 (04/03/2016)
Web
Resolved Issues
Resolved DRM errors not being thrown while the player is in some specific states
Resolved an error in ABR calculations while the player is in a waiting state
Improvements
Optimized the error handling of specific errors that previously leaked their error message to console
Improved the error event being thrown twice for the some errors
Improved the MPEG-DASH manifest parser to detect more defects in the manifests
Improved the segmentnotfound event to provide information on the number of retries
Various small improvements in the flow and stability of the player
2.0.2 (26/02/2016)
Web
Features
Content Protection error and success reporting and messages have been improved
contentprotectionerror – event thrown when an error occurs during content protection
contentprotectionsuccess – event thrown after content protection steps have been finalized and playback should start
mediaencryptionlicenseobtained – event has been removed from the player
Resolved Issues
Resolved an issue in calculating the edges of the seekable range in closed, static content
Throw a durationchange event when the duration of a media asset changes during playback
Improvements
Various small improvements in the flow and stability of the player
2.0.1 (12/02/2016)
Web
Resolved Issues
Resolved an inaccuracy in the seekable ranges of the player
The end time of the seekable range during playback of an open (type = ‘dynamic’) asset is now three target durations away from the loadable range/end of the data in the stream
Ensure that when the currentTime of the player is modified, the new value falls inside of the seekable range
Resolved an issue in open (type = ‘dynamic’) assets that caused the manifest to no longer to be reloaded
Improvements
Various small improvements in the flow and stability of the player
Updated the DRM error messages to more clearly represent the cause of the error
2.0.0 (05/02/2016)
Web
Features
Support for the Latens Titanium DRM system has been added for the IE11 and Edge browsers for the Windows 8, 8.1 and 10 platforms
Resolved Issues
Resolved a TypeError related to the code obfuscation occurring specifically on Edge causing the player not to start playback
Resolved an issue in cleaning up assets while unloading the player or changing source
Improvements
Various small improvements in the flow and stability of the player
2.0.0-BETA.0 (03/12/2015)
Web
Features
Added versioning support in THEOplayer.version
Support for the Latens Titanium DRM system has been added for the Chrome web browser
Updating the src attribute of the player now unloads the old and loads the new value of the attribute
Calling the stop method on the player now stops playback and destroys the player
Support for dynamic streams with a continually growing DVR window
Support for dynamic streams that transition to a static stream has been added to the player
Resolved Issues
When a 404 error occurs during the download of a media segment, the player will now try again after a short delay
Resolved a time and rounding issue that caused the player not to start playback of the specified asset
The player now recovers from situations where its playback buffer is not overlapping with the timeline of a dynamic stream
Resolved an issue on IE11 where media keys got attached to the media element while the media element was in an invalid readyState 0, HAVE_NOTHING
Clean up old media keys when stopping the player or when setting a new source on the player
Improvements
When present, PSSH headers now get read from the manifest in order to kick start the DRM flow
Support for the presentationTimeOffset MPEG-DASH MPD attribute has been added to the player
Various small improvements in the flow and stability of the player