Where to Start?
- Read the Change List for a list of changes since the last version.
- Read the Guides for the full details on OpenTV RTE, CCOM API usage, developer tools, and code examples.
- Consult the CCOM API documentation and the Configuration Settings documentation.
- Read the CCOM API Tutorials.
New Features and Upgrades
The following new features and improvements have been added in this release:
Application RAM memory management provides new methods and notifications to query application RAM usage. Applications now will have better information concerning the amount of used memory to better manage memory usage and avoid crashes.
Added capability for:
- application to request for a desired decoder resource type (e.g. HD vs UHD) and specify resolution cap (e.g. 720p vs 1080p) at play start.
- application to query for the max decoder resolution of a given player.
- application to update the max resolution cap on an ongoing playback.
The functionality is available at
<video> tag and Player CCOM levels and is supported for most of content types:
Added support for white-listing BT LE RCUs is enabled. OpenTV OS will connect to a white-listed BT LE RCU that is in pairing mode without the user initiating scan, pair and connect operations. OpenTV OS now supports plugin mechanism to support voice search over different BTLE RCU models (see DLL and hook APIs documentation).
- Broadcast, PVR, HLS, DASH, MP4, Netflix, YouTube
- MSS partially supported (resource management, no resolution capping as it requires modification in SSPK).
The CCOM.ServiceManager object allows applications to
- query the state of any CCOM service to determine whether the service is CONNECTED, CONNECTING or DISCONNECTED;
- optimize startup logic where CCOM non-critical services become available in parallel with application loading;
- optimize startup logic where CCOM services become available in parallel, while the application is loading the UI; and
- disable UI features dynamically, when CCOM services become unavailable at any point of time.
Added support for Application to query and notify of a high STB temperature level. In addition, when the temperature reaches a critical level, OpenTV OS takes the emergency action to put the STB in Low Power Mode after a configurable timeout (during which the UI can present an appropriate message to the end-user).
OpenTV OS now provides support for DASH Simple Live Profile. Trick modes are not currently supported, and validation is performed only with clear content.
Enhancements are provided in the DASH pipeline to improve the DASH clear content zapping time by around 350 milliseconds (achieved by having the pipeline not being destroyed).
DLK 2.0 is integrated into OpenTV OS 5.2.4 with pre-certification tests passing.
NAGRA MediaAccess DLK is an entry-level software solution designed to address the needs of cable operators in emerging markets.
ELK3.3 is integrated into OpenTV OS 5.2.4 with pre-certification tests passing. NAGRA Media ACCESS ELK is a next generation security platform designed by Nagravision to protect live video content over 'always on’ managed IP networks.
Added capability for displaying a popup (with text or graphic) without interrupting the application in focus. See Application object's
startShowingWindowNoFocus() method in CCOM API documentation for mode details.
Graphic performance and animation frame-rate have been improved thanks to following mechanisms:
- Double double-buffer rendering
- WebKit “no color conversion” improvement (require at least Nexus 16.4).
OpenTV OS 5.2.4 improves HLS channel changing by approximately 400 milliseconds by optimizing the HLS pipeline.
The new IP Messaging component is added to receive push notification from the server. This component provides interfaces for other components to register for notifications that they are interested in receiving. Connection to the server can be done either using websocket or http-sse; the default is websocket connection. http-sse is used as a backup in case the websocket connection fails.
- the RAS component is added as a consumer of IP messaging, and
- the Notify component is added as a consumer of IP messaging.
A size field is added to the CCOM MediaLibrary's MediumInfo and PartitionInfo objects. This field can be used by an application to decide, based on the HDD's size, whether a plugged-in HDD can be used either as a PVR or as a media disk.
A new asynchronous CCOM API,
getMocaDiagnostics(mocaId), is provided to get status parameters of the MoCA.
Nagra Connect DRM is now available for both non-TEE (single mode) and TEE (dual mode) configurations. This is configurable at build time. It relies on the TEE driver whose interface definition is part of PI 3.4. In this release, Netflix is the only use case that relies on the Connect DRM that has been fully validated. In this configuration it enables Netflix 4K and HDR playback support.
The introduction of OpenTV RTE 2.0 provides a major update to the OpenTV OS HTML5 Runtime Engine. A small change may be required for accessing the top-level CCOM object as described in the Change List section.
Added support for Parental control functionality in HLS and DASH OTT playback. This support is added for Live content only as Parental control functionality in VOD content is managed by the application. The feature is based on the rating information available in EPG DB because rating information is not available in the content itself. Note: Excludes Start-Over/Catch Up support.
OpenTV OS provides support to limit the bandwidth in HLS and DASH (not MSS). Networks and other users can use his functionality, based on standard video window surface size, to limit the bandwidth usage in HLS and DASH.
The new "Passive Table Caching" feature consists of caching PMT/PAT for the channels that are “traversed” while doing channel zapping. There is no proactive caching by tuning to other TS content in the background. With this feature channel zapping time is improved by reducing the PAT/PMT acquisition time.
The PI version that comes with this release is 3.4. Among the new interfaces defined in PI 3.4, only TEE is used in this release.
OpenTV OS provides support for playing back HDR10 content through OTT and broadcast
The PlayReady library is upgraded from version 2.5 to version 3.2 to provide the following:
- Faster channel zapping, as a single APP Context is used, thus avoiding the context initialization time for every zap.
- A single reading of the secure configuration manager is performed to get all the secured credentials for faster initialization.
- A single instance of PlayReady DRM in STB is used.
- A separate process hosts the PlayReady DRM.
- The Flowproxy Content Decryption Key (CDK) index is associated with decryption context, eliminating the need for configuration manager's DBUS signaling.
- PlayReady requires Microsoft Server SDK v 2.1 or higher.
- PR3.X allows only DLA (Direct License Acquisition), which implies the license must come directly from a PR license server and not through a proxy. Removal of this feature has no impact on the OpenTV OS client.
Added support for notifying apps of bit rate change for OTT playback (at CCOM Player level only). The event is called "onContentProfileChanged" and corresponds to the bitrate declared in the manifest (not necessarily the actual profile). Supported on all OTT adaptive content playback (HLS, DASH and MSS).
Consult the following application developer documentation:
- Support for IP trigger (using IPMessaging) for starting a System Software Upgrade (SSU) and/or System Application Upgrade (SAU).
- Support for encryption for the System Application package.
The OTT playback position is made query-able as part of the
<video> tag when the playback is stopped due to resource lost (i.e. stolen by another playback). The property is
currentTime can be queried by applications in the event of a network error and applications can use this time position to resume the playback.
currentTime is valid for OTT VOD content (where resume from a given position is supported). Exception to this MSS playback due to limitation in extending this functionality inside SSPK.
A new method
disconnectFromWirelessNetwork() is added to the IP Network object to allow disconnection from a WiFi session.