Multi-DRM Release Notes

Release notes for PallyCon Multi-DRM products

Server Products

DRM License Server

Date Version Descriptions
2021.10.26 4.12.0 - Improved the performance of the license server.
2021.10.19 4.11.0 - json type has been added as a response data type when requesting a token-based license.
2021.06.09 4.10.2 - We fixed a bug in Widevine persistent license issuance.
2021.05.25 4.10.1 - We fixed a bug in FairPlay multi-key license issuance.
2021.05.06 4.10.0 - The handling of DRM packaging history information has been improved.
- When requesting a DRM license using a token, the token expiration time check logic has been improved to reduce errors (7011 error) due to the time difference with the customer’s server.
2021.02.23 4.9.0 - Added 7115 error code about Widevine proxy (“This device has been revoked permanently.")
- Updated FairPlay offline license duration policy
– When requesting an offline unlimited license from a device that does not support offline, the license is issued with the maximum duration (about 136 years)
- Removed the default license callback page provided to trial accounts
– To avoid service stop when subscribing a commercial plan without proper license integration
- Fixed a bug in HLS Key rotation IV logic
2020.10.22 4.8.0 - Added policy for key rotation function control
- Applied FPS iOS 10 offline scenario
- Added Widevine override revocation control policy and Widevine proxy communication error code
2020.09.07 4.7.0 - Widevine License Issuance: Patch to enable license issuance to devices that do not meet Google security standards
- Changed callback gateway timeout from 5 seconds to 3 seconds
2020.08.12 4.6.0 - Added global license URL trial check function
- Support for issuing licenses for Shaka Player 3.0
2020.06.03 4.5.0 - Added support for offline rental scenario
2020.05.12 4.4.1 - Fixed missing Elastic Search log
2020.04.27 4.4.0 - Added multi-key license issuance function, response format, license policy V2 support
2020.03.17 4.3.1 - NcgCloud support removed, DB Connection method modified
2020.03.05 4.3.0 - Added Widevine allowed_track_type function
- Added ‘policy’ support for ‘token’ key in license token
- FairPlay error code added
- When checking token hash value, drm type case is irrelevant
- Correction of duplicate 7107, 7103 errors when issuing licenses and addition of missing error codes
- Correction of errors when issuing FairPlay licenses
2019.10.22 4.2.0 - When Widevine hardware DRM is set, audio track is applied as hdcp_none, security level 1
- Error correction when automatically handling packaging callback for trial account (if there is no file extension)
- Fixed client SDK authentication related error
2019.01.15 4.1.8 - Fixed NCG token related error
- Fixed Client SDK authentication query error
2018.09.19 4.1.3 - Modified to respond in hex format for IV values ​​for Shaka Packager integration
2018.08.09 4.1.1 - Added multi-key license issuance function (except PlayReady)
- In case of FairPlay, iv value is used per site when packaging
- If there is a CID in real-time HLS key issuance conditions, the CID is supported
- Added client SDK authentication function
2018.04.09 4.0.0 - Token-based license issuance is done without DB writing
- Added key rotation support. Enabled in case of content_type:live in pallycon-customdata-v2 specification (default: VOD)

KMS Server

Date Version Descriptions
2021.11.03 1.10.0 - Supports NCG, NCG-HLS packaging through CPIX-based KMS integration.
2021.08.24 1.9.0 - Added support for SPEKE v2, now multi-key packaging is possible for live streaming via AWS Elemental MediaPackage.
2021.07.21 1.8.1 - We fixed a bug that made the content playback error when both DASH and HLS were packaged in single AWS MediaConvert job.
2021.05.06 1.8.0 - A new error code (1919) is added to the response data of the KMS URL in case of any problem in the DRM server.
- DRM packaging history management has been improved.
- An issue related to saving multi-key packaging history has been fixed.
2021.03.25 1.7.0 - Added support for Harmonic KMS Simple Type integration (can be integrated with ATEME Titan File product)
2020.11.11 1.6.0 - Added single key support in PallyCon KMS API V2
- Added PSSH DATA Element in Widevine response
2020.04.29 1.5.0 - Added multi-key packaging feature (KMS V2), PallyCon CPIX API V2
Provides samples for Bitmovin Encoder SDK and PallyCon CPIX V2 integration
2019.01.29 1.4.0 - Added PallyCon CPIX specification

DRM CLI Packager

Date Version Descriptions
2021.09.16 3.7.0 - When packaging with subtitles, you can apply mp4 embedded subtitles through the newly added --mp4_subtitle parameter. If the parameter is not entered, the text VTT type subtitle is output by default.
- When there is no language information in the media header of the audio input file, the packaging result is created based on the packager’s input value (:lang parameter).
2021.04.16 3.6.5 - Now you can add audio and subtitle track labels for DASH packaging.
2021.01.04 3.6.4 - Added PallyCon Custom Info in manifest file(mpd, m3u8) for download feature in PallyCon Client SDK.
2020.09.17 3.6.3 - Added the feature that apply average bandwidth for each track in mpd
- Use PSSH generated by packager, not from server.
2020.07.10 3.6.2 - Added the PlayReady Header version to support CMAF(cbcs)
2020.05.27 3.6.1 - Support for HLS packaging with HEVC codec (fMP4 container)
- Improve input file path parameter encoding
- To use c++14, gcc version is changed(v4.8.5 -> v7.3.1) on Linux OS.
2020.04.27 3.6.0 - Added feature that generate multiple manifest for each track(resolution)
- Multi-key packaging feature for Multi-DRM
- Set the video bitrate(bandwidth)
2020.03.06 3.5.1 - Added feature that customizes the resolution(SD, HD, UHD1) height limit for packaging with multiple key.
2020.02.26 3.5.0 - Added WebM Packaging for DASH, and HLS track(audio, subtitles) naming feature
2019.09.10 3.4.1 - Added multi-key packaging feature for Widevine, and Audio track encryption omit feature
2019.08.30 3.4.0 - Added multi-bitrate live stream packaging feature
- Bug fixed about PlayReady packaging
2019.05.08 3.3.1 - Bug fixed for Widevine PSSH
2019.04.26 3.3.0 - Added CMAF packaging feature
2019.02.27 3.2.0 - Source code refactoring
- Bug fixed
2018.12.27 3.1.1 - Bug fixed
2018.11.30 3.1.0 - Added PSSH generation feature, packaging progress indicator, and support for multilingual subtitles
2018.10.19 3.0.0 - Changed packager core to Shaka Packager

Wowza DRM Plugin

Date Version Descriptions
2021.10.29 2.2.0 - Supports NCG-HLS packaging through CPIX-based KMS integration.
- Supports CID setting function using text file-based mapping table.
2020.12.02 2.0.1 - Fixed a bug related with kms URL property
2020.11.25 2.0.0 - Updated the SDK based on CPIX API integration instead of a callback URL
2018.12.06 1.2.2 - Fixed bug on HLS live stream with NCG DRM
2018.06.15 1.2.0 - Added support for HLS FairPlay Streaming
2018.04.24 1.1.0 - Security fix for key management error handling
2018.03.12 1.0.0 - Initial release version

Client Products

Widevine Android SDK

Date Version Descriptions
2021.11.17 2.3.0 - Supports ExoPlayer 2.14.2 version.
2021.10.21 2.2.0 - provideForceProvisionRequest() function has been added.
This function can be used when an error such as ‘Failed to restore keys: General DRM error (-2000)’ occurs on a specific device due to a Widevine DRM provisioning error.
For details, please refer to the documentation included in the SDK.
2021.10.07 2.1.3 - Removed the deprecated org.apache.http library.
2021.09.23 2.1.2 - Fixed an error when downloading MPD files with only video or audio.
2021.08.12 2.1.1 - The download progress returned by the PallyconDownloadEventListener.onProgressUpdate() function is processed as a percentage of the total size of the download, not each track.
2021.07.13 2.1.0 - Added PallyconKeyRequest interface to request content key.
For details, please refer to the documentation included in the SDK.
2021.06.29 2.0.3 - We updated the SDK so that when an error code is returned from the license server, a PallyConServerResponseException is returned instead of retrying the license request.
- PallyCon Widevine SDK library no longer requires the READ_PHONE_STATE permission.
2021.04.30 2.0.1 - Fixed a bug that caused an app crash when the device time was changed to the past on playing downloaded content offline.
- Customers using the previous version (v2.0.0) must update it.
2021.04.15 2.0.0 - Supports ExoPlayer 2.13.2 version.
- DrmSessionManager interface is updated.
2021.02.11 1.15.0 - Added API for device rooting detection. PallyConDetectRooting.detectRootingDevice()
2021.01.04 1.14.0 - Added PallyConMpegDashInfo class to get the size of DASH content.
2020.12.22 1.13.0 - Added API for token-based license acquisition.
- Updated sample for token-based license acquisition.
- Added User ID and Key Rotation info to PallyConTokenInfo class.
2020.09.25 1.12.0 - Supports ExoPlayer 2.11.8.
2020.08.12 1.11.0 - Supports multi-key content and offline rental scenarios.
- The existDownloadLicense function added in v1.10.1 has been removed, and a new getOfflineLicenseExpireDate function has been added.
2020.07.27 1.10.2 - Target OS version changed (28 -> 29) due to Google’s policy.
- PallyConDownloadTask API is added to specify the folder name where the content will be saved.
- Content URL analysis processing is fixed.
2020.05.12 1.10.1 - The Exoplayer version applied to the SDK is changed from 2.10.4 to 2.10.8.
2019.12.11 1.10.0 - existDownloadedLicense API is added to show whether a license exists in the Database.
2019.10.07 1.9.0 - Exoplayer 2.10.x version update AndroidX, Android API 28,Gradle 5.4.1, Gradle Plugin 3.5.0 have been applied.
- The setEnableLog method has been removed.
- The SDK update also updated Android/AndroidTV Sample. Please check each sample for changes.
2019.09.09 1.8.0 - Licenses can be removed from the removeLicense(), removeLicenseByCustomData() and removeLicenseByProxy() methods without a network connection.
2019.08.16 1.7.0 - Optimizing the PallyConWVSDK size has been done.
- Added setCookie () function to MpdTrackSelector class.
- PallyconLoggingListener has been added so you can check the internal logs.
- The PallyconWVMSDK.setEnableLog function is excluded in the next version.
2019.07.12 1.6.8 - Fixed an issue with SetCookie function.
2019.06.20 1.6.7 - Added downloadLicenseByToken() function to download license as Token.
2019.06.11 1.6.6 - MediaDrmCallback has been changed so that the cookie set in the SDK API works.
- Exception handling has been added to the setCookie function.
- The enableLog function name has been changed to setEnableLog, and exception handling has been added.
2019.06.05 1.6.5 - Added support for 64-bit
2019.04.24 1.6.4 - Fixed app installation issue with old version(4.4 ~ 5.0) Android devices
2019.02.13 1.6.3 - Added callback function that is called after download is completed
- Added support for ExoPlayer 2.9.3
- Added support for Gradle version 4.6, Android Plugin version 3.2.1, and compileSdkVersion 27
- Fixed internal errors when running on Android 9.0
2018.12.27 1.6.1 - Added function to choose resolution when downloading adaptive DASH content
2018.09.19 1.6.0 - Added simple version sample project for easier trial of the SDK.
- Added SDK certification to verify that the target site has permissions.


Date Version Descriptions
2021.01.04 1.12.0 - Added PallyConHLSInfo class to get the size of HLS content before download.
- Updated SDK sample for the above new API.
2020.12.23 1.11.0 - Added API for token-based license acquisition.
- Updated sample for token-based license acquisition.
- Added User ID and Key Rotation info to PallyConTokenInfo class. ‘token’ property is renamed as ‘policy’.
2020.09.25 1.9.0 - The existDownloadedLicense function added in 1.8.5 has been removed. The newly added getOfflineLicenseExpireDate function allows you to know the license status and expiration date.
- The getOfflineLicenseExpireDate function has been added.
- Supports license acquisition and playback of multi-key packaged content.
2020.07.06 1.8.8 - Xcode 11.5 and swift 5.2.4 are applied to SDK.
- Add XCframework SDK.
2020.02.24 1.8.7 - Content download(DownloadTask) and license download have been modified to work together.
2020.01.22 1.8.6 - You can restrict the use of Cellular when downloading content.
- The simulator library(x86_64, i386) is removed from the SDK and distributed.
2020.12.11 1.8.5 - The existDownloadedLicense API is added to know whether the license exists.
2019.11.07 1.8.4 - Deploy an iOS and tvOS SDKs built on Xcode 11.2 and Swift 5.2.
2019.10.18 1.8.3 - Deploy an iOS and tvOS SDKs built on Xcode 11 and Swift 5.1.
2019.07.29 1.8.2 - Fixed Symbol not found on iOS9 target.
2019.07.19 1.8.1 - Fixed bug where saved licenses are not deleted.
2019.06.01 1.8.0 - The SDK certification process has been removed.
2019.04.05 1.7.0 - Supports Swift 5.0 version.
- Fixed a bug in download function.
2019.01.28 1.6.5 - Changed access to KeyChain to ‘Always access’.
2019.01.05 1.6.4 - Updated SDK authentication.
2018.12.20 1.6.3 - Added a parameter to download only specific bandwidth files of adaptive stream contents.
2018.11.29 1.6.2 - Updated to initialize KeyChain information saved at initial SDK information acquisition.
- Updated to initialize information stored in KeyChain when authentication fails.
2018.11.21 1.6.1 - Fixed keychain issue of SDK certification
- Fixed a bug in Download API
2018.09.19 1.6.0 - Added simple version sample project for easier trial of the SDK.
- Supports Swift 4.2, iOS 12. Built with Xcode 10 and Swift 4.2.
- Added SDK certification to verify that the target site has permissions.

NCG Android SDK

Date Version Descriptions
2021.04.22 2.9.0 - We improved the local webserver security to prevent illicit access to NCG HLS streams played with the SDK.
2021.03.04 2.8.0 - The getTokenInformation() function has been added to check the information of the license token.
- Updated SDK sample based on token.
2021.01.07 2.7.0 - Added support for download scenario of NCG-HLS content.
2020.09.03 2.6.3 - ‘scoped storage’ permission is added to the SDK Sample project.
2020.08.12 2.6.2 - APIs that can be licensed with tokens are added.
2020.07.01 2.6.1 - Sample project errors are fixed.
2020.05.28 2.6.0 - Added setRootingCheckLevel() API, which allows you to specify the strength when checking Android routing.
2020.04.29 2.5.5 - Target version is changed to 29 according to Google policy.
- From Android Q(API 29), the’Widevine' UUID is used as the Device ID.
2020.04.02 2.5.4 - SURI extraction function in EXT-X-MAP from m3u8 file is added to NCG Core and applied to NCG SDK.
- The NCG Advanced Sample changes to call different players depending on whether they are HLS content.
2020.03.13 2.5.3 - Android Rooting check is changed.
2020.02.05 2.5.2 - Secure Time related logs are output to NcgExceptionalEventListener.
- NCG Core All logs are not output.
2019.11.11 2.5.1 - Android Target Sdk Version changed from 27 to 28.
- AndroidX is applied.
- Fixed an issue that prevented external output and routing checking on some devices.
2019.10.07 2.5.0 - The crash on the local web server has been removed.
2019.06.05 2.4.0 - Supports Android 64bit (arm64-v8a, x86_64)
As of August 2019, Android 64bit support was required and the NCG SDK included Android ABI arm64-v8a, x86_64. NCG SDK v2.4.0 or later must be applied to register an app in Google Play from August.
- Android API Level change (API 15 -> 16)
Minimal support in NDK has been changed to Android API Level 16 while supporting NCG SDK 64bit. The minimum support for 64bit Android is Android API Level 21.
2019.02.27 2.3.2 - Added support for Android verion 9.0.
2018.12.27 2.3.1 - Added security patch to prevent app running on Android emulator.
2018.09.19 2.3.0 - Added simple version sample project for easier trial of the SDK.
- Enhanced secure time logic for better security of offline playback.


Date Version Descriptions
2021.04.21 2.8.0 - We improved the local webserver security to prevent illicit access to NCG HLS streams played with the SDK.
2021.03.11 2.7.1 - It is now possible to check additional logs by setting Ncg2Agent.setExceptionalEventDelegate: and implementing NcgExceptionalEventDelegate.
2021.03.04 2.7.0 - To prevent compilation errors that occur when both NCG iOS SDK and PallyCon FPS SDK are applied to one app, the existing PallyConTokenInfo interface has been renamed to Ncg2TokenInfo.
- In order to solve the build error that occurs in the latest Xcode, we have removed the simulator library from iOSNcgSDK.framework.
2021.01.07 2.6.0 - Added getTokenInfo() to check detailed information of a token.
- Updated SDK sample based on token type license acquisition.
2020.10.18 2.5.2 - Added new API to set license acquisition URL for token.
2020.04.03 2.5.1 - Updated NCG core to extract EXT-X-MAP URI in m3u8 file.
2019.10.08 2.5.0 - The crash on the local web server has been removed.
2019.01.22 2.4.2 - Added new license token API. (acquireLicenseByToken)
2018.11.27 2.4.1 - Updated recovery process when RODB file is broken or modified.
2018.09.19 2.4.0 - Added simple version sample project for easier trial of the SDK.
- Enhanced secure time logic for better security of offline playback.
- Supports Swift 4.2, iOS 12. Built with Xcode 10 and Swift 4.2.
- Changed the name of C++ library from libstdc++ to libc++ for Xcode 10.

NCG Windows SDK

Date Version Descriptions
2021.01.07 1.6.1 - Updated the library not to delete the PCID data created by previous version in the registry
- Fixed an issue in getLicenseInfo() with existing license data
2020.10.14 1.6.0 - Updated the library to use the PCID data created by previous version in the registry
2020.03.27 1.5.0 - Added an API to migrate the RODB from previous version
- Changed the filename of .ncg_data.sys to .ncg_data_win.sys
2019.11.02 1.4.0 - Added HttpRequestCallback.getHttpHeader() interface
2019.03.07 1.3.0 - Updated the library to apply the information about Http callback