# Widevine CE CDM 19.5.0 Released 2025-04-02 ## Getting Started This project contains the sources for building a Widevine CDM module. Read the following to learn more about the contents of this project and how to use them: The [Widevine Developer Site][wv-devsite] documents the CDM API and describes how to integrate the CDM into a system. ## New in v19.5.0 This is a minor release with bug fixes, test improvements, and dependency updates. ### Features - Updated `HasRootOfTrustBeenRenewed()` to detect Drm Reprovisioning - Updated CE BCC extraction tool: - Added a Makefile to `wv_factory_extractor` tool - Added an option to run BCC validator with the tool - Refactored `ProvisioningHolder` to separate generate, fetch, and load operations ### Bug Fixes - Ignored certain errors during `RemoveOfflineLicense()` for apps which have been unprovisioned - Allowed `key_session` to be equal to `oec_session` when removing entitled key sessions ### Tests - Added test `PrintClientAndServerVersionNumber` that prints the core message info for both provisioning and license request/response - Updated provisioning server version test to accommodate v16 responses - Relaxed BCC validation test requirements, downgrading non-critical errors to warnings and improving output clarity - Added integration test to verify that renewal is not needed before renewal delay seconds - Added check to verify that renewals include client ID when "always includes client ID" is true - Updated `CdmUseCase_LicenseWithRenewal` test to verify that request has correct info for persistent license - Added a test to verify PST with length 127 succeeds - Added new duration tests: - A test for loading licenses unrelated to the content being played back - Tests for the `30sSoftRental_UnlimitedPlayback` scenario - Tests with past and future license start time policies - Tests for short playback timers with unlimited rental duration ### Dependency Updates - Updated BoringSSL to latest (e4b6d4f7) - Updated googletest to latest (4902ea2) [CHANGELOG.md](./CHANGELOG.md) lists the major changes for each past release. ## Contains No OEMCrypto The CE CDM requires an implementation of OEMCrypto, our hardware abstraction layer, in order to compile and run successfully. If you are an OEMCrypto implementer, you should have access to the [OEMCrypto partner repository][oec-repo], which contains additional source code and information about implementing OEMCrypto, including the Widevine-written OEMCrypto implementation, the OEMCrypto Porting Kit. (OPK) If you are not an OEMCrypto implementer, then you will need to get an OEMCrypto implementation from your SoC manufacturer before you can use the CE CDM. [wv-devsite]: https://developers.google.com/widevine/drm/client/ce-cdm [oec-repo]: https://widevine-partner.googlesource.com/oemcrypto/