Skip to content

RDKDEV-1446 Add widevine-rdk Documentation#28

Open
gourivarma3 wants to merge 1 commit into
rdkcentral:developfrom
gourivarma3:feature/RDKDEV-1446
Open

RDKDEV-1446 Add widevine-rdk Documentation#28
gourivarma3 wants to merge 1 commit into
rdkcentral:developfrom
gourivarma3:feature/RDKDEV-1446

Conversation

@gourivarma3

Copy link
Copy Markdown

[https://jira.rdkcentral.com/jira/browse/RDKDEV-1446]
Reason for Change:
To add Component Documentation for Widevine-rdk
Fix:
Added the documentation
Signed-off-by: gourivarma3

Copilot AI review requested due to automatic review settings June 22, 2026 10:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a comprehensive component-level documentation page for widevine-rdk, describing architecture, responsibilities, threading, call flows, integration points, and configuration for the Widevine OCDM backend used in the RDK/WPEFramework (Thunder) stack.

Changes:

  • Introduces a detailed docs/README.md with system overview, design/module breakdown, threading model, and integration diagrams (Mermaid).
  • Documents provisioning, license, decryption, SVP integration, and error/status reporting flows.
  • Adds configuration/build-time parameter documentation intended for integrators.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/README.md
- **Build Dependencies**: `wpeframework`, `wpeframework-clientlibraries`, `wpeframework-tools-native`, `entservices-apis`, `gst-svp-ext`, `gstreamer1.0`, OpenSSL (`libssl`, `libcrypto`), `libcurl`, vendor Widevine CDM library (`widevine_ce_cdm_shared`), platform-specific Widevine adapter libraries (determined at build time via CMake platform flags).
- **Plugin Dependencies**: The widevine-rdk `.drm` library is loaded dynamically by the WPEFramework OCDM plugin at runtime.
- **Device Services / HAL**: The `gst-svp-ext` library provides the SVP platform interface. `svpPlatformInitializeWidevine()` is called once during `WideVine::Initialize()`.
- **Configuration Files**: `/etc/device.properties` (operator name, model number, device name, YouTube cert scope). Keybox and certificate paths are supplied via the OCDM plugin's JSON configuration block.
Comment thread docs/README.md
| Configuration File | Purpose | Override Mechanism |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| OCDM plugin JSON config (Thunder config) | Supplies certificate path, keybox path, product/company/model/device identity strings to `WideVine::Initialize()` | Set via WPEFramework plugin configuration; parsed using `Core::JSON::Container` |
| `/etc/device.properties` | Fallback source for `OPERATOR_NAME`, `MODEL_NUM`, `DEVICE_NAME`, `COBALT_CERT_SCOPE` when not set in JSON config | Write to file; values are read on each `Initialize()` call |
Comment thread docs/README.md
Comment on lines +414 to +415
| `WIDEVINE_VERSION` (build-time) | int | `16` | Selects the Widevine CDM API version (16, 17, or 18). Derived from Yocto distro features (`widevine_v18` → 18, `widevine_v17` → 17, default → 16). Passed as `-DWIDEVINE_VERSION=<n>` at build time. |
| `WV_PROV_SERVER_URL_STRING` (build-time) | string | — | Mandatory provisioning server base URL (must include a query parameter). Injected at build time as `-DWV_PROV_SERVER_URL`. The string `&signedRequest=` and the request body are appended at runtime. |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants