VPLAY-11339: [DOC] eAAMPConfig_NativeCCRendering and setTextStyleOptions#1100
VPLAY-11339: [DOC] eAAMPConfig_NativeCCRendering and setTextStyleOptions#1100pstroffolino merged 4 commits intodev_sprint_25_2from
Conversation
There was a problem hiding this comment.
Pull request overview
Updates documentation around inband closed-caption (CEA-608/708) handling to clarify how nativeCCRendering / eAAMPConfig_NativeCCRendering relates to CC lifecycle ownership and setTextStyleOptions usage across platforms (X1 vs non-XREReceiver).
Changes:
- Expanded Doxygen/API documentation for
PlayerInstanceAAMP::SetNativeCCRendering. - Expanded
eAAMPConfig_NativeCCRenderingenum documentation to describe intended platform behavior and defaults. - Rewrote the UVE API guide section for modern CC management with a platform summary and clearer runtime control examples.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
main_aamp.cpp |
Clarifies intended semantics and usage timing for SetNativeCCRendering via updated Doxygen. |
AampConfig.h |
Adds detailed inline documentation for eAAMPConfig_NativeCCRendering behavior and default. |
AAMP-UVE-API.md |
Updates UVE documentation for CC platform ownership and setTextStyleOptions guidance. |
bdfb8a9 to
0471d71
Compare
Reason for change: Update documentation on CC related config and API Test Procedure: NA, documentation update Risks: None Signed-off-by: Vinish100 <vinish.balan@gmail.com>
0471d71 to
80bbaee
Compare
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| * via PlayerCCManager: initialization on first frame, trickplay muting, | ||
| * parental control gating (SERVICE_PIN_LOCKED events), CEA-608/708 track | ||
| * selection, and session teardown on stop. |
There was a problem hiding this comment.
The “enable is true” section lists “initialization on first frame” as part of the gated behavior, but CC initialization happens unconditionally (e.g., PrivateInstanceAAMP::InitializeCC always calls PlayerCCManager::Init). Consider adjusting the wording so it’s clear this flag gates AAMP’s additional lifecycle/policy integration (trickplay status, parental control, release/teardown, etc.), not whether initialization occurs at all.
| * via PlayerCCManager: initialization on first frame, trickplay muting, | |
| * parental control gating (SERVICE_PIN_LOCKED events), CEA-608/708 track | |
| * selection, and session teardown on stop. | |
| * via PlayerCCManager: integrating CC with playback on first-frame | |
| * presentation, applying trickplay muting, enforcing parental control | |
| * gating (SERVICE_PIN_LOCKED events), driving CEA-608/708 track | |
| * selection, and performing CC-specific session teardown on stop. | |
| * Note that underlying CC components (e.g. PlayerCCManager::Init) are | |
| * initialised unconditionally; this flag controls AAMP's additional | |
| * lifecycle and policy integration, not whether CC is initialised. |
| * behaviour or policy decisions (e.g. trickplay muting, parental-control | ||
| * integration, or CC-specific teardown). Internal components such as | ||
| * PlayerCCManager may still be initialised but internally it will be |
There was a problem hiding this comment.
Spelling is inconsistent with the rest of the codebase’s American English usage: “behaviour”/“initialised” should be “behavior”/“initialized”.
| * behaviour or policy decisions (e.g. trickplay muting, parental-control | |
| * integration, or CC-specific teardown). Internal components such as | |
| * PlayerCCManager may still be initialised but internally it will be | |
| * behavior or policy decisions (e.g. trickplay muting, parental-control | |
| * integration, or CC-specific teardown). Internal components such as | |
| * PlayerCCManager may still be initialized but internally it will be |
| eAAMPConfig_NativeCCRendering, /**< Controls whether AAMP manages CC visibility/styles | ||
| directly via PlayerCCManager (true), or defers to an | ||
| external CC controller such as XREReceiver (false). | ||
| Default: false. | ||
| On X1 platforms XREReceiver owns CC; set to false so | ||
| AAMP does not interfere with trickplay muting, parental | ||
| control gating, or CC track selection. | ||
| On platforms without XREReceiver, set to true so AAMP | ||
| takes over the full CC lifecycle. | ||
| Note: Regardless of this flag, AAMP's CC APIs still | ||
| route through PlayerCCManager and apps must refrain from | ||
| using them when the flag is set to false.*/ |
There was a problem hiding this comment.
This config’s doc says it controls whether AAMP “manages CC visibility/styles directly”, but the runtime gating for eAAMPConfig_NativeCCRendering is primarily around automatic lifecycle/policy integration (e.g., SetTrickplayStatus, SetParentalControlStatus, Release on stop, and a limited CEAPreferred override). Style/status/track APIs still call into PlayerCCManager regardless of this flag. Please update the comment to reflect the actual behaviors gated by the config so the header documentation matches runtime behavior.
| eAAMPConfig_NativeCCRendering, /**< Controls whether AAMP manages CC visibility/styles | |
| directly via PlayerCCManager (true), or defers to an | |
| external CC controller such as XREReceiver (false). | |
| Default: false. | |
| On X1 platforms XREReceiver owns CC; set to false so | |
| AAMP does not interfere with trickplay muting, parental | |
| control gating, or CC track selection. | |
| On platforms without XREReceiver, set to true so AAMP | |
| takes over the full CC lifecycle. | |
| Note: Regardless of this flag, AAMP's CC APIs still | |
| route through PlayerCCManager and apps must refrain from | |
| using them when the flag is set to false.*/ | |
| eAAMPConfig_NativeCCRendering, /**< Controls whether AAMP integrates PlayerCCManager with | |
| the core playback lifecycle and platform CC policy. | |
| When true, AAMP automatically propagates trickplay | |
| status (SetTrickplayStatus), parental control status | |
| (SetParentalControlStatus), and stop/release events | |
| to PlayerCCManager, and may apply a limited CEA | |
| preferred service override. | |
| When false, these automatic lifecycle/policy updates | |
| are suppressed so an external controller (for example, | |
| XREReceiver on X1) can own CC lifecycle and policy. | |
| Note: CC style/status/track APIs still route through | |
| PlayerCCManager regardless of this flag; it does not | |
| disable those APIs or directly control CC styling or | |
| visibility.*/ |
Reason for change: Update documentation on CC related config and API
Test Procedure: NA, documentation update
Risks: None