logo

🚀 2021.4.1 (2021/11/29)

Web (2.91.1)

🐛 Issues

  • Fixed an issue where the player would not automatically prune based on the bufferLookbackWindow in the ABRConfiguration.

Android (2.91.1)

🐛 Issues

  • Fixed an issue where setting the target quality of an audio/video track would not work when playing HLS.

🚀 2021.4.1 (2021/11/18)

General

✨ Features

  • Added fallback logic for failing rendition playlist fetches in the LL-HLS pipeline.
  • Added fallback logic for failing segment/part/map/preload hint fetches in the LL-HLS pipeline.

🐛 Issues

  • Fixed a UI issue when receiving empty ad breaks from the Verizon ad integration.
  • Fixed an issue causing indefinite buffering on Firefox when playing HLS streams.

Web (2.91.0)

✨ Features

  • Added support for the Label tag in AdaptationSets for DASH streams.

🐛 Issues

  • Fixed an issue where replaying or seeking after a DASH stream has ended could result in glitches or stuttering on Tizen 4 or lower and webOS 4 or lower.
  • Fixed an issue where ads could not be scheduled after the last ad had finished playing.
  • Fixed an issue where the notification about an upcoming ad was not removed after the ad finished playing.
  • Fixed an issue where the live UI would not show when playing a LL-HLS live stream.
  • Fixed an issue where a black screen showed up on a quality change for HESP streams on iOS Safari.
  • Fixed an issue where a stream with ISOBMFF segments that contain multiple tracks would only retain the first track.
  • Fixed an issue where Verizon Ad events were being dispatched before playback started.

Unified Android (2.91.0)

🐛 Issues

  • Fixed an issue where enabling or disabling audio and video tracks in the callback of an addtrack event would not work.
  • Fixed an issue where a multi-period DASH stream would stall during start of playback and when transitioning between periods.
  • Fixed an issue where an expired DRM license would not be renewed during play-out.
  • Fixed an issue where WebVTT subtitles containing markup tags would not be properly displayed.

iOS (2.91.0)

🐛 Issues

  • Fix an issue where the player would be in a paused state after seeking or during audio interruptions.
  • Fix an issue where the muted state would not be reflected correctly in the API.
  • Fix an issue where player would crash after trying to re-cache a previously cached source.
  • Fix an issue where a caching task that hadn't started downloading yet would be removed when going to background.

🚀 2021.4.0 (2021/10/29)

iOS (2.90.1)

🐛 Issues

  • Fixed an issue where initializing a non-chromeless player failed

🚀 2021.4.0 (2021/10/21)

General

⚡ Improvements

  • Added mediaType and subType to segment requests from the Network API when playing a DASH or HLS stream.

🐛 Issues

  • Fixed an issue where HESP playback would not start in recent Safari versions.

Web (2.90.0)

✨ Features

  • Added ChromecastConnectionCallback to dynamically update the source while connecting/disconnecting from Chromecast.
  • Fixed a DASH multi-period playback issue on Tizen 2.4 where the periods have different timescales.

⚡ Improvements

  • Added support for switching between audio or video tracks with supported (but not cross-compatible) codecs in MPEG-DASH, e.g. from AAC-LC to Opus, or from AAC-LC to Dolby Digital (if supported).
  • The player now tries to hide any native on-screen navigation UI buttons when in fullscreen on mobile devices. This can be overridden with PlayerConfiguration.ui.fullscreenOptions.
  • Improved HESP playback on Safari macOS and Safari iPadOS.

🐛 Issues

  • Fixed an issue where chapter markers would not be shown in the UI.
  • Fixed an issue where the font size of subtitles would be too large when entering fullscreen portrait mode.
  • Fixed an issue where subtitles were not displayed when enabled programmatically. The subtitles only started to show after several minutes.

👎 Deprecations

  • The Chromecast.source is deprecated in favor of Chromecast.chromecastConnectionCallback.

Android (2.90.0)

✨ Features

  • Added ChromecastConnectionCallback to dynamically update the source while connecting/disconnecting from Chromecast.

🐛 Issues

  • Fixed an issues where using Native IMA with preloading could cause stalls.
  • Fixed an issue where setting the target quality of an audio/video track would not work.

👎 Deprecations

  • The Chromecast#setSource(SourceDescription source) is deprecated in favor of Chromecast#setChromecastConnectionCallback(ChromecastConnectionCallback callback).

Unified Android (2.90.0)

🐛 Issues

  • Fixed an issue where DRM protected segments of a DASH stream could sometimes not be decrypted.

iOS (2.90.0)

✨ Features

  • Add support for native VR360.
  • Added ChromecastConnectionDelegate to dynamically update the source while connecting/disconnecting from Chromecast.

🐛 Issues

  • Fixed an issue where going native fullscreen on iOS during an adbreak would show the content instead of the ad.

👎 Deprecations

  • The Chromecast.source is deprecated in favor of Chromecast.setChromecastConnectionDelegate.

tvOS (2.90.0)

🐛 Issues

  • Fixed an issue where switching content protected assets would not work.

🚀 2021.3.2 (2021/09/28)

Web (2.89.1)

🐛 Issues

  • Fixed playback of Fairplay HLS on MacOS when using Safari 15.
  • Fixed an issue where sometimes not all text tracks are removed after a source change when using native playback.

🚀 2021.3.2 (2021/09/23)

General

✨ Features

  • Added support for both webvtt and ttml renditions in the same subtitle rendition group for the LL-HLS pipeline.
  • Added support for DEFAULT and AUTOSELECT rendition tags for LLHLS.
  • Add discontinuity support for LLHLS.
  • Added support for mediaTimeOffset property in manifest for HESP streams.

⚡ Improvements

  • Added retry logic for failing master playlist fetches in the LL-HLS pipeline.

🐛 Issues

  • Fixed an issue where the HESP ABR mechanism sometimes would switch to a lower quality immediately after switching to a higher quality.
  • Fixed an issue where player.network.estimator.bandwidth would be null for a short period after loading a HLS source.
  • Fixed an issue where DASH streams containing WebM representations with an @indexRange attribute could crash the player.

Web (2.89.1)

✨ Features

  • Added support for Vast Errors 303, 403, and 900 in case of wrapper ads.
  • Exposed adSystem and creativeId for THEO ads.

⚡ Improvements

  • Added support for triggering all error URIs of wrapper VAST ads.

🐛 Issues

  • Fixed an issue where the player would stall after replaying certain multi-period DASH streams with non-seamless period transitions.
  • Fixed an issue where the player would incorrectly try to seamlessly switch between different audio codecs when not supported by the browser.
  • Fixed an issue where captions were not available in the API or UI with a HLS stream using native playback on Safari.
  • Fixed an issue where no captions were available when changing from native playback to non native and back to native playback.

iOS (2.89.1)

💥 Breaking Changes

✨ Features

🐛 Issues

  • Fixed an issue where the phone disconnected from Chromecast when the app went to background.

tvOS (2.89.1)

💥 Breaking Changes

✨ Features

Chromecast (2.89.1)

🐛 Issues

  • Fixed an issue where the player would periodically stall on older chromecast devices.

🚀 2021.3.1 (2021/08/31)

General

✨ Features

  • Expose a unique identifier for texttrack related cues.
  • Added a CEA608 subtitle fallback to DASH streams containing the CEA708 accessibility tag.
  • Added support for multiple CEA608 channels/tracks in DASH streams.
  • Added preservation of text track selection across periods.

🐛 Issues

  • Fixed an issue where the start and end times of CEA608 cues would sometimes be wrong for multi-period DASH streams.

Web (2.88.0)

💥 Breaking Changes

  • Experimental method HespApi.goLive() no longer returns a Promise. Successful completion of the live seek is still signalled by the golive event.

✨ Features

  • Added seamless period switching support for MPEG-DASH streams containing clear periods, as well as DRM protected periods in the past.

⚡ Improvements

  • Support seamless period switching for MPEG-DASH streams containing periods with different DRM systems on desktop browsers.
  • Improved HESP ABR algorithm and network estimation.

🐛 Issues

  • Fixed an issue where calculated HESP latency could become smaller than the remaining buffer.
  • Fixed a fatal buffering error on WebOS 5.1.
  • Fixed an issue where multiple audio tracks could be enabled at the same time.
  • Fix an issue where quality menu in the UI shows the lowest quality from the array of qualities set by targetQuality
  • Fixed an issue where Tizen and webOS devices versions 4.x and below would repeat frames during start of playback.
  • Fixed an issue where on Tizen 2.4 and Tizen 3 the player would sometimes stall at the end of a period in a multi-period DASH stream.
  • Fixed an issue where the ABR mechanism would never go to a higher bitrate on HESP streams.
  • Fix an issue where cue with start time 0 was displayed before playback began.

⚠ Known Limitations

  • Filtered out ec-3 audio on Tizen and WebOS by default as most devices failed playout and the codec support check was not useable.

Android (2.88.0)

🐛 Issues

  • Fixed an issue where the player tried to initialize Chromecast even if the device does not support it.

⚠ Known Limitations

  • Native Google-IMA Ads preloading does not work as expected in some cases. Please explicitly specify AdPreloadType.NONE on the AdsConfiguration.Builder when configuring THEOplayer.

iOS (2.88.0)

🐛 Issues

  • Fixed an issue where setting a DRM protected VerizonMedia source on player.cast.chromecast.source did not play while casting.

🚀 2021.3.0 (2021/07/30)

General

💥 Breaking Changes

  • Changed type of Quality.id, MediaTrack.id and TextTrack.id from number to string. It now is the id found in the DASH manifest instead of an auto-generated id.

✨ Features

  • Enabled Thumbnail text tracks by default.
  • Thumbnail text tracks now contain cues for multiple periods.
  • Exposed EXT-X-DATERANGE metadata through the API for LL-HLS.
  • Added support for WebVTT subtitle renditions to the LL-HLS pipeline.
  • Added support for all emsg text tracks being accessible during each period.

⚡ Improvements

  • Made the parsing of MPEG TS segments more robust by ignoring unusable data instead of terminating playback.

🐛 Issues

  • Fixed an issue where setting sources with autoplay enabled on some Tizen devices could cause the player to freeze.
  • Fixed an issue where the seekable for a VOD would not include the last few segments for the LL-HLS pipeline.
  • Fix LLHLS pipeline making HTTP range request to infinity.
  • Fixed an issue where duplicate text track cues would be displayed twice.
  • Fix an issue where sideloaded SRT subtitles did not have cues.
  • Resolved an issue for DASH where the essential property to indicate tiled thumbnails was not picked up correctly.
  • Fixed an issue where the player would not end when seeking to the duration or beyond for some DASH streams.
  • Fixed an issue where enabling date ranges in the player configuration did not work.

Web (2.87.0)

⚡ Improvements

  • Disable Airplay button for HESP streams.

🐛 Issues

  • Fix an issue where the player was unable to change the styling of the texttracks.
  • Fixed autoplay detection for WebOS.
  • Fix an issue where ttml texttracks would be rendered incorrectly when using the tts:origin attribute.
  • Fixed an issue where response headers were missing in the Network API and Content Protection Integration API on Tizen 3.0.
  • Fixed an issue where HESP playback doesn't recover after a network drop on iOS Safari.
  • Fix an issue where the VAST tracking URL for completion would be triggered when skipping a THEO-advertisement.
  • Fixed an issue for HESP live playback where latency control would break after some time.
  • Fixed an issue where HESP ABR used to over-estimate available bandwidth by a very high margin on native android.
  • Fixed an issue where CEA-608 text tracks would not be rendered for HLS streams.
  • Fixed an issue where some VOD DASH streams would fail to start.
  • Fix an issue where Yospace reporting would be delayed for DASH sources.

Android (2.87.0)

✨ Features

  • Add possibility to set language on Native IMA via the UIConfiguration object

🐛 Issues

  • Seek problems with boxes and TVs due to handling decoder flush in other way + DRM starting issue
  • Fix an issue where setting a new source while casting the video will play on the sender.
  • Fixed an issue where DRM license requests were sometimes failing.
  • Fix an issue where caching could not be resumed after being paused.
  • Fixing uid brdging and Android 10 DRM playback
  • Fixed an issue where the player would sometimes stall when switching periods in a multi-period DASH stream.

iOS (2.87.0)

✨ Features

  • Add possibility to set language on Native IMA via the UIConfiguration object

⚠ Known Limitations

  • In the lifetime of an application session you can set UIConfiguration.language only once for Native IMA. Setting this property after the first player is initialized will be ignored.

tvOS (2.87.0)

✨ Features

  • Add possibility to set language on Native IMA via the UIConfiguration object

🚀 2021.2.2 (2021/07/12)

Web (2.86.1)

🐛 Issues

  • Fixed playback of Titanium DRM streams on WebOS.
  • Fixed an issue where the VAST tracking URL for completion would be triggered when skipping a THEO-advertisement.

iOS (2.86.1)

🐛 Issues

  • Fixed an issue that caused THEOplayer to fail playing a cached stream that has redirection in its source on iOS 12.
  • Fixed an issue where DRM protected streams did not play on Airplay in certain scenarios.

🚀 2021.2.2 (2021/07/05)

General

✨ Features

  • Add support for CBCS encryption in MPEG-DASH streams in supporting browsers.
  • Construct HESP content request URLs by applying relative resolution.
  • Add support for EMSG v1 boxes.

🐛 Issues

  • Fix an issue where in rare cases a sideloaded text track stops updating after a DASH period switch.
  • Improved LLHLS bandwidth estimation. Support parsing ENVC and ENCA sample entry MP4 boxes.
  • Fixed incorrect LLHLS timeline when switching between renditions.
  • Fixed an issue where CBCS encrypted streams would fail to play on Firefox.
  • Improved the LLHLS download pipeline to download segments from the live edge if all the parts for that segment are already available.
  • Fixed some issues when parsing LLHLS playlist.
  • Improved LLHLS ABR behaviour.
  • Fix seeking to time 0 in an HLS live stream before the playlist is loaded.
  • Fixed an issue where seeking to live would not get into the buffer causing an indefinite stall.
  • Fixed an issue where WebVTT subtitle renditions were not loaded correctly when the HLS stream contains discontinuities.

Web (2.86.0)

🐛 Issues

  • Fix an issue where HESP latency was too high for certain iOS and Android devices.
  • Fix an issue where the big play button is still visible when autoplaying an HESP stream on iOS Safari.
  • Fix an issue where a play event is dispatched after a playing event for HESP streams on iOS Safari.
  • Fix an issue where sometimes the player is pulsing on iOS Safari when playing HESP streams.
  • Fix an edge case where the player could fail to start playing after preloading an HLS stream while the tab was in the background.
  • Fixed an issue where for some HLS streams audio would become out of sync with video.
  • Fix unintentional warnings logged in the browser console when loading an HLS stream.

⚠ Known Limitations

  • No HESP playback supported on iOS Chrome/Firefox for iOS versions lower than 14.

Android (2.86.0)

🐛 Issues

  • Fix an issue where the current time would not be shown on the progress bar.
  • Fixed an issue where a loadstart event was not dispatched for HESP streams.
  • Fix an issue where the play/pause icon is not in sync with the playback state when in Picture in Picture.
  • Fix an issue where Picture in Picture window could not be resized on Android 11.
  • Fix an issue where destroying THEOplayerView while in fullscreen throw an Exception.

iOS (2.86.0)

💥 Breaking Changes

  • Removed support for iOS 9 & 10. The minimum supported iOS version is now 11.0.

✨ Features

  • Optimize FairPlay system to improve offline playback.

🐛 Issues

  • Fix an issue where the player was not able to select an initial audio track when no DEFAULT=YES or AUTOSELECT=YES option was specified.
  • Fix an issue where the current time would not be shown on the progress bar.
  • Fix issue where texttracks were not rendered correctly for picture in picture.
  • Fix an issue where pip button was not disabled for native pip while Google IMA and THEO ads were playing.
  • Fix a bug that prevents the advertisement from auto-starting when using NativeIma = false

⚠ Known Limitations

  • In iOS 12 an offline asset only plays once: after closing the asset, you cannot play it again. To achieve that it needs to be re-cached.

tvOS (2.86.0)

💥 Breaking Changes

  • Removed support for tvOS 10. The minimum supported tvOS version is now 11.0.

✨ Features

  • Optimize FairPlay system to improve offline playback.

🚀 2021.2.1 (2021/06/18)

iOS (2.85.3)

🐛 Issues

  • Fix an issue where THEOplayer would crash if native Picture in Picture is enabled.

🚀 2021.2.1 (2021/06/10)

General

🐛 Issues

  • Improved LLHLS bandwidth estimation. Support parsing ENVC and ENCA sample entry MP4 boxes.
  • Fix an issue where the player could stall and enter an infinite buffering loop due to rounding errors.

🚀 2021.2.1 (2021/06/07)

General

💥 Breaking Changes

  • The estimator property of the NetworkEstimator API is no longer writable, it is superseded by setEstimator.

✨ Features

  • Implement LLHLS global timeline.

⚡ Improvements

  • When playing a multi-period DASH stream containing EventStream metadata, the player will now create a single text track (rather than a text track per period) to contain the event metadata cues.
  • Improved ABR behaviour for the HESP pipeline.
  • Prune more aggressively on DASH streams with long segments.
  • Added timeout to segment requests to deal with segment network requests that never complete.

🐛 Issues

  • Fixed an issue where some TTML tracks did not render.
  • Fix a rare crash when the player performs a seamless period switch at the same time that the currently playing period is removed from the MPD.

Web (2.85.1)

💥 Breaking Changes

  • Remove Blob and Document request/response types from Network API.
  • Remove HespAbrConfiguration and former HESP ABR mechanism.

✨ Features

  • Add initial version of the new HESP ABR mechanism.
  • Implement currentProgramDateTime for HESP streams.
  • Add support UniversalAdId in the THEO ad system.
  • Added support for Widevine DRM for HESP streams.
  • Add currentServerLiveTime and currentLatency to the HESP API.

⚡ Improvements

  • Support seamless period switching for MPEG-DASH streams containing both clear periods and DRM protected periods.
  • Support seamless period switching for MPEG-DASH streams on Tizen version 2.4 and above, and webOS version 3 and above.

🐛 Issues

  • Filter on supported codecs before initial variant stream selection.
  • Fix an issue where the player would stall indefinitely instead of ending playback at the end of some DASH streams containing sidx sub-segments.
  • Fixed an issue where playing HESP content on iOS Safari was not possible if the player was starting muted.
  • Fix an issue where the currentAds and currentAdbreak API would be empty for non-linear ads.
  • Fix an issue where MPEG-DASH live streams with very large media timestamps failed to play on Tizen 2.4.
  • Fix an issue where measurers from an externally configured estimator on the (experimental) Network Estimator API could not measure certain requests.
  • Fixed an issue where playing an HESP stream on iOS Safari fails with a 'disable casting' error on screen.
  • Fix an issue where ended event comes before the adbreakend event on a post roll ad in THEO ad system
  • Fix an issue where the post-roll ad was not preloaded on the THEO ad system

Android (2.85.1)

✨ Features

  • Add support for Picture in Picture mode.

🐛 Issues

  • Fix issue where player would resize after orientation changes when using Google IMA.
  • Fix an issue where the player was unable to persist the license for offline playback.

iOS (2.85.1)

💥 Breaking Changes

  • Starting from this version the iOS/tvOS SDKs are built with Xcode 12 (Swift 5.3 compatibility).

✨ Features

  • Add support for native Picture in Picture.
  • Upgrades Google Cast SDK to 4.6.0 which contains iOS 14 specific changes from Google.

🐛 Issues

  • Fixed an issue where the chromless player could not start casting on Airplay.

🚀 2021.2.0 (2021/05/14)

General

🐛 Issues

  • Fixed a regression where some MPEG-DASH livestreams failed to play when the last segment's S@d attribute changes between two MPD updates.

🚀 2021.2.0 (2021/05/07)

General

✨ Features

  • Add support for hexadecimal and octal format suffixes in DASH SegmentTemplate URLs.

⚡ Improvements

  • Improved the ABR logic to also consider qualities with higher dimensions than the player's dimesions, if there is no exact match.
  • Optimized handling of DASH MPDs with long SegmentTimelines.
  • Improved the performance of the player on DASH streams.

🐛 Issues

  • Fixed an issue where the player would sometimes stall indefinitely when calling play immediately after setting a DASH source.
  • Fixed an issue where the player would sometimes error on some HLS streams with Fairplay protected audio and video.
  • Fixed a rare edge case where the player would throw an "Invalid duration" error when changing between DASH sources.
  • Fixed an issue where the player would sometimes stall indefinitely on some DASH streams when changing the source.
  • Fixed an issue where an HLS stream on chrome on a slower network would only play audio while video freezes.
  • Fixed an issue where the player tried to parse a WebM segment as an MP4.
  • Fixed an issue where the order of the Verizon Media preplay parameters is not maintained.

Web (2.84.0)

✨ Features

  • Change experimental ChromelessPlayer.hesp API to be available before setting a HESP source.
  • Add API and UI support for track and quality selection for HESP streams.
  • Expose universalAdIds for Google IMA.
  • Make the HESP latency property configurable before setting a source and preserved across source changes.
  • Change HESP source type to 'application/vnd.theo.hesp+json'.
  • Add support for latest HESP manifest version v1.0.0 and drop support for v0 HESP streams.
  • Add support for streaming advertisements and ads preloading in the THEO ad system.

🐛 Issues

  • Fixed an issue where the player would stall indefinitely on some HLS streams with nonaligned discontinuities on Firefox.
  • Fixed an issue where a faulty postroll would restart the content for THEO ads.
  • Resolve sequence of incorrect currentProgramDateTime values observed while seeking on iPhone
  • Fixed an issue where the player would error on HLS streams with CMAF segments that don't contain a MOOF box.
  • Fixed an issue where the player would retry to fetch a segment with a constant delay instead of using exponential backoff.
  • Fixed an issue where fullscreen mode was not working for HESP playback on iOS Safari.
  • Fixed an issue where the service worker used for HESP playback on iOS Safari could require additional page refreshes to become functional.

⚠ Known Limitations

  • Streaming advertisements downloads the highest quality instead of using the ABR-logic on Tizen.
  • Seeking during an ad results in content becoming visible on Tizen.

Android (2.84.0)

✨ Features

  • Expose universalAdIds for Google IMA.

🐛 Issues

  • Fixed an issue where Chromecast.isCasting() and Chromecast.getState() did not reflect the same state.
  • Fixed an issue where using native IMA pausing an advertising is not possible.
  • Fixed an issue where for some HLS streams the ABR mechanism did not switch to a higher profile on Android.

Android TV (2.84.0)

🐛 Issues

  • Fixed an issue where on FireTV the player would sometimes fail to configure the video codec when switching to a new period.

iOS (2.84.0)

✨ Features

  • Expose universalAdIds for Google IMA.
  • Added Support for GoogleInteractiveMediaAds framework to 3.14.1.

🐛 Issues

  • Fixed an issue where WebVTT subtitles are not rendering with together with thumbnails.
  • Fixed an issue where AudioSession interruption did not trigger a PauseEvent
  • Fixed an issue where WebVTT subtitles would duplicate.

⚠ Known Limitations

  • Text track captions are temporarily unavailable.

tvOS (2.84.0)

✨ Features

  • Added Support for GoogleInteractiveMediaAds framework to 4.4.1

🐛 Issues

  • Fixed an issue where bitmap ID3 subtitles would unintentionally scale up.

⚠ Known Limitations

  • The tvOS SDK API presents some issues, which will be fixed on 2.84.1.
  • Text track captions are temporarily unavailable.

🚀 2021.1.3 (2021/04/19)

General

🐛 Issues

  • Resolved a problem where disabling/enabling text tracks could make them go unrendered.

🚀 2021.1.3 (2021/04/13)

General

🐛 Issues

  • Fix an issue where sometimes the player would get stuck when setting a new source
  • Fix an issue where the duration of the player is set to Infinity when the source of a VOD DASH stream is set.
  • Fixed an issue where the player would sometimes throw on DRM protected LL-HLS streams.
  • Fixed an issue where the player src property would be equal to the Chromecast source while not casting.
  • Fix an issue where playing Google DAI stream the source parameter was not passed completely
  • Fix an issue where the player fails to jump over an unplayable segment at the start of a DASH VOD stream.

Web (2.83.0)

✨ Features

  • Added TypeScript type definitions.
  • Add initial support for playback of HESP streams. For more information visit https://www.theoplayer.com/high-efficiency-streaming-protocol.
  • Add experimental ChromelessPlayer.hesp API for functionality specific to the playback of HESP streams.
  • Add HespTypedSource for configuration of HESP streams.

⚡ Improvements

  • The SIDX boxes are now also cached when caching an MPEG-DASH stream using the caching API.

🐛 Issues

  • Fix an issue where the player would discard the streamType property when passing a source configured with Yospace SSAI.
  • Fix an issue where the player will be unmuted after a reload or source change when the google ima integration is used.
  • Fixes a bug that prevented AirPlay sessions from being re-established.
  • Fixed seekable end for LLHLS live streams without parts.
  • Fixed seeking the LLHLS player when there is no seekable yet.
  • Fix a bug that caused THEOPlayer to show the same sideloaded texttrack twice in the texttracks menu.
  • Fixed DRM for Tizen 2.x
  • Fixed an issue where the contentprotectionsuccess event would not always fire for PlayReady streams on Edge.
  • Fixed an issue where the initial bandwidth of an ABR strategy was not retained until a properly measured bandwidth was available.
  • Fix an issue where sometimes the player state is not ended when it reaches the end of the stream on Tizen 5.
  • Prevent handling of empty webkitkeymessage events
  • Fixed an issue where requesting firstFrame and frameRate could return NaN for HLS streams.

Android (2.83.0)

🐛 Issues

  • Fix an issue where disconnecting from Chromecast using native Google Cast button didn't stop the receiver.
  • Fix an issue where MediaRouteDialog does not show if THEOplayerView is not initialized on Activity's onCreate method.

iOS (2.83.0)

🐛 Issues

  • Fix an issue where a faulty error message would be printed when passing a license through the configuration.
  • Fix an issue where playing a cached source multiple times in a row would not work.
  • Fix an issue where resetting the source with text tracks would sometimes crash the player.

🚀 2021.1.2 (2021/03/16)

General

✨ Features

  • Added support for AES-128 encrypted segments for LLHLS streams.

⚡ Improvements

  • Improve period switching between periods with different key systems.

🐛 Issues

  • Fix an issue where the player would report paused as false when ended.
  • Fix a crash when playing a VOD DASH stream that does not contain the expected number of SegmentURL elements.
  • Resolved issue where large chunks cause problems with LL-HLS byteranges in preload hints
  • Fix an issue where some ad-related events were still dispatched after the player is destroyed.
  • Added support for nested regions in ttml cues.
  • Fix an issue that caused THEOplayer to stall after doing a short seek between two periods if the buffer started getting segments of the next period.
  • Fixed an issue where Preplay parameters in the configuration would be overwritten by generated values.
  • Fix seeking in a HLS VOD or event stream with discontinuities sometimes not being frame-accurate.
  • Reduced the memory usage for long running viewing sessions where some memory would be kept until the stream ends.
  • Fixed an issue where seeking near period edges in a DASH stream would sometimes result in an error.

Web (2.82.0)

✨ Features

  • Add media data gap detection and jumping in the LL HLS pipeline.
  • Improve the ABR behaviour of the LL HLS pipeline.
  • Support the EXT-X-STREAM-INF SCORE attribute in LL HLS pipeline.

🐛 Issues

  • Fix a Google IMA issue that caused THEOplayer to only play the last ad if multiple midrolls are scheduled with a timeOffset.
  • Disable the Airplay button during an ad.
  • Fixed an issue where some FairPlay protected streams failed to start on Safari.
  • Fix an issue where thumbnail previews were shown incorrectly on mobile

Android (2.82.0)

🐛 Issues

  • Fix an issue where an empty ad XML would result in an endless spinner for Google IMA.
  • Fix an issue where connecting to Chromecast using native Google Cast button after player creation was not handled.

iOS (2.82.0)

✨ Features

🐛 Issues

  • Fix an issue where setting a metadata title including apostrophe would fail.
  • Fix an issue where changing audio tracks freezes THEOplayer.

tvOS (2.82.0)

✨ Features

🐛 Issues

  • Fixes a bug that caused THEOplayerSDK on tvOS to have wrong entries for UIDeviceFamily.

🚀 2021.1.1 (2021/02/24)

General

🐛 Issues

  • Reduced the memory usage for long running viewing sessions where some memory would be kept until the stream ends.

🚀 2021.1.1 (2021/02/12)

General

✨ Features

  • Implement basic ABR for new LL HLS pipeline.

⚡ Improvements

  • Added support for EventStream@presentationTimeOffset in MPEG-DASH streams.
  • Improved the interval for fetching manifest updates for DASH streams to be closer to the minimumUpdatePeriod.

🐛 Issues

  • Fix an issue where the player would sometimes seek to the start of the DVR window when play was called.
  • Fix an infinite stall when seeking to the end of a DASH VOD stream on Safari.
  • Fix an issue where creativeAdId was exposed through imaAd.creativeId (instead of creativeId)
  • Fix an issue where our Google IMA-integration would incorrectly dispatch a playing event when ad is immediately paused
  • Fix an issue where the player would hang when loading certain DASH livestreams that only contain segments that are already available.
  • Fix an issue where after a seek beyond the end of the seekable range will result in seeking too close to livepoint and starting to stall.

Web (2.81.0)

✨ Features

  • Upgrade Youbora adapter version to 6.7.7.

🐛 Issues

  • Fix audio only LL-HLS playback.
  • Fix an issue where subsequently skipping forward or backward in a DASH stream sometimes incorrectly marks a gap in the buffer.
  • Fix an issue where the player would freeze when clicking replay after playing a clipped HLS stream on iOS Safari.
  • Fix an issue where repeatedly starting an HLS stream on Safari sometimes results in playback with frame skips.
  • Improved gap jumping for less powerful devices such as smart tv's.
  • Fix an issue where the player would get stuck near the end of a DASH stream that uses indexed addressing.
  • Fixed playing across periods for WebOS 3.x and lower.
  • Fix LL HLS pipeline reset logic not working after the player has already played.
  • Fix an issue where the player would sometimes stall near a DASH period boundary on Samsung Tizen smart TVs.
  • Fixed Moat integration for multiple adblocks use-case

Android (2.81.0)

✨ Features

  • Upgrade Youbora plugin version to 6.7.7.

Android TV (2.81.0)

🐛 Issues

  • Fixed seeking across periods for Android TV.
  • Fix an issue where Google IMA ads were not playing on Android TV.
  • Fix an issue where custom DRM integrations would not work on Android TV.

iOS (2.81.0)

⚡ Improvements

  • Update Youbora integration to version 6.7.7.

🐛 Issues

  • Fix the API of CertificateRequestCallback and LicenseRequestCallback.
  • Fix an issue where fullscreen would not render in the bounds of the application in splitview
  • Fixed an issue where the content protection error code was missing.
  • Fix an issue where extra WAITING event was thrown.

tvOS (2.81.0)

🐛 Issues

  • Fix the API of CertificateRequestCallback and LicenseRequestCallback.
  • Fixed an issue where the content protection error code was missing.

🚀 2021.1.0 (2021/01/13)

General

🐛 Issues

  • Fix an issue where the tts:origin attribute was not correctly processed when positioning subtitles.

Web (2.80.0)

🐛 Issues

  • Fix an issue where MOAT events are only send for the first ad in an adbreak
  • Fix seeking to live for DASH streams

iOS (2.80.0)

🐛 Issues

  • Fixed an issue where paused caching tasks could not resume.
  • Fixed an issue where the PiP window's position is incorrect when rotating the device.

🚀 2020.4.2 (2021/01/06)

Web (2.79.1)

🐛 Issues

  • Fix an issue where a DASH stream on chrome on a slower network would only play audio while video freezes.

🚀 2020.4.2 (2020/12/18)

General

🐛 Issues

  • Fix an issue where parsing certain malformed WebVTT files could crash the player.
  • Fix an issue where sometimes a fetched license is not stored in the cache.

Web (2.79.0)

⚡ Improvements

  • Use seamless period transitions in DASH where possible. This requires the browser to support codec switching through SourceBuffer.changeType(), or the stream to use similar codecs across periods.

🐛 Issues

  • Fix several issues related to play/pause during IMA linear ad playback.
  • Fix an issue where the player would play data from a previous track after a switch to another track had occurred on WebOs.
  • Fix an issue where MOAT events are only send for the first ad in an adbreak
  • Fix an issue where the player would sometimes crash when seeking right after the start of a DASH stream.

Android (2.79.0)

✨ Features

  • Add basic support for multi-period DASH streams in the experimental rendering pipeline. (Note that the default pipeline already has multi-period support.)

🐛 Issues

  • Fix an issue where using ChromecastMetadataImage made casting impossible.
  • Fix an issue where the muted value would not be correctly updated on Android

iOS (2.79.0)

✨ Features

  • Added ContentProtectionError error type.

🐛 Issues

  • Fixed an issue where content protection errors were not sent.

tvOS (2.79.0)

✨ Features

  • Added ContentProtectionError error type.

🐛 Issues

  • Fixed an issue where content protection errors were not sent.

🚀 2020.4.1 (2020/12/09)

Web (2.78.1)

🐛 Issues

  • Fix an issue where non-WebVTT sideloaded subtitles were not rendered correctly on iOS in Safari

🚀 2020.4.1 (2020/11/24)

General

✨ Features

  • Addition of a new bufferLookbackWindow configuration property to control how much data should be maintained in the decode buffer.
  • Synchronize MPEG-DASH MPD updates with availability window changes in order to avoid stale MPDs.
  • Add support for configuring the license via the playerconfiguration

⚡ Improvements

  • Added support for retrieving PlayReady PSSH from <mspr:pro> element.

🐛 Issues

  • Fixed an issue where some HLS streams would not end properly.
  • Resolve issue where in stream subtitles are all loaded at once
  • Fix an issue where a replay would sometimes fail on short HLS streams.
  • Fixed a bug where streams did not send exit events for Id3 cues, when useNativePlayback or contentProtected was set to true in the player source setup

Web (2.78.0)

✨ Features

  • Add Network Estimator API for experimental LL-HLS pipeline.

🐛 Issues

  • Fix an issue where Widevine protected streams would not play on Hisense VIDAA U3 platforms.
  • Improve the ABR algorithm to switch to a higher quality faster on startup of HLS streams.
  • Fix an issue where the player would error on HLS streams with empty segments.
  • Fix an issue where configuring the JoinStrategy to disabled would crash the chromecast UI.

Android (2.78.0)

🐛 Issues

  • Fix an issue where setting a null source would crash the application.
  • Fix an issue where the app would sometimes crash on calling requestCurrentAdBreak.
  • Add cause for ErrorEvents when applicable.

iOS (2.78.0)

✨ Features

  • Add support for external license either by license or licenseUrl in the PlayerConfiguration or in the info.plist.

🐛 Issues

  • Fixed an issue where requesting the currentAdBreak would crash

tvOS (2.78.0)

✨ Features

  • Add support for external license either by license or licenseUrl in the PlayerConfiguration or in the info.plist.
  • Add Support for verizonMedia on tvOS.

🚀 2020.4.0 (2020/11/17)

Android (2.77.1)

🐛 Issues

  • Fix an issue where Chromecast did not auto-connect when CastStrategy is AUTO.

iOS (2.77.1)

🐛 Issues

  • Fixed a bug where switching audio tracks would fail after updating the label.
  • Fixes a bug that prevented a nativeIMA ad from playing when reinstantiating a THEOplayer instance.

tvOS (2.77.1)

🐛 Issues

  • Fixed a bug where switching audio tracks would fail after updating the label.

🚀 2020.4.0 (2020/10/26)

General

✨ Features

  • Support parallel download while caching.

🐛 Issues

  • Add jumping over segments which return a 4XX HTTP response code for DASH streams.
  • Fix an issue where the player autoplays IMA ads when preload is set
  • Fix an issue where for some HLS streams audio drifts away from video, resulting in visible lip sync issues.
  • Fix an issue where the player would sometimes stall indefinitely when seeking into a discontinuity on HLS streams.
  • Fix an issue where seeking to segment edges sometimes stalls the video for HLS streams.
  • Fix an issue where the timing of WebVTT subtitles on live DASH streams was incorrect.
  • Fixed an issue where the player could sometimes stall indefinitely in Chrome at the end of a DASH VOD stream.
  • Ignore DRM initialisation data other than 'cenc'
  • Fixed having only one audio frame in a segment can sometimes break duration calculation.

Web (2.77.0)

🐛 Issues

  • Fixed an issue where the fairplaySkdUrl was always undefined in LicenseRequest for FairPlay protected streams.
  • Fix an issue where for some HLS streams the ABR mechanism did not switch to a higher profile.
  • Fix an issue where for some HLS streams the ABR mechanism does not switch to higher profiles in case the variant streams in the master playlist do not have a value for the CODECS attribute.
  • Fix an issue where THEOplayer.players[0].source returns undefined for every stream in chromeless player.

Android (2.77.0)

✨ Features

  • Add THEOplayerException to ErrorEvent
  • Introduce ContentProtectionException and update ContentProtectionErrorEvent.
  • Added ContentProtectionIntegration API.

🐛 Issues

  • Fix an issue where VerizonMediaResponseDrm returned null for license URLs

👎 Deprecations

  • The constructor of THEOplayerConfig is deprecated in favor of THEOplayerConfig.Builder.

iOS (2.77.0)

✨ Features

  • Add ContentProtectionIntegration API.

⚡ Improvements

  • Align TheoError with other SDKs

🐛 Issues

  • Fixes an issue where a caching task is not properly removed when its file is deleted.
  • Fixes a bug that caused player.source to return nil immediately after setting the source.

👎 Deprecations

  • Some of the constructors of the THEOplayerConfiguration has been deprecated.

tvOS (2.77.0)

✨ Features

  • Add ContentProtectionIntegration API.

⚡ Improvements

  • Align TheoError with other SDKs

🐛 Issues

  • Fixes a bug that caused player.source to return nil immediately after setting the source.

Chromecast (2.77.0)

🐛 Issues

  • Fix an issue where sometimes playback pauses after setting a new source.
  • Fix issue where receiver would stop playing upon destroying the player.

🚀 2020.3.3 (2020/10/01)

General

🐛 Issues

  • Fix an issue where for some HLS streams audio drifts away from video, resulting in visible lip sync issues.

Web (2.76.1)

🐛 Issues

  • Fix an issue where for some HLS streams the ABR mechanism did not switch to a higher profile.
  • Fix an issue where for some HLS streams the ABR mechanism does not switch to higher profiles in case the variant streams in the master playlist do not have a value for the CODECS attribute.
  • Fix an issue where switching from a single quality to automatic quality selection did not work for HLS streams.

🚀 2020.3.3 (2020/09/28)

General

⚡ Improvements

  • Improve gap marking and jumping for DASH streams

🐛 Issues

  • Fix an issue where an aderror event was not dispatched correctly if an ad failed to load and blockContentIfAdError = false.
  • Resolved issue where currentProgramDateTime was being offset by suggestedPresentationDelay.
  • Fixed an issue where the player would not use a custom ContentProtectionIntegrationFactory if registered with the same integrationId as an existing content protection pre-integration.

Web (2.76.0)

✨ Features

  • Added the ability to configure customData when using PlayReady DRM.
  • Add reporting of total bytes loaded, current bandwidth estimate and number of currently buffered segments for DASH streams to the player metrics API .
  • Update Conax Classic configuration properties to be optional.
  • Added bitrate property to GoogleImaAd.
  • Add error codes to all fatal player errors through ErrorEvent.errorObject.code.

🐛 Issues

  • Fix an issue where license request and response handlers were called instead of certificate request and response handlers for Widevine Certificate requests for DASH streams.

⚠ Known Limitations

  • PlayReady streams are currently not supported on WebOS.
  • 4k/8k stream playback is currently unavailable for Tizen.
  • Multi-period streams are not supported on WebOS and Tizen

Android (2.76.0)

✨ Features

  • Add reporting of total bytes loaded, current bandwidth estimate and number of currently buffered segments for DASH streams to the player metrics API.
  • Added bitrate property to GoogleImaAd.

🐛 Issues

  • Fix an issue where the ENDED event would not be triggered when seeking using the Native Pipeline.
  • Fix an issue where the percentage cached was not reported correctly.
  • Fix an issue where segments were not cleaned on player destroy
  • Fix an issue where deallocating native rendering player were not handled correctly.

iOS (2.76.0)

💥 Breaking Changes

  • Renamed and changed type of THEOErrorCode enum cases.
  • Removed unused THEOError.parameters property.

✨ Features

  • Added bitrate property to GoogleImaAd.

🐛 Issues

  • Fixed a bug that cause MainThread to freeze for while when dispatching a durationChange event.
  • Fix an issue where dragging out PictureInPicture window would fail to enter fullscreen mode.

tvOS (2.76.0)

💥 Breaking Changes

  • Renamed and changed type of THEOErrorCode enum cases.
  • Removed unused THEOError.parameters property.

🐛 Issues

  • Fixes a bug where Siri remote loses focus when playing ads.

🚀 2020.3.2 (2020/09/18)

General

⚡ Improvements

  • Do not clear the buffer on a manual quality switch.

🚀 2020.3.2 (2020/09/03)

Web (2.75.1)

🐛 Issues

  • Fix an issue where adbreakend event was not dispatched when the last linear ad was an empty vast ad.
  • Fix THEOplayer.registerContentProtectionIntegration() not working.

🚀 2020.3.2 (2020/08/31)

General

🐛 Issues

  • Fix an issue where some HLS streams with CMAF segments containing implicit HE-AAC audio failed to play.
  • Fix an issue where switching from a single quality to automatic quality selection would cause an unnecessary rebuffer for DASH streams.

Web (2.75.0)

✨ Features

  • Add ContentProtectionIntegration API.

🐛 Issues

  • Fix an issue where sometimes the current time was not displayed correctly at the end of a stream.
  • Fix an issue where the player would report being paused, while it was playing a HLS FairPlay stream using AirPlay.
  • Fix an issue where the player would snap to the beginning of the current segment instead of the current playback position when stopping an AirPlay session for HLS FairPlay streams.
  • Fix an issue where the active quality is not yet set when a playing event is triggered.

Android (2.75.0)

✨ Features

  • Switch to a different representation when a DRM key restriction occurs for native rendering.
  • Add certificate to KeySystemConfiguration

🐛 Issues

  • Fix an issue regarding the order of events when using Native Rendering.
  • Expose CachingTask id property

iOS (2.75.0)

✨ Features

  • Fix a bug that caused THEOplayer to show a black screen after playing a SpotX ad.

🐛 Issues

  • Fix an issue where Picture-in-Picture window is misplaced after rotating the screen.
  • Expose CachingTask id property

tvOS (2.75.0)

✨ Features

  • Add Support for Native IMA.
  • Add support for SpotX ads.

🚀 2020.3.1 (2020/08/04)

General

✨ Features

  • Add currentProgramDateTime to TimeUpdateEvent.
  • Add support for DASH streams with a SegmentTemplate tag with an endnumber and a fixed segment duration.

⚡ Improvements

  • Use estimated segment availability for DASH streams where the actual segment availability is unrealistic.
  • Add retry functionality for initialization segments of DASH streams.

🐛 Issues

  • Fix an issue where seeking backwards in a HLS DVR stream would sometimes jump forwards again.
  • Fix an issue where suggestedPresentationDelay was not taken into account for the calculation of currentProgramDateTime for DASH streams.
  • Fix an issue where the ratio passed to the VisibilityObserverCallback did not match the ratio on the visibility API.
  • Fix an issue where some TTML subtitles with tts:extent on the Root Container Region were not rendered properly.
  • Fixed an issue where the player would get stuck buffering for HLS streams with key frames more than 30 seconds apart.
  • Fix an issue where the value of the totalAds property of the Google IMA API would sometimes be too low.

Web (2.74.0)

🐛 Issues

  • Fix an issue where the learn more button is appearing at the bottom of the player when playing a google dai ad.

Android (2.74.0)

✨ Features

  • Add ContentProtectionIntegration API.
  • Add Axinom content protection pre-integration for android with nativeRendering enabled.
  • Extend TimeUpdateEvent to include programDateTime.
  • Embed Exoplayer into THEOplayer SDK

⚡ Improvements

  • Ignore in-stream PSSHs if all the key IDs are contained in the active DRM session.

🐛 Issues

  • Fix an issue where PLAYING event was not dispatched after a SEEKED event
  • Fix an issue where incorrect buffer size triggered a WAITING event.
  • Fix an issue where offline caching would not work for DASH content.

iOS (2.74.0)

✨ Features

  • Add the possibility to prevent THEOplayer from managing the AVAudioSession.
  • Extend timeUpdate event to include programDateTime.
  • Add margin parameter to PictureInPicture configure API.

🐛 Issues

  • Fix issue where setting targetBuffer did not work.
  • Fix an issue where seeking immediately after setting source would not work.

tvOS (2.74.0)

✨ Features

  • Add the possibility to prevent THEOplayer from managing the AVAudioSession.

🐛 Issues

  • THEOplayer no longer handles PLAY/PAUSE events from the SiriRemote when chromeless is true
  • Fix an issue where seeking immediately after setting source would not work.

🚀 2020.3.0 (2020/07/07)

General

⚡ Improvements

  • Remove THEOplayer support in error messages in favor of "your service provider".

🐛 Issues

  • Fix an issue where the player would sometimes throw an error event, even though it had already automatically recovered from it.
  • Fix an issue on HLS where an error would occur on a discontinuity when the stream has either no video or no audio.
  • Fix an issue where the player would fetch the wrong segment url for some DASH streams with SegmentTemplate tags.

Web (2.73.0)

🐛 Issues

  • Fix an issue where an ad that is adblocked does not result in the content being blocked although the blockContentIfAdError is set.
  • Fix an issue where the skip button for verizon media ads had no lateral padding.
  • Fix an issue where some Google DAI DASH streams wouldn't resume after a midroll ad.

Android (2.73.0)

✨ Features

  • Add Support for Native IMA

🐛 Issues

  • Fix an issue where THEOplayer crashed between Activity lifecycle transitions
  • Fixed an issue where using native rendering the quality change caused the player to lag
  • Fix an issue where the player sometimes stutters on ABR quality switches when playing H265 streams using native rendering.
  • Fix an issue where fullscreen would go into landscape even when FullScreenOrientationCouple is set to false

iOS (2.73.0)

✨ Features

  • Add Support for Native IMA

🐛 Issues

  • Fix an issue on iOS where returning from fullscreen mode would break the UI

🚀 2020.2.1 (2020/06/10)

General

🐛 Issues

  • Resolved issue where text track cues could remain active after a silent fast seek by the media pipeline
  • Fix an issue where playback would sometimes fail to start for DASH streams with subsegments whose timestamps are not aligned with their parent segment.
  • Fixed issue where MPEG-DASH streams with dynamic manifests where the last period's duration increases every update does not correctly update its duration.
  • Fix an issue where sometimes the player would seek to the wrong time for DASH streams.

Web (2.72.0)

✨ Features

  • Add playerSuiteVersion API.

⚡ Improvements

  • Fix an issue where the player reported buffer length in seconds instead of milliseconds for Conviva analytics.

🐛 Issues

  • Fix an edge case for some HLS streams where the player would sometimes download segments multiple times for specific target buffer values.

Android (2.72.0)

✨ Features

  • Add a THEOplayerView.getPlayerSuiteVersion() api.
  • Add timeServer flag for SourceDescription and TypedSource
  • Add lowLatency flag to SourceDescription

⚡ Improvements

  • Add support for playback of HEVC representations of a DASH stream when nativeRendering is enabled.

🐛 Issues

  • Fix an issue where Google DAI DASH streams would not play
  • Fix an issue where using Native Rendering the ended event was missing

iOS (2.72.0)

✨ Features

  • Add a THEOplayer.playerSuiteVersion api.
  • Add support for Comcast MPX Fairplay DRM
  • THEOplayer does not require anymore to be attached to a ViewController to switch to Picture-in-Picture mode

🐛 Issues

  • Fix bug where accessing audioTracks/videoTracks on track change event would return false states

Chromecast (2.72.0)

✨ Features

  • Add playerSuiteVersion API.

Chromecast CAF (2.72.0)

✨ Features

  • Add version and playerSuiteVersion API.
github
Make sure to follow us on GitHub!
THEO-logo-white
twitter
facebook
linkedin
Copyright © 2020. All Rights Reserved.
Leuven
New York
Singapore
Barcelona