6.15 is the first generally available release since You.i Platform version 6.13.
The release notes contain a brief overview of new features, improvements, resolved issues, and breaking changes.
Read the Migration Guide to best understand how any breaking changes may impact your application.
Consult our Hardware and Software Specifications for complete, up-to-date requirements for building You.i Platform apps.
General Changes in 6.15.0
New Features
- Our Crash Handler now supports the following additional target devices:
- Universal Windows Platform (UWP)
- Roku Cloud
- Tizen
Android new features
- A role field is now available on
CYIAbstractVideoPlayer::TrackInfo
.
This field is only populated on Android when using the CYIAbstractVideoPlayer
to play DASH content.
We plan to support this field for other platform players and streaming formats in a future release.
-
CYIAbstractVideoPlayer::MediaPlaybackControlsInterface::ControlsHandler
now provides a callback for OnFastForward/OnRewind.
We provide these callbacks when media control handling is enabled and the user presses the fast forward or rewind buttons on Android TV and Fire TV remote controls.
Tizen new features
- Tizen applications can now handle the closed captions button on the remote.
By default, the closed captions button opens the accessibility shortcuts menu.
If you want the application to handle the closed captions key event to display an in-app settings screen instead, enable the CMake variable
YI_HANDLES_CC_BUTTON
.
This prevents the system captions settings from opening and sends the closed captions button key event to the application.
- The Tizen Elementary Stream Player (
CYITizenNaClESVideoPlayer
) is now available.
We built this player with the same castLabs technology as the PlayStation player, and it sits on top of the Samsung NaCl MediaPlayer.
This player resolves many issues that exist with the JavaScript-based AVPlay (CYITizenAVPlayVideoPlayer
).
This release focuses on DASH and PlayReady support, but the player can also play Clear HLS/MP4 streams.
-
CYIAdvertisingInformationBridge
now retrieves advertising identifiers for Tizen devices.
Improvements
- Crash Handler reports now include a timestamp indicating when the crash occurred.
- The castLabs ES Player now supports setting the maximum bitrate.
- We’ve upgraded our third-party library for http, CURL, from 7.59 to 7.79.
- We now use the third-party library for SSL, boringSSL, on all platforms.
We’ve upgraded it to the latest stable version, from a mix of older boringSSL versions and openSSL.
- We’ve improved the documentation for secure store classes, to better communicate secure store write limitations.
- We’ve improved the documentation for
CYIApp
“get path” APIs, to better communicate persistent path write limitations.
Android improvements
- The Crash Handler now creates a safe state for crash handling by forking the process.
- Our Crash Handler now reports Java crashes (for example, uncaught Java exceptions).
The Java stack trace is included in the crash report.
- We now log an error when hardware acceleration isn’t available, to support troubleshooting app launch failures.
- We’ve added support for Skip to Next and Skip to Previous voice commands for the Android ExoPlayer.
- On Android TV, a new event with
CYIKeyEvent::KeyCode::AudioTracks
is now sent when the audio tracks button is pressed on remote controls which have this button.
- We’ve added more audio track details so that you can differentiate between tracks in the same language tracks with different audio encodings.
See the migration guide to learn more.
iOS and tvOS improvements
- We now use the “new” Xcode build system to generate on iOS and tvOS.
Tizen improvements
- Our Tizen NaCl ES (Elementary Stream) Player now supports app backgrounding and foregrounding.
- We now send crash reporting information before the user dismisses a Tizen application.
- We’ve upgraded the versions of cURL and BoringSSL used for Tizen apps.
- We’ve removed the Tizen configuration for accelerated 2D canvases from the default
config.xml.in
, as it wasn’t necessary and caused a warning in Tizen Studio.
- We’ve improved on-screen logging performance for debug builds on low-end devices, cutting down load times from minutes to seconds.
See the migration guide for details on the impact of this change.
- We now create the Tizen AVPlay player and add it to the HTML DOM when the
CYITizenAVPlayVideoPlayer
is in use.
UWP improvements
- To improve performance, we now use precompiled shaders on UWP.
- We now use a unique identifier for app identity fields on UWP.
Resolved Issues
- Fixed an issue where websockets would stop receiving or disconnect when a timeout occurred.
- We’ve cleaned up the JS script backtraces that were sometimes shown in the output for generate commands.
- Fixed an issue that caused lists containing “center” magnets to bounce when loading list items.
- Fixed an issue that caused React Native app assets to be copied to C++ apps when a project was generated for the second time.
- Fixed an issue that prevented You.i React Native from refreshing after a change to the JavaScript source.
- Resolved an issue with selecting the next focused item on TVs with very small displays.
- The
youi-tv doctor
command now correctly detects the compiler version set with the CC
and CXX
environment variables on Linux.
- Fixed an issue where layout assets were incorrectly reloaded when the surface size changed.
- Fixed an issue where rapidly scrolling through a list of lists could cause poor performance.
Android resolved issues
- Fixed an ANR error which could occur on a small subset of Android devices.
This ANR occurred when a video was loaded into the player and the application was backgrounded and then foregrounded more than 30 minutes later.
- Fixed an issue where audio/subtitle tracks would reset to the default track when switching between periods with different audio/subtitle tracks.
- Fixed a crash that could occur on Android 7.x devices when resuming playback after the app had been backgrounded for an extended period.
- Fixed an issue that prevented setting the
CYIKeyboardInputBridge::InputModifiers::NoSuggestions
flag on a masked password field.
- Fixed an issue in the ExoPlayer for some Android STB devices where playback could stop when the video reached an ad break.
- Fixed a crash that could occur when the screen reader was enabled and the user used the back button to exit the app.
- Fixed a crash that could occur on some Android devices when the application was launched with
FLAG_ACTIVITY_NEW_TASK
and FLAG_ACTIVITY_CLEAR_TASK
while the player was active.
- Fixed an issue on Android TV where a
CYIKeyEvent::KeyCode::Play
event was sent to the application after opening or closing Google Assistant, regardless of the command issued to the assistant.
- Fixed an infinite loop which could occur due to a network failure requesting a DRM license during playback of DRM-protected content using the
CYIExoPlayerVideoPlayer
on Android.
- Fixed an issue on Fire TV and Nvidia Shield devices that caused the screen to flash black during playback of a DolbyVision stream.
- Fixed two crashes in the Android video player related to
CYIMediaSessionManager
and CYIActivity
that could occur when backgrounding the application on Google TV.
iOS and tvOS resolved isues
- Fixed an AVPlayer issue that could prevent playback of the first part of an ad segment on Apple TV HD devices running tvOS 15+.
- Fixed a list navigation issue that occurred in accessible apps on iOS/tvOS 15.1.
- Fixed an issue on iOS and tvOS when using
CYIAVPlayerVideoPlayer
with VoiceOver enabled, where the player could occlude accessibility elements and prevent accessibility focus from moving as expected.
- Fixed an issue on tvOS where the native Apple TV player Play/Pause button didn’t work when the Up Next button was visible.
- Fixed a bitcode bundle error that could occur during app generation on tvOS.
- Fixed an issue with
CYITextEditView
that prevented VoiceOver from reading the accessibility hint and label on tvOS.
- Fixed an issue that caused dynamic list items to flash on tvOS and UWP.
- Fixed an issue on tvOS which occurred when VoiceOver was enabled in Navigation Mode, preventing a focus update when the application requested an accessibility focus update programmatically.
PlayStation resolved issues
- Fixed an issue where
CYIAbstractVideoPlayer::AdaptiveResolutionInterface::SetMaxResolution
on PS4 didn’t properly set the maximum resolution and instead allowed usage of higher resolutions during playback.
- Fixed an issue where Closed Captions weren’t displayed after seeking.
- Resolved a crash on PlayStation 4 which occurred at application launch when the user explicitly set the device display settings to 720p or 480p instead of 1080p.
- Fixed an issue that could prevent PlayStation 4 apps from starting if the user’s save data became corrupt.
If the application attempted to load from
CYIPersistentStore
before the user dismissed the splash screen, the splash screen occluded the prompt and prevented user interaction.
Tizen resolved issues
We resolved a few issues with the Tizen Elementary Stream player:
- Fixed an audio stutter that could occur when the video configuration updated and a new DRM license was installed.
- Fixed an issue where asset playback failed after previews were played for a stream containing ads.
- Fixed an error that caused the loading indicator to display forever when seeking to the end of a stream.
- Fixed a “Failure to append packet” error that occurred during the first few seconds of video playback.
UWP resolved issues
- Addressed a performance issue by precompiling shaders.
- Fixed an issue with non-English keyboard layouts that prevented the on-screen display of certain user-entered characters.
- Fixed an issue that caused dynamic list items to flash on tvOS and UWP.
- Fixed an uncaught exception in the Crash Handler.
- Fixed an issue on Xbox where the select key caused the keyboard to open after the user had dismissed the keyboard.
Behavior Changes
- We’ve updated our castLabs-based PlayStation, Tizen NaCl elementary stream, and LG webOS elementary stream video player names to be more consistent and clearly reflect the different technologies in use.
Breaking Changes
We’ve removed the following:
React Native Changes in 6.15.0
React Native New Features
React Native Resolved Issues
- Added the
DevSettings
Jest mock.
- Fixed an issue with sourcemap and bundle configuration for RAM bundling for You.i React Native apps.
React Native Breaking Changes
- We’ve made changes to the
FairPlayerDrmHandler
module.
Calls into DRM_REQUEST_URL_AVAILABLE
and SPC_MESSAGE_AVAILABLE
now contain a unique drmRequestId
, which must be sent back in the responses to the FairPlayDrmHandler
methods.
Roku for You.i Roku Cloud Changes in 6.15.0
Roku Cloud New Features
Roku Cloud Improvements
- We’ve improved our AE animation interpolator to create smoother animations.
Roku Cloud Resolved Issues
- Fixed an issue where dynamic node updates in list items were ignored.
- Fixed an issue where the component scrolling view reset the focused index when a list item was replaced.
- Fixed an issue where lists weren’t refreshed properly after the user deleted an item.
- Fixed an issue where the Remove button wasn’t always available for list items.
- Fixed an error where session recorder messages weren’t sent after a server disconnect.
- Fixed an NPE that could occur when a null child
CloudNode
was created.
- Fixed an issue that caused the display of an “Internet Unreachable” error right after the splash screen.
Roku Cloud Breaking Changes