Skip to content

RDKEMW-21922: [RDKEMW] [BCM Rogers Monarch IUI V2] Linear trick play (FF/RW/Seek) leads to blank screen, device hang, followed by automatic reboot. Multiple critical processes (gmem, WPENetworkProce, WorkerPoolType: etc.) crash were observed#207

Merged
dp0000 merged 2 commits into
developfrom
feature/RDKEMW-21922
Jul 20, 2026

Conversation

@ALSAMEEMA

Copy link
Copy Markdown

No description provided.

…(FF/RW/Seek) leads to blank screen, device hang, followed by automatic reboot. Multiple critical processes (gmem, WPENetworkProce, WorkerPoolType: etc.) crash were observed.
@ALSAMEEMA
ALSAMEEMA requested a review from a team as a code owner July 20, 2026 07:38
Copilot AI review requested due to automatic review settings July 20, 2026 07:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR addresses stability and playback issues observed during linear trick-play (FF/RW/Seek), with changes spanning DRM handling, caps negotiation, subtitle timestamp alignment, and build/link improvements (notably on Darwin).

Changes:

  • Add caps-negotiation synchronization in the CDMI decryptor to avoid decrypt paths running with missing sink caps.
  • Add subtitle PTS offset plumbing (no-op base API + WebVTT/Subtec implementation) to align subtitle timing with HLS PTS restamping.
  • Apply a broad set of correctness/safety and efficiency updates across DRM/session code paths, plus Darwin CMake linking adjustments.

Reviewed changes

Copilot reviewed 39 out of 42 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
vendor/realtek/RealtekSocInterface.cpp Remove redundant playback-flag assignment; keep soft-volume enabled.
vendor/amlogic/AmlogicSocInterface.cpp Remove redundant playback-flag assignment; keep soft-volume enabled.
test/utests/tests/DrmAes/DrmTestsAes.cpp Update AES wait tests; add thread-based key-acquired simulation and private-member access hack for testing.
subtitle/subtitleParser.h Add setPtsOffset(double) virtual hook for subtitle parsers (default no-op).
subtec/subtecparser/WebVttSubtecParser.hpp Add setPtsOffset override; allow negative time offset by switching to signed type.
subtec/subtecparser/WebVttSubtecParser.cpp Forward per-fragment time offset to Subtec; implement PTS offset conversion.
subtec/libsubtec/SubtecPacket.hpp Adjust packet accessor return types (and touched packet type accessor).
PlayerUtils.cpp Include <utility> and use std::move in trim() assignment.
InterfacePlayerRDK.cpp Harden videoRectangle parsing; move-assign player name.
InterfacePlayerPriv.h Move CallbackData name in ctor to reduce copies.
gst-plugins/gst_subtec/CMakeLists.txt Fix Darwin include paths; switch to _LINK_LIBRARIES to avoid Xcode link path warnings.
gst-plugins/drm/gst/gstcdmidecryptor.h Add sinkCapsCond condition variable for caps negotiation synchronization.
gst-plugins/drm/gst/gstcdmidecryptor.cpp Initialize/clear/signal sinkCapsCond; wait briefly for sink caps before decrypt to avoid NULL caps usage.
gst-plugins/CMakeLists.txt Darwin: avoid link_directories warnings; use UUID + _LINK_LIBRARIES where applicable.
externals/rdk/PlayerThunderAccess.cpp Apply std::move to reduce copies in JSON-RPC results, callbacks, and event registration.
externals/PlayerThunderAccessBase.h Include <utility>; move strings in PlayerAudioData / PlayerTextData constructors.
externals/contentsecuritymanager/ThunderAccessPlayer.cpp Move plugin callsign; move-assign JSON-RPC result.
externals/contentsecuritymanager/SecManagerThunder.cpp Fix hash inputs to use std::string buffers; move handlers into SubscribeEvent.
externals/contentsecuritymanager/IFirebolt/ContentProtectionFirebolt.cpp Use unique_lock and release mutex before retry sleeps to reduce lock contention.
externals/CMakeLists.txt Darwin: rely on pkg-config _LINK_LIBRARIES (Homebrew dylibs) instead of GStreamer.framework flags.
drm/PlayerHlsDrmSessionInterfaceBase.h Include <utility>; move-assign registered callback.
drm/PlayerHlsDrmSessionInterface.h Add destructor; adjust callback registration signature (pass by value).
drm/PlayerHlsDrmSessionInterface.cpp Delete session manager in destructor (non-OpenCDM-adapter builds); move callback into base.
drm/ocdm/opencdmsessionadapter.h Use predicate waits to handle spurious wakeups; simplify timeout handling.
drm/ocdm/opencdmsessionadapter.cpp Move DrmHelperPtr; avoid using moved-from parameter; move challenge/key vectors to reduce copies.
drm/ocdm/OcdmGstSessionAdapter.h Include <utility>; move DrmHelperPtr into base ctor.
drm/ocdm/OcdmGstSessionAdapter.cpp Guard caps usage with caps != nullptr before GST_IS_CAPS/gst_caps_is_empty.
drm/ocdm/OcdmBasicSessionAdapter.h Include <utility>; move DrmHelperPtr into base ctor.
drm/helper/WidevineDrmHelper.cpp Improve default KID selection; support UUID-string KID matching; map-safe slot lookup; better logs.
drm/helper/DrmHelper.h Avoid copying DrmInfo by passing it as const&.
drm/helper/ClearKeyHelper.cpp Move-assign generated license URL into request struct.
drm/DrmSessionManager.h Add move ctor/assignment to DrmSessionContext.
drm/DrmSessionManager.cpp Move watermark callback into member; move cached key-id vector into storage.
drm/DrmSessionFactory.cpp Move DrmHelperPtr into created session adapters.
drm/ClearKeyDrmSession.cpp Add cJSON item-add failure handling; improve cleanup paths when building key request JSON.
drm/aes/Aes.h Include <utility>; move-assign various registered callbacks.
drm/aes/Aes.cpp Switch AES key-wait to predicate wait; adjust err handling for timeout/other states.
CMakeLists.txt Darwin: keep OpenSSL include dir; adjust link strategy to prefer _LINK_LIBRARIES variables.
closedcaptions/subtec/SubtecConnector.cpp Ensure strncpy destination is null-terminated.
closedcaptions/subtec/CCDataController.h Widen attribute “type” parameter to uint32_t.
closedcaptions/subtec/CCDataController.cpp Propagate uint32_t type into packet send call without redundant casts.
.gitignore Ignore build_aamp/ directory.

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

Comment thread drm/aes/Aes.cpp
Comment thread test/utests/tests/DrmAes/DrmTestsAes.cpp
Comment thread InterfacePlayerPriv.h
Comment thread subtec/libsubtec/SubtecPacket.hpp
@ALSAMEEMA
ALSAMEEMA changed the base branch from main to develop July 20, 2026 07:45
@dp0000
dp0000 merged commit ba041c8 into develop Jul 20, 2026
17 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 20, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants