Source release 14.0.0
This commit is contained in:
95
CHANGELOG.md
95
CHANGELOG.md
@@ -1,3 +1,96 @@
|
||||
# Widevine CE CDM Changelog
|
||||
|
||||
## 14.0.0 (2018-05-16)
|
||||
|
||||
Features:
|
||||
- Support for OEMCrypto 14, including new unit tests that exercise its
|
||||
functionality. For a full list of new features in OEMCrypto 14, please see
|
||||
the Widevine Modular DRM Version 14 Delta document.
|
||||
- Widevine CE CDM 14.0.0 is not compatible with any previous version of
|
||||
OEMCrypto. It is only compatible with OEMCrypto v14.
|
||||
- Added a new overload of the `load()` function for loading keys embedded
|
||||
inside a PSSH header. This allows for key rotation without multiple server
|
||||
roundtrips, using entitlement licenses. See the Integration Guide for more
|
||||
information.
|
||||
- The version number of the Widevine CE CDM has been bumped to bring the
|
||||
version numbers of OEMCrypto, the Widevine CE CDM, and the Widevine Android
|
||||
CDM closer to each other. The major version number of the CE CDM will now
|
||||
always be the highest version of OEMCrypto supported by that version of the
|
||||
CE CDM. This is always the version of OEMCrypto that we recommend using with
|
||||
the CE CDM.
|
||||
- For this release, the version number is 14.0.0 to reflect that this is the
|
||||
first release to support OEMCrypto 14.
|
||||
- Vendors no longer need to supply a copy of either OpenSSL or BoringSSL in
|
||||
order to compile the CDM. The Widevine CE CDM will now always use the copy
|
||||
of BoringSSL in the `third_party/` directory, which is provided with the
|
||||
CDM source code.
|
||||
- When compiled as a dynamic library, the Widevine CE CDM links statically
|
||||
with this copy of BoringSSL using hidden visibility. This requires no
|
||||
changes on the part of partners, so long as they are using the Widevine
|
||||
CE CDM as a dynamic library. The Widevine CE CDM does not export any
|
||||
BoringSSL functions and no longer interacts with the platform's copy of
|
||||
OpenSSL or BoringSSL.
|
||||
- When using the Widevine CE CDM as a static library, partners are
|
||||
responsible for providing a compatible copy of BoringSSL. The file
|
||||
`third_party/boringssl/kit/BORINGSSL_REVISION` contains the hash of the
|
||||
version of BoringSSL included with the CE CDM, which can be used to guide
|
||||
decisions about compatible versions of BoringSSL.
|
||||
- The Widevine CE CDM no longer supports OpenSSL. Those wishing to use the
|
||||
CE CDM as a static libary with OpenSSL will have to make small
|
||||
modifications to the code where it uses BoringSSL-only APIs in order to
|
||||
compile with OpenSSL.
|
||||
- New build configuration setting: `asm_target_arch`
|
||||
- When building assembly language files, this setting is used to determine
|
||||
which CPU architecture's instructions to include.
|
||||
- If this flag is not set by the configuration, it defaults to `none`, which
|
||||
turns off use of assembly language completely. We strongly recommend
|
||||
overriding this default so that you receive the speed benefits of
|
||||
assembly language.
|
||||
- Valid values are:
|
||||
- `x86`
|
||||
- `x86-64`
|
||||
- `arm`
|
||||
- `arm64`
|
||||
- `ppc64`
|
||||
- `none`
|
||||
- Protobuf is now compiled by default to not use RTTI support. This reduces
|
||||
the size of the final binary and allows for easier support of platforms
|
||||
without RTTI.
|
||||
- Several additional flags have been added to the example settings.gypi in
|
||||
the `x86-64` build to reduce the size of the final binary. Partners may want
|
||||
to consider setting similar flags on their own builds.
|
||||
- `no-rtti` (Widevine CE CDM does not and has never used RTTI.)
|
||||
- `no-exceptions` (Widevine CE CDM does not and has never used exceptions.)
|
||||
- `lto`
|
||||
- It is no longer permissible to pass a null `IStorage` pointer to
|
||||
`Cdm::create()`. Previously, passing `NULL` would select the global/default
|
||||
`IStorage` as the storage for the new CDM instance. However, starting in CE
|
||||
CDM 3.5.0, the default `IStorage` began to be the storage for global data
|
||||
such as the usage table header. To clarify its purpose, we are removing its
|
||||
ability to do double duty as global storage and as a default for new CDM
|
||||
instances.
|
||||
- It is still permitted to use the same `IStorage` instance for the global
|
||||
storage and as the storage for a specific CDM instance. If this is what
|
||||
you intend, just pass the same pointer to both `Cdm::initialize()` and
|
||||
`Cdm::create()`.
|
||||
- Due to nonce flood protections in OEMCrypto, provisioning and licensing
|
||||
request generation can fail due to too many requests being generated
|
||||
quickly. Such failures can be retried successfully after a delay. This has
|
||||
always been the case. To help in discerning when a failure is due to a nonce
|
||||
flood and can be retried, these failures will now be reported as
|
||||
`kQuotaExceeded` errors.
|
||||
- There is a new parameter on `onKeyStatusesChange()`, `has_new_usable_key`.
|
||||
This will be set to true when the status change has resulted in any new keys
|
||||
becoming available. This can be used to more efficiently implement certain
|
||||
EME behavior.
|
||||
- A new function, `getStatusForHdcpVersion()` has been added to the CDM
|
||||
interface. This function can be used to implement `getStatusForPolicy()`
|
||||
from the [EME Extension: HDCP Policy Check][eme-hdcp] proposal.
|
||||
- The default service certificate used for Provisioning 3.0 has been updated
|
||||
to reflect changes to the Widevine Provisioning Server.
|
||||
|
||||
[eme-hdcp]: https://github.com/WICG/media-capabilities/blob/master/eme-extension-policy-check.md
|
||||
|
||||
## 3.5.0 (2017-11-22)
|
||||
|
||||
Features:
|
||||
@@ -15,7 +108,7 @@ Features:
|
||||
- Support for SRM enforcement and update (OEMCrypto v13 feature).
|
||||
- Support for embedded licenses.
|
||||
- Added support for OpenSSL 1.1 (OpenSSL API changes). Earlier versions of
|
||||
OpenSSL 1.0 are still supported. The actual OpenSSL version being used is
|
||||
OpenSSL are still supported. The actual OpenSSL version being used is
|
||||
checked at compile time.
|
||||
- Begin migration to exclusively supporting BoringSSL.
|
||||
- Add adapter and stubs for running CDM against OEMCrypto v12. Remove
|
||||
|
||||
Reference in New Issue
Block a user