Skip to content

RDKEMW-19686 [Develop]Bringing RKDEMW-19683 , RDKEMW-19684, RDKEMW-19685 to middleware-player-interface#170

Merged
narenr94 merged 7 commits into
developfrom
feature/RDKEMW-19686
Jun 11, 2026
Merged

RDKEMW-19686 [Develop]Bringing RKDEMW-19683 , RDKEMW-19684, RDKEMW-19685 to middleware-player-interface#170
narenr94 merged 7 commits into
developfrom
feature/RDKEMW-19686

Conversation

@dp0000

@dp0000 dp0000 commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Need to bring parental pin/ vipa container crash update and LLAMA VOD content freeze update to middleware-player-interface component for develop branch

Deepikasri1234 and others added 2 commits June 8, 2026 18:36
…rash & LLAMA freeze issue

Reason for change : Addressing the above changes in middleware-player-interface
Test Steps : E2E testing to check regression .
Signed-off by: Deepikasri Natarajan
Copilot AI review requested due to automatic review settings June 11, 2026 10:14
@dp0000 dp0000 requested a review from a team as a code owner June 11, 2026 10:14

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 backports multiple middleware behavior fixes into middleware-player-interface (develop), focusing on preventing unintended PLAYING transitions during seek-with-keepPaused flows, improving video-mute handling for Rialto sinks, and making SoC capability initialization safer.

Changes:

  • Introduces seekPausedState in the player context to guard state transitions (e.g., buffering timeout, fragment caching completion, clock-lost recovery) from forcing PLAYING during keepPaused seeks.
  • Adds early show-video-window=FALSE application (and reinforcement) when videoMuted is set, to prevent a brief visible frame during pipeline startup/reconfigure.
  • Reworks SocUtils to support explicit/eager initialization (SocUtils::Init) and lazy creation of the SoC interface; adds/updates unit tests for the new behaviors.

Reviewed changes

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

Show a summary per file
File Description
InterfacePlayerRDK.cpp Adds keepPaused seek protection (seekPausedState) across buffering, fragment caching completion, clock-lost handling, and playback-rate resume; reinforces video-mute sink property; adds a retry path in Pause.
InterfacePlayerPriv.h Adds seekPausedState to GstPlayerPriv for guarding PLAYING transitions during keepPaused seeks.
SocUtils.cpp Changes SoC interface creation to lazy initialization via a helper and implements SocUtils::Init().
SocUtils.h Declares SocUtils::Init() with documentation.
test/utests/fakes/FakeSocUtils.cpp Adds a no-op SocUtils::Init() stub for unit tests.
test/utests/tests/InterfacePlayerTests/InterfacePlayerFunctionTests.cpp Updates Pause test mocking and adds new tests for NotifyFragmentCachingComplete deferral and SetPlayBackRate resume behavior under seekPausedState.

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

Comment thread InterfacePlayerRDK.cpp
Comment on lines +524 to +529
// buffering_timeout will handle the PLAYING transition, so seekPausedState must not block it.
if (interfacePlayerPriv->gstPrivateContext->seekPausedState)
{
MW_LOG_WARN("ConfigurePipeline: clearing seekPausedState — buffering will drive PLAYING transition");
interfacePlayerPriv->gstPrivateContext->seekPausedState = false;
}
Comment thread InterfacePlayerRDK.cpp
Comment on lines +4834 to +4846
/* Do not set PLAYING if a seek-with-keepPaused is in progress.
* The buffering_timeout timer may fire after ConfigurePipeline restarts buffering
* but BEFORE the Pause(1) from keepPaused logic arrives — causing a race. */
if (privatePlayer->gstPrivateContext->seekPausedState)
{
MW_LOG_WARN("buffering_timeout: skipping PLAYING — seekPausedState active (cnt %u, frames %d)", privatePlayer->gstPrivateContext->buffering_timeout_cnt, frames);
if (privatePlayer->gstPrivateContext->buffering_timeout_cnt == 0)
{
MW_LOG_ERR("buffering_timeout: seekPausedState still active after timeout exhausted — clearing to unblock");
privatePlayer->gstPrivateContext->seekPausedState = false;
}
return privatePlayer->gstPrivateContext->buffering_in_progress;
}
Comment thread InterfacePlayerRDK.cpp
Comment on lines +4702 to +4707
{
interfacePlayerPriv->gstPrivateContext->seekPausedState = false;
interfacePlayerPriv->gstPrivateContext->pendingPlayState = false;
/* After explicit resume we consider operation successful */
ret = true;
}
Comment thread InterfacePlayerPriv.h
gboolean buffering_in_progress; /**< buffering is in progress */
guint buffering_timeout_cnt; /**< make sure buffering_timeout doesn't get stuck */
GstState buffering_target_state; /**< the target state after buffering */
bool seekPausedState; /** < true when seek with keepPaused is active — guards buffering_timeout from setting PLAYING */
Copilot AI review requested due to automatic review settings June 11, 2026 14:24

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

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Comment thread InterfacePlayerRDK.cpp Outdated
Comment on lines 4709 to 4710
else if (frames == -1 || frames >= pInterfacePlayerRDK->m_gstConfigParam->framesToQueue || privatePlayer->gstPrivateContext->buffering_timeout_cnt-- == 0)
{
Comment thread InterfacePlayerRDK.cpp
Comment on lines +501 to +506
// buffering_timeout will handle the PLAYING transition, so seekPausedState must not block it.
if (interfacePlayerPriv->gstPrivateContext->seekPausedState)
{
MW_LOG_WARN("ConfigurePipeline: clearing seekPausedState — buffering will drive PLAYING transition");
interfacePlayerPriv->gstPrivateContext->seekPausedState = false;
}
Copilot AI review requested due to automatic review settings June 11, 2026 16:35
@narenr94 narenr94 merged commit 0921429 into develop Jun 11, 2026
5 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 11, 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.

RDKEMW-19686 [Develop]Bringing RKDEMW-19683 , RDKEMW-19684, RDKEMW-19685 to middleware-player-interface

6 participants