Files
ce_cdm/README.md
2025-04-02 10:27:18 -07:00

2.8 KiB

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 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 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, 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.