Académique Documents
Professionnel Documents
Culture Documents
05 Android
Release Notes
Product version
Copyright
The contents of this documentation are strictly confidential and the receiver is obliged to use them
exclusively for his or her own purposes as defined in the contractual relationship. No part of Viaccess‐Orca
applications or this document may be reproduced or transmitted in any form or by any means, electronic or
mechanical, including photocopying, recording, or by any information storage and retrieval system, without
permission in writing from Viaccess S.A and/or Orca Interactive.
The information in this document is subject to change without notice. Viaccess S.A nor Orca Interactive
warrant that this document is error free. If you find any problems with this documentation or wish to make
comments, please report them to Viaccess‐Orca in writing at documentation@viaccess‐orca.com.
Trademarks
Viaccess‐Orca is a trademark of Viaccess S.A ® in France and/or other countries. All other product and
company names mentioned herein are the trademarks of their respective owners.
Viaccess S.A and or Orca Interactive may hold patents, patent applications, trademarks, copyrights or other
intellectual property rights over the product described in this document. Unless expressly specified
otherwise in a written license agreement, the delivery of this document does not imply the concession of
any license over these patents, trademarks, copyrights or other intellectual property.
© 2019 Viaccess‐Orca
VO Player 08.05 Android Release Notes
Table of Contents
VO Player 08.05
Table of Contents
rd
VO Player 08.05.07 - May 3 2019 ................................................................................................................ 2
th
VO Player 08.05.05 - April 5 2019................................................................................................................ 4
th
VO Player 08.05.03 - March 8 2019 ............................................................................................................ 6
nd
VO Player 08.05.02 - February 22 2019 ...................................................................................................... 7
th
VO Player 08.05.00 - January 30 2019 ...................................................................................................... 10
Features ...................................................................................................................................................... 12
Subtitles .................................................................................................................................................. 12
Scrubbing ................................................................................................................................................ 13
Widevine ................................................................................................................................................ 13
API updates.................................................................................................................................................. 13
Release overview
MEDIUM • N/A
LOW • Specific cases of under attack errors are now reported as rooted errors.
[SECURITY]
MEDIUM • Fix crash when the reset and prepare functions are called quickly.
[SCRUBBING]
LOW • N/A
LOW • N/A
BUGFIXES HIGH • Fix crash when using Audio platform decoder after multiple seeks on legacy
devices.
[AUDIO]
LOW • Fix for license expiration not detected properly on some old devices.
[WIDEVINE]
• Fix for infinite GetRightsInfo call when the license is expired on Android
5.x.
[WIDEVINE]
LOW • Extends error code returned regarding Widevine License Acquisition request
status. New error code handled are
MEDIA_ERROR_DRM_NETWORK_COMMUNICATION_FAILURE and
MEDIA_ERROR_DRM_SERVER_NOT_REACHABLE.
[WIDEVINE]
• Fix crash when parsing mpd files with specific playready encryption syntax.
[DASH] [PLAYREADY]
MEDIUM • N/A
• Fix javadoc issues about deprecated onInfoListener API and broken inner
links.
[DOC]
BUGFIXES HIGH • Fix green bar at the top of video surface on some high-end devices.
[CORE]
• Fix potential Audio/Video sync issue after audio track change with platform
audio decoder.
[AUDIO]
• Fix playback error that randomly happens when jumping to the end of mp4
file.
[MP4]
MEDIUM • Allowing SRB and SCB license flags work independently with PlayReady
streams.
[SECURITY]
LOW • Unifying error codes when trying to play streams with unsupported DRM
schemes. Expected error code in this case is 3101
(MEDIA_ERROR_DRM_NOT_SUPPORTED).
[CORE]
MEDIUM • Fix license acquisition renewal when persistent license has expired.
[WIDEVINE]
MEDIUM • Start-Over playlists are now supported with DASH streams. Mode shall
however be forced via setHttpStreamingEventPlaylistEnabled API.
[DASH]
LOW • Javadoc on onInfo related APIs was not properly stating those as
deprecated.
[DOC]
MEDIUM • Fixed DASH VOD TTML subtitles not displayed in case of using an offset on
the TTML track.
[SUBTITLE (TTML)] [DASH]
MEDIUM • N/A
LOW • N/A
BUGFIXES HIGH • Fix subtitles not displayed on latest Chrome WebView (version 72).
[SUBTITLE]
MEDIUM • Fix race condition error when using setAudioTrack() between calling
prepareAsync() and start().
[CORE]
• Fix bad codec mode retrieved from FAAS server after an update of the OS or
SDK.
[CORE]
• Fix error 3103 after reset when playing HLS discretix protected content.
[PLAYREADY]
• Frozen video display for a few seconds on playback start when setting non-
default audio track.
[MSS] [EXPERIENCE]
MEDIUM • Improved support for custom User-Agent usage (better coverage in SDK
requests + configurable through .vop file in sample app).
[CORE]
MEDIUM • Fix crash in HLS playlist parsing when there is no supported alternate track.
[HLS]
Release details
Features
We are delighted to announce VO Player 8.5 readiness with the following additions:
• Reduce significantly your CDN and storage cost by deploying one single HLS Widevine encrypted stream
across your devices
• Enjoy better seeking user experience via responsive scrubbing (HLS WebVTT) and I-frame accurate
seeking
• Enable new monetization business model through VAST compliant ad servers such as Google Ad Server
• Reinforce content security for subscription models with state of the art white box cryptographic security
tool and third party live watermarking solutions
• Deploy your branded stand-alone app on PC and Mac leveraging rich all-in-one Angular 2 framework
Important
Reinforced White box security on mobiles and tablets for Playready results into an increase of 5MB
code. It also implies the loss of acquired playready licenses while moving from VOPlayer 8.4.x to 8.5.x.
This new implementation also removes the playready customer SDK, the customer secrets are now
managed in quickplayer.lic file.
Subtitles
DVB subtitle track must be set prior to starting the playback to have subtitles displayed.
Chromecast
• Using alternate parameters for Chromecast can ditter audio and subtitles tracks management
• Known issues for support of DASH Live content on Chromecast (device issues)
Scrubbing
• Scrubbing module could produce playback buffering if devices bandwidth is low
Widevine
• PlaybackDurationRemaining value for Widevine persistent license starts decreasing after few seconds of
playback (may varying from 10s up to 1 min). It seems device and type of licence specific.
• LicenceDurationRemaining may not have effects on Android version below 5.0. Even if the the license is
detected has expired the CDM Widevine allows the playback.
• On Android version 4.x, 6.x, 7.x when only LicenceDurationRemaining is set, the license management
behaviour is playback duration instead of License duration management: the license rights starts
decreasing only after playback started.
• getKeyStatus information available only on device with API Android superior to 23
API updates
• Add getDRMAgentCapabilities API in order to retrieve SDK’s suported DRM and their security level.
• Add getCodecName API in order to retrieve audio and video codec name.
• Add seekTo(int msec, int accuracy) API for control accuracy in order to improve experience.
Accuracy could be chunk or I-Frame.
• Add startAt(double startTime, int accuracy) API for control accuracy in order to improve
experience. Accuracy could be chunk or I-Frame.
• Add setHttpStreamingOutputHttpHeaderFiltering(VOMediaInfoHeaderFileType
httpHeaderFileType, string httpHeaderKeyWord) Api for control the HTTP Header callback
with filters.
• Add setThumbnailUrl(String fileUrl, ScrubbingSpriteInfo spriteInfo) Api to handle
Scrubbing module.
• Deprecated oninfo replace by oninformation with a new parameter Object.
In order to bring better clarity on patch releases updates (changes & bug fixes), a new change log template
is used with a better impact description. It should help decision process to switch to a release or not.
• HIGH - crash or major error AND easy reproducible AND impacting more than one customer.
• MEDIUM - crash or error AND less reproducible OR related to one specific customer or its integration.
• LOW - error only (excluding crash) AND affecting limited set of streams OR related to any VO materials
(doc, sample code).
• AES / FAIRPLAY / PLAYREADY / VERIMATRIX / WIDEVINE - used if the change applies to a specific DRM
only.
• API - used if the change applies to the VOPlayer API only.
• DASH / HLS / MSS / MP4 - used if the change applies to a specific protocol only.
• DOWNLOAD / LIVE / START_OVER / TIMESHIFT / VOD - used if the change applies to a use case only.
• ADS - used for changes affecting advertising features only (may be followed by VAST, VMAP, IMA).
• AIRPLAY - used for airplay related features.
• ANALYTICS - used for changes affecting analytics plugins.
• AUDIO - used for changes affecting audio only.
• BUILD - used for changes done to resolve build problems.
• CORE - used if change is multi DRM, protocols.
• CHROMECAST - used for chromecast related features.
• DEBUG - used for changes impacting only debug SDK.
• DOC - used for documentation changes only.
• EXPERIENCE - used for changes affecting video playback experience only such as performances, start-up
time, latency.
• NATIVE_PLAYER - used for changes related to iOS native player feature.
• PERSONALIZATION - used for changes related to personalization.
• RELEASE_CONTENT - used for changes affecting Release package content.
• SAMPLE_APP - used for sample code changes only without impacting SDK.
• SCRUBBING - used for changes affecting scrubbing related features.
• SECURITY - used for security related changes (may be followed by DEVICE-ID, ROOTED).
• SUBTITLE - used for changes affecting subtitling features only (may be followed by WEBVTT, TTML,
SMPTE-TT, DVB-SUB).
• NWJS - used for changes relate to NWJS runtime used for the Desktop solution
Note
This list is not exhaustive and will be updated with other keywords whenever required.
Delivery Package
• The documentation
◦ The product description
◦ This release note
◦ The integration guide
◦ Appendices to the integration guide for DRM support (optional, depending on VO Player SDK DRM
flavor)
◦ The javadoc
◦ The VOPlayer demo application guide (folder VOPlayerDemo)
• The SDK
◦ A release version
◦ A debug version of the SDK that should be used for bug reporting
• The VOPlayer application sample code
• Optionally, a sample ChromeCast custom receiver (folder SampleChromeCastReceiver)
• On General SDK, a demo APK application of the VOPlayer application
• Some analytics plugins
Important
Viaccess-Orca must provide you a license (quickplayer.lic) in order to remove the logo and enable pro
features (see the Product Description).