RDKDEV-1446 Add widevine-rdk Documentation#28
Open
gourivarma3 wants to merge 2 commits into
Open
Conversation
There was a problem hiding this comment.
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.mdwith 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.
|
|
||
| - **Error Handling Strategy**: CDM error codes are mapped to CDMi string tokens (`NeedsDeviceCertificate`, `SessionNotFound`, `DecryptError`, `TypeError`, `QuotaExceeded`, `NotSupported`, `UnExpectedError`) and forwarded via `IMediaKeySessionCallback::OnError()`. Decryption failures are logged to stdout with `[RDK_LOG]` prefix. Decryption error recovery is delegated to the calling layer. | ||
|
|
||
| - **Logging & Diagnostics**: All log output uses `std::cout` with `[RDK_LOG]` prefix and is gated on the `DEBUG` preprocessor macro (disabled by default). Entry and exit of functions are traced with `ENT_WV` / `EXT_WV` macros when `DEBUG` is defined. The module name for WPEFramework tracing is `OCDM_Widevine` (defined in `Module.h`). WPEFramework `TRACE_L1` is used in `HostImplementation.cpp` for storage operation traces. |
| | `company` | string | value of `OPERATOR_NAME` in device.properties | Company name reported to the CDM as `client_info.company_name`. | | ||
| | `model` | string | value of `MODEL_NUM` in device.properties | Model name reported to the CDM as `client_info.model_name`. | | ||
| | `device` | string | `"Linux"` | Device name reported to the CDM as `client_info.device_name`. | | ||
| | `WIDEVINE_VERSION` (build-time) | int | `16` | Selects the Widevine CDM API version (16, 17, or 18). Set via the CMake variable `CMAKE_WIDEVINE_VERSION` (which then defines `-DWIDEVINE_VERSION=<n>`). In Yocto builds, derived from distro features (`widevine_v18` → 18, `widevine_v17` → 17, default → 16). | |
|
|
||
| The CDM session's stream metadata can be updated at runtime through `MediaKeySession::SetParameter()`: | ||
|
|
||
| ```bash |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[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