Multi-DRM Release Notes

Release notes for PallyCon Multi-DRM products

Server Products

DRM License Server

Date Version Descriptions
2022.02.09 4.13.1 - The license server has been updated not to issue Widevine licenses for the old Chrome Widevine CDM that was tampered by hacking. Widevine license request from that kind of clients will be responded as failure with error code 7116.
2022.01.12 4.13.0 - PlayReady Server SDK has been upgraded to version 4.4.
- Supports CBCS for SL2000 so that CBCS-encrypted CMAF single content can be played even in Windows Edge environment.
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
2022.03.23 1.12.0 - Added another SPEKE v1 URL for CMAF CBCS encryption support
- Fixed a bug in SPEKE v2 to separate the key IDs of multi-key video and audio tracks
2022.03.10 1.11.0 - Added CMAF CBCS encryption support. CMAF contents packaged with PallyCon KMS integration after the release can be played in the Windows Edge browser in addition to the previously supported client environments.
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
2022.04.07 3.8.3 - Provides separate executables for CentOS, Ubuntu, and Windows
- Fixed a bug in KMS communication for HLS packaging
- Fixed a bug about Korean and blank characters in the path input
2022.03.11 3.8.2 - Added CMAF packaging through PallyCon KMS CPIX API
- Updated packaging use case so that CMAF packaging can be separated from DASH or HLS
2022.01.25 3.8.1 - Supports DRM encryption key integration based on standard CPIX API. For backwards compatibility, we continue to support the existing proprietary key exchange function.
- Added an option to use the PSSH generated by the packager itself instead of the PSSH generated by the key server.
- Added an option to sort video tracks in Manifest file by bandwidth when packaging ABR content.
- Various bugs in the previous version have been fixed.
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 4.3.0.0 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
2022.03.31 2.4.0 - Supports ExoPlayer 2.16.1 version.
- Added a function to force Widevine Security Level to L3 to solve compatibility issues that occur on some Android devices.
- Fixed minor bugs in the SDK.
2021.12.14 2.3.1 - Removed unnecessary MANAGE_EXTERNAL_STORAGE permission that was added in the previous version.
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.

FPS iOS SDK

Date Version Descriptions
2021.12.17 1.15.0 - The FPS SDK, previously separated for iOS and tvOS, has been integrated into one.
- Supports bitcode build in xcframework library for App Store upload of tvOS app.
2021.08.27 1.14.0 - The resourceLoaderRequest() function has been added so that the client app can modify the contents of the m3u8 playlist, such as adding subtitles.
2021.07.16 1.13.0 - The contentKeyRequest() function is added so that the app can directly process the request and response for the content key.
- A parameter that can input a custom license URL such as a proxy server is added to the prepare() function.
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.12.23 2.11.0 - Various minor bugs in the NCG core have been fixed and stability has been improved.
2021.09.12 2.10.0 - To solve the license issuance failure under certain circumstances, the SDK initializes the Device ID and RODB if the license error code is 7003 and the Device ID is Widevine UUID. In this case, the license information stored in the device is deleted, and a new license must be requested after calling the Ncg2Agent.init() function.
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 - URI 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 version 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.

NCG iOS SDK

Date Version Descriptions
2022.02.18 2.10.1 - Fixed various bugs in the NCG core library.
2022.01.20 2.10.0 - The CURL library used in the SDK has been updated to the latest version (7.79.1).
2021.11.29 2.9.1 - The library header path has been integrated into one without distinction between Simulator and Device.
2021.11.04 2.9.0 - Added xcframework type NCG library.
2021.09.02 2.8.2 - Fixed an error where the delegate for the NcgHttpRequestDelegate protocol could not be set in the local web server in Advanced Sample.
2021.06.11 2.8.1 - Changed the CURL library used in the SDK for better compatibility.
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