VPLAY-11152 crash during first playback after coming out of deepsleep#1150
VPLAY-11152 crash during first playback after coming out of deepsleep#1150sayanurag wants to merge 1 commit intosupport/2.6.1_8.2from
Conversation
c75eef8 to
3e63f96
Compare
There was a problem hiding this comment.
Pull request overview
Fixes crashes observed on first playback after exiting deep sleep and during DRM session creation by tightening power-transition handling and initializing DRM license manager state.
Changes:
- Adjust fake-tune trigger logic to run only on DEEPSLEEP → ON/STANDBY (including a DEEPSLEEP → LIGHT_SLEEP → ON/STANDBY path).
- Initialize additional
AampDRMLicenseManagermembers in the constructor initializer list (access token state).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| externals/rdk/PlayerIarmRdkInterface.cpp | Refines power-mode transition logic to gate when fake tune is triggered after deep sleep. |
| drm/AampDRMLicManager.cpp | Adds constructor member initialization intended to prevent crashes during DRM session/license flows. |
| */ | ||
| AampDRMLicenseManager::AampDRMLicenseManager(int maxDrmSessions, PrivateInstanceAAMP *aamp) : mMaxDRMSessions(maxDrmSessions), | ||
| aampInstance(aamp), mDRMSessionManager(NULL) | ||
| aampInstance(aamp), mDrmSessionManager(NULL), |
There was a problem hiding this comment.
The constructor initializer list uses mDrmSessionManager(NULL), but the class member is mDRMSessionManager (see header). This will not compile and also leaves mDRMSessionManager uninitialized until the body runs. Rename the initializer to mDRMSessionManager(NULL) to match the member name used throughout the file (e.g., the new DrmSessionManager(...) assignment below).
| aampInstance(aamp), mDrmSessionManager(NULL), | |
| aampInstance(aamp), mDRMSessionManager(NULL), |
| AampDRMLicenseManager::AampDRMLicenseManager(int maxDrmSessions, PrivateInstanceAAMP *aamp) : mMaxDRMSessions(maxDrmSessions), | ||
| aampInstance(aamp), mDRMSessionManager(NULL) | ||
| aampInstance(aamp), mDrmSessionManager(NULL), | ||
| accessToken(NULL), accessTokenLen(0) |
There was a problem hiding this comment.
licenseRequestAbort is a bool member (declared in the header) but is not initialized in the constructor, so its initial value is undefined and can cause license requests to be spuriously aborted. Initialize it in the constructor initializer list (e.g., to false) alongside the other member initializations.
| accessToken(NULL), accessTokenLen(0) | |
| accessToken(NULL), accessTokenLen(0), licenseRequestAbort(false) |
Reason for change: Initialise AampDRMLicenseManager class members Test Procedure: see ticket Risks: Low Signed-off-by: James Lofthouse <james_lofthouse@comcast.com> VPLAY-11854 Webprocess crash AampDRMLicenseManager::createDrmSession Reason for change: trigger the fake tune only when the device transitions from DEEPSLEEP to ON/STANDBY, we can make sure that HDMI is in the expected state and the playback should work as expected. Test Procedure: updated in ticket Risks: Low Signed-off-by: Anurag Krishnan <akrish513@cable.comcast.com>
3e63f96 to
54afe56
Compare
Reason for change: Initialise AampDRMLicenseManager class members
Test Procedure: see ticket
Risks: Low
VPLAY-11854 Webprocess crash AampDRMLicenseManager::createDrmSession
Reason for change: trigger the fake tune only when the device transitions from DEEPSLEEP to ON/STANDBY, we can make sure that HDMI is in the expected state and the playback should work as expected.
Test Procedure: updated in ticket
Risks: Low