RDKEMW-18059 : Player Failure observed with a "technical fault" OSM on performing HDMI unplug/replug#1410
Open
varatharajan568 wants to merge 23 commits into
Open
RDKEMW-18059 : Player Failure observed with a "technical fault" OSM on performing HDMI unplug/replug#1410varatharajan568 wants to merge 23 commits into
varatharajan568 wants to merge 23 commits into
Conversation
Signed-off-by: Varatharajan_Narayanan <Varatharajan_Narayanan@comcast.com>
Signed-off-by: Varatharajan_Narayanan <Varatharajan_Narayanan@comcast.com>
Signed-off-by: Varatharajan_Narayanan <Varatharajan_Narayanan@comcast.com>
43b4ea2 to
75ad1cb
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new DRM callback path to surface OCDM key-status changes (notably HDCP/output-restriction related statuses) up into the player layer so AAMP can react appropriately during HDMI unplug/replug scenarios.
Changes:
- Introduces
PlayerKeyStatusand a newDrmCallbacks::NotifyKeyStatus()callback. - Maps OCDM
KeyStatus→PlayerKeyStatusinOCDMSessionAdapterand invokes the callback for selected statuses. - Adds stub implementations in unit-test fakes/mocks and a (currently logging-only) implementation in
PrivateInstanceAAMP.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
middleware/drm/DrmSession.h |
Adds PlayerKeyStatus enum to represent key status independent of OCDM. |
middleware/drm/DrmCallbacks.h |
Extends DRM callback interface with NotifyKeyStatus(PlayerKeyStatus). |
middleware/drm/ocdm/opencdmsessionadapter.cpp |
Converts OCDM key status to player key status and notifies the callback on updates. |
priv_aamp.h |
Declares PrivateInstanceAAMP::NotifyKeyStatus() override. |
priv_aamp.cpp |
Implements NotifyKeyStatus() (currently just logs). |
test/utests/fakes/FakePrivateInstanceAAMP.cpp |
Adds fake stub for NotifyKeyStatus() (currently unused parameter). |
test/utests/drm/mocks/aampMocks.cpp |
Adds mock stub for NotifyKeyStatus() (marks parameter unused). |
Comment on lines
+11461
to
+11464
| void PrivateInstanceAAMP::NotifyKeyStatus(PlayerKeyStatus keyStatus) | ||
| { | ||
| AAMPLOG_WARN("NotifyKeyStatus: keyStatus=%d", static_cast<int>(keyStatus)); | ||
| } |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Varatharajan_Narayanan <Varatharajan_Narayanan@comcast.com>
Signed-off-by: Varatharajan_Narayanan <Varatharajan_Narayanan@comcast.com>
Signed-off-by: Varatharajan_Narayanan <Varatharajan_Narayanan@comcast.com>
Signed-off-by: Varatharajan_Narayanan <Varatharajan_Narayanan@comcast.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.
Comments suppressed due to low confidence (2)
middleware/drm/ocdm/opencdmsessionadapter.cpp:82
ShouldNotifyKeyStatus()currently triggers notifications only forOutputRestrictedandUsable, but the PR description says the notification is for HDCP-related status changes. In this codebaseOutputRestrictedHDCP22is also treated as an HDCP failure (seeprocessDRMKey()handling in this file), so it likely needs to be included in the notification set as well.
bool ShouldNotifyKeyStatus(KeyStatus status)
{
switch (status)
{
case OutputRestricted:
case Usable:
return true;
default:
return false;
}
}
middleware/drm/ocdm/opencdmsessionadapter.cpp:82
ShouldNotifyKeyStatus()has external linkage but is only used within this translation unit. Mark itstatic(or put it in an anonymous namespace) to avoid exporting a generic symbol name that could collide with other translation units.
bool ShouldNotifyKeyStatus(KeyStatus status)
{
switch (status)
{
case OutputRestricted:
case Usable:
return true;
default:
return false;
}
}
Comment on lines
+11465
to
+11471
| /** | ||
| * @brief DRM key status notification callback | ||
| */ | ||
| void PrivateInstanceAAMP::NotifyKeyStatus(PlayerKeyStatus keyStatus) | ||
| { | ||
| AAMPLOG_WARN("NotifyKeyStatus: keyStatus=%d", static_cast<int>(keyStatus)); | ||
| } |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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.
Reason for Change:
Changes:
Test Guidance: Refer ticket