Skip to content

RDKEMW-27811 : [PLI]- [ROGERS IUV2][VIPA]Black Screen and Technical Fault Message on linear channel After Standby Wake-Up due to PlayerRequestTimeOut error - #314

Open
rekhap2kandhavelan wants to merge 1 commit into
developfrom
feature/RDKEMW-27811
Open

rekhap2kandhavelan wants to merge 1 commit into
developfrom
feature/RDKEMW-27811

Conversation

@rekhap2kandhavelan

Copy link
Copy Markdown
Contributor

Reason for change: This fix addresses a CC sinkbin teardown issue where clearing a stale sinkbin reference could bypass the Rialto teardown sequence and leave its server-side session active.
The teardown paths now request GST_STATE_NULL, confirm the transition with bounded state polling, remove the sinkbin from the pipeline, and then clear retained references.
Test Procedure: updated in ticket
Risks: medium
Priority: P1
Signed-off-by: Rekha Kandhavelan rekha_kandhavelan@comcast.com

…re clearing a stale sinkbin reference could bypass the Rialto teardown sequence and leave its server-side session active.

The teardown paths now request GST_STATE_NULL, confirm the transition with bounded state polling, remove the sinkbin from the pipeline, and then clear retained references.
Test Procedure: updated in ticket
Risks: medium
Priority: P1
Signed-off-by: Rekha Kandhavelan rekha_kandhavelan@comcast.com
@rekhap2kandhavelan
rekhap2kandhavelan requested a review from a team as a code owner October 27, 2026 09:59
Copilot AI balanced review requested due to automatic review settings October 27, 2026 09:59

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.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Copilot review overview

7 open issues
What changed in this PR

Fixes sinkbin teardown ordering and synchronization to prevent stale Rialto sessions (and resulting black screen/technical fault) after standby wake-up by ensuring sinkbins reach GST_STATE_NULL before removal/cleanup, and by preventing pipeline reconfiguration while teardown is still releasing resources.

Changes:

  • Add teardown synchronization (mutex/CV + in-progress flag) to coordinate ConfigurePipeline() vs TearDownStream().
  • Add bounded state polling after gst_element_set_state(..., GST_STATE_NULL) and force reset if NULL isn’t reached.
  • Harden stale CC sinkbin cleanup paths and update the unit test to match the new teardown behavior.
File Description
InterfacePlayerRDK.cpp Adds teardown synchronization + bounded state polling and improves stale sinkbin teardown before clearing references.
InterfacePlayerPriv.h Introduces shared teardown mutex/CV/flag in GstPlayerPriv to gate pipeline reconfiguration.
test/​utests/​tests/​InterfacePlayerTests/​InterfacePlayerFunctionTests.cpp Updates expectations to reflect additional gst_element_get_state() polling during teardown.

Review effort: Lite

Comment thread InterfacePlayerRDK.cpp
Comment thread InterfacePlayerPriv.h
Comment on lines +258 to +260
std::mutex mTeardownMutex;
std::condition_variable mTeardownCV;
bool mTeardownInProgress = false;
Comment thread InterfacePlayerRDK.cpp
Comment thread InterfacePlayerRDK.cpp
Comment thread InterfacePlayerRDK.cpp
Comment thread InterfacePlayerRDK.cpp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants