Source release 15.2.0

This commit is contained in:
John W. Bruce
2019-06-28 16:02:52 -07:00
parent 2b26dee09c
commit 2990f23065
1236 changed files with 166886 additions and 142315 deletions

View File

@@ -2,7 +2,79 @@
[TOC]
## 15.1.0 (2018-03-29)
## 15.2.0 (2019-06-28)
Features:
- Updated the included OEMCrypto headers and reference code to v15.2.
- This is the first version of the CE CDM that supports OEMCrypto v15.2. Due
to changes in the threading guarantees in OEMCrypto v15.2, earlier
Widevine CE CDM 15.x releases are not safe to use with OEMCrypto v15.2
implementations.
- The OEMCrypto build information is now reported in the license request. This
information can help with debugging integration issues. Content providers
can use this information to choose what licenses to return.
- The OEMCrypto tests have been expanded and cleaned up.
Documentation:
- Clarified what integrators should return from `IStorage::size()` when there
is an error. All integrators should verify that their `IStorage::size()`
implementations adhere to the new requirements.
- The headers and documentation have been updated to emphasize that
`Cdm::removeUsageTable()` is rarely the correct method to use. Apps will
generally want to use `Cdm::deleteUsageRecord()` or
`Cdm::deleteAllUsageRecords()`.
- Expanded the documentation of the `oemcrypto_lib` property in the GYP files.
- Updated some product names in the
[OEMCrypto Version Compatibility][oec-version-compat] document.
- Previous releases incorrectly labelled the Widevine CE CDM 15.x releases as
being released in 2018. The documentation has been updated to correctly
reflect that they have been released in *2019*.
Dependency Updates:
- Widevine CE CDM now requires jsmn [v1.0.0][jsmn-1.0.0]. Previous releases
did not specify a version requirement. However, recent updates to jsmn have
made versions after v1.0.0 incompatible with Widevine CE CDM.
- The included version of jsmn is v1.0.0.
- The bundled version of Protobuf has been updated to [v3.8.0][proto-3.8.0].
Note that, as before, Widevine CE CDM will work with any version of Protobuf
back to 2.6. However, we provide the version of Protobuf that we test with
internally as a default.
- The bundled version of BoringSSL has been updated to commit
[`c0b4c72b6d4c6f4828a373ec454bd646390017d4`][boringssl-c0b4c7].
[jsmn-1.0.0]: https://github.com/zserge/jsmn/releases/tag/v1.0.0
[proto-3.8.0]: https://github.com/protocolbuffers/protobuf/releases/tag/v3.8.0
[boringssl-c0b4c7]: https://boringssl.googlesource.com/boringssl/+/c0b4c72b6d4c6f4828a373ec454bd646390017d4
Bugfixes:
- Fixed a bug that would cause decrypt to fail when using entitled key
rotation and having multiple entitlement keys loaded at the same time.
- Replaced `std::stringstream` with `std::to_string()` where possible.
- Fixed the clock-change test so that it compiles on Windows.
- Fixed a bug where the CDM would treat empty file paths as always existing,
which could result in attempts to delete an empty filename.
- Relaxed the OEMCrypto `UsageTableTest.GenerateReportWrongPST` test.
Previously, it would flag valid results with unusual buffer sizes as
failures.
- Made `OEMCryptoSessionTests.SelectKeyNotThereAPI15` more tolerant of
platforms where the error code is delayed.
- Fixed a bug where key status might be reported incorrectly because the key
container security level was not being taken into account when calculating
the key status to notify to the app. Note that this does not affect the
actual usability of the keys; the error was only in the status reported to
the app.
- The parallel execution tests now time out after 30 seconds rather than 10,
in order to be more forgiving of lower-powered devices.
- Fixed a case where the OEMCrypto Reference Implementation was accessing
the IStorage implementation before it was set when running the tests. This
was benign but could cause problems with other OEMCrypto implementations.
- To help catch cases like this in the future, debug builds of the CE CDM
now assert anytime `FileSystem::_impl` is `NULL`, rather than only when
it is constructed from a passed-in pointer.
- The sample `x86-64` platform files now include a define needed to enable GDB
to debug libstdc++ objects.
## 15.1.0 (2019-03-29)
Features:
- It is now possible to use opaque handles even when the OEMCrypto integration
@@ -59,7 +131,7 @@ Bugfixes:
devices without SRM support.
- Reworded some code that was tripping up the MSVC compiler.
## 15.0.0 (2018-02-28)
## 15.0.0 (2019-02-28)
Features:
- Widevine CE CDM 15.0.0 supports and requires OEMCrypto v15.1. The OEMCrypto