TVSDK 2.4.1 for Android Release Notes describe the new and supported features and the known issues and limitations in TVSDK Android 2.4.1.
Adobe is releasing TVSDK 2.4.1 for Android.
To use this version of TVSDK, ensure that your system meets the requirements described at System Requirements.
Here is where you can find documentation:
• Online help system TVSDK 2.4 for Android Help
• Javadocs TVSDK 2.4 for Android Java API
The Javadocs are the ultimate authority, because they are automatically generated directly from the TVSDK source code.
• C++ API documentation TVSDK 2.4 for Android C++ API
Each Java class has a corresponding C++ class, and the C++ documentation contains more explanatory material than the Javadocs, so consult the C++ documentation for a deeper understanding of the Java API.
• Migration guide (TVSDK 2.4 for Android Migration Guide)
This guide explains what you need to modify to migrate an application based on TVSDK 1.4 to one based on TVSDK 2.4.
TVSDK 2.4.1 for Android provides many performance improvements over earlier versions. It provides a high quality viewing experience.
This version includes all of the features of versions 2.4 and 2.4.1, and no features are deprecated.
Here are the key new features in version 2.4.1:
HLS version 4 features
Content protection features
DRM for HLS. All video playback APIs work with encrypted video content protected by Adobe Access. The following DRM features are supported:
AES 128 Playback. TVSDK can play advanced encryption standard (AES) HLS content with key size of 128 bits.
Protected HLS (PHLS) provides a limited set of pre-built DRM policies, a subset of what Adobe Access provides, to enable lightweight DRM over HLS for live and VOD streams.
Advertising/alternate content and monetization features
MediaPlayerConfig
class to enable notifying the player application when custom HLS tags appear in the stream.ContentResolver, OpportunityGenerator,
and MediaPlayerClientFactory
interfaces enable you to implement a custom ad/alternate content resolver and register a custom opportunity detector to work with TVSDK. The TestAdResolver
and AuditudeResolver
classes provide C++ examples of implementing a content resolver. You can find a Javascript example at samples/jspsdk/testapp/psdk.js
.AdPolicySelector
interface to enable consistent behavior across all players for operations like seek and trick play when ads are present in the content. If you don’t implement your own, TVSDK uses DefaultAdPolicySelector
.Here are the key new features version 2.4:
Instant on for VOD and live When you enable instant on, the TVSDK initializes and buffers media before playback starts. Because you can launch multiple MediaPlayerItemLoader
instances simultaneously in the background, you can buffer multiple streams. When a user changes the channel, and the stream has buffered properly, playback on the new channel starts immediately. TVSDK 2.4 also supports the Instant On for live streams also. The live streams are re-buffered when the live window moves.
**Performance Improvements **The new TVSDK 2.4 architecture brings various performance improvements:
MP4 content playback
This version of TVSDK supports playback of MP4 as main content.
TVSDK maintains a set of reusable network connections, so it does not incur the overhead of creating and destroying a network connection for each network request.
This feature ties playback restrictions to specific resolutions, providing finer grained DRM controls.
This feature allows TVSDK to switch between iFrame streams while in trick play mode. You can use non-iFrame profiles to do trick play at lower speeds.
These improvements enhance the user experience:
• Adaptive bit-rate and frame rate selection during trick play, based on bandwidth and buffer profile
• Use the main stream instead of the IDR stream to get up to 30 fps fast playback.
The new ABR logic is based on buffer length, rate of change of buffer length, and measured bandwidth. This ensures that the ABR chooses the right bit rate when the bandwidth fluctuates and also optimizes the number of times the bitrate switch actually happens by monitoring the rate at which the buffer length changes.
TVSDK automatically collects metrics, abiding by the customer sales contract to generate periodic usage reports required for billing purposes. On every stream start event, TVSDK uses the Adobe Analytics data insertion API to send billing metrics such as content type, ad insertion enabled flags, and drm enabled flags - based on the duration of the billable stream - to the Adobe Analytics Primetime owned report suite. This does not interfere with or get included in the customer’s own Adobe Analytics report suites or server calls. On request, this billing usage report is sent to customers periodically. This is the first phase of the billing feature supporting usage billing only. It can be configured based on the sales contract using the APIs described in the documentation.
TVSDK for Android 2.4 supports a number of features that you can implement to add functionality to your video applications.
In the feature matrix tables below, a √ means that the feature is supported in the current release.
Feature | Content Type | HLS | DASH |
---|---|---|---|
General playback (Play, Pause, Seek) | VOD + Live | √ | √ (VOD only) |
FER - General playback (Play, Pause, Seek) | FER VOD | √ | Not supported |
MP3 | VOD | Not supported | Not supported |
MP4 Content Playback | VOD | √ | √ |
Adaptive Bit Rate Switching Logic | VOD + Live | √ | Not supported |
Audio Only Playback | VOD + Live | √ | Not supported |
Closed Captions - 608/708 | VOD + Live | √ | √ (VOD only) |
Closed Captions - WebVTT | VOD + Live | √ | √ (VOD only) |
Manifest Failover | VOD + Live | √ | √ (VOD only) |
Advanced Failover | VOD + Live | √ | √ (VOD only) |
QoS and player notifications | VOD + Live | √ | √ (VOD only) |
Support for cookie headers | VOD + Live | √ | √ (VOD only) |
Support for custom headers | VOD + Live | Not supported | Not supported |
Set buffer control parameters | VOD + Live | √ | √ (VOD only) |
Set adaptive bit-rate controls | VOD + Live | √ | √ (VOD only) |
Custom Manifest Tags (HLS) / Event Streams (DASH) | VOD + Live | √ | √ (VOD only) |
Late Bound Audio | VOD + Live | √ | √ (VOD only) |
302 Redirect | VOD + Live | √ | √ (VOD only) |
Feature | Content Type | HLS | DASH |
Playback With Offset | Live | √ | Not supported |
Audio Only Playback | VOD + Live | √ | Not supported |
Trick Play | VOD + Live | √ | Not supported |
Smooth Trick Play (with ABR) | VOD + Live | √ | Not supported |
ID3 Parsing (HLS) / Timed Metadata (DASH) | VOD + Live | √ | Not supported |
Blackouts | VOD + Live | Not supported | Not supported |
Instant On | VOD + Live | √ | Not supported |
|
VOD + Live | √ | Not supported |
302 Redirect Stickyness | VOD + Live | √ | √ (VOD only) |
Thumbnail Scrubbing (Iframe and JPEG) | VOD + Live | Not supported | Not supported |
Stream Integrity | VOD + Live | √ | Not supported |
Feature | Content Type | HLS | DASH |
---|---|---|---|
General playback, ads enabled | VOD + Live | √ | √ (VOD Pre-rolls only) |
FER content with ads enabled | VOD | √ | Not supported |
Default Ad Behaviors | VOD + Live | √ | √ (VOD Pre-rolls only) |
VAST 2.0/3.0 | VOD + Live | √ | √ (VOD Pre-rolls only) |
VMAP 1.0 | VOD + Live | √ | √ (VOD Pre-rolls only) |
MP4 Ads | VOD + Live | √ (from CRS) | √ (from CRS, Pre-rolls only) |
Feature | Content Type | HLS | DASH |
Trick Play with Ads Enabled | VOD + Live | √ | Not supported |
Ad only | VOD | Not supported | Not supported |
Targeting Parameters | VOD + Live | √ | √ (VOD Pre-rolls only) |
Custom Parameters | VOD + Live | √ | √ (VOD Pre-rolls only) |
Custom Ad Behaviors | VOD + Live | √ | √ (VOD Pre-rolls only) |
Custom Ad Tags | Live | √ | Not supported |
Custom Ad Resolvers | VOD + Live | √ | Not supported |
Freewheel Custom Ad Resolver | VOD | Not supported | Not supported |
C3 Ad Replacement | VOD + Live | √ | Not supported |
Lazy Ad Loading | VOD | √ | Not supported |
|
VOD + Live | √ | |
Companion Ads, Banner Ads, and Clickable Ads | VOD + Live | √ | √ (VOD Pre-rolls only) |
VPAID 2.0 | VOD + Live | √ (JS) | √ (VOD Pre-rolls only) |
Early Ad Exit | Live | √ | Not supported |
Rules-based Creative VOD + Live Prioritization | VOD + Live | √ | Not supported |
CRS Rules | VOD + Live | √ | Not supported |
Feature | Content Type | HLS | DASH |
---|---|---|---|
AES Encryption | VOD + Live | √ | √ (VOD only) |
Sample AES Encryption | VOD + Live | √ | |
Tokenized Streams | VOD + Live | √ | |
DRM | VOD + Live | Primetime DRM only (Future: Widevine) | Widevine only |
External Playback (RBOP) | VOD + Live | Primetime DRM only | Not supported |
License Rotation | VOD + Live | Primetime DRM only | Not supported |
Key Rotation | VOD + Live | Primetime DRM only | Not supported |
Feature | Content Type | HLS | DASH |
---|---|---|---|
Adobe Analytics VHL integration | VOD + Live | √ | √ |
Billing | VOD + Live | √ | Not supported |
This version of TVSDK does not support:
This version of TVSDK has the following issues:
Without video, there is no viewport dimension, and without a viewport dimension, you cannot display any graphics for captions.