Skip to content

RDKEMW-11921: middleware-player-interface federated release 2606#177

Closed
dp0000 wants to merge 11 commits into
mainfrom
release/0.2.0
Closed

RDKEMW-11921: middleware-player-interface federated release 2606#177
dp0000 wants to merge 11 commits into
mainfrom
release/0.2.0

Conversation

@dp0000

@dp0000 dp0000 commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Addressing Player Interface:Feature Additions, Metrics, Test Cases, and Quality Improvements

Deepikasri1234 and others added 11 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
RDKEMW-19686 [Develop]Bringing RKDEMW-19683 , RDKEMW-19684, RDKEMW-19685 to middleware-player-interface
Signed-off-by: deepikasri <deepikasri_n@comcast.com>
Copilot AI review requested due to automatic review settings June 12, 2026 06:08
@dp0000 dp0000 requested a review from a team as a code owner June 12, 2026 06:08

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 appears to roll up the “federated release 2606” updates by adjusting InterfacePlayerRDK buffering/seek state handling, introducing explicit SocUtils initialization, and updating subtitle/subtec and unit-test coverage around these behaviors.

Changes:

  • Add seekPausedState and additional guarding logic to avoid transitioning to PLAYING during seek-with-keepPaused / buffering races.
  • Introduce SocUtils::Init() and switch SocUtils accessors to lazy-init via an internal getter; call SocUtils::Init() during GStreamer plugin initialization.
  • Update WebVTT subtec path to stop applying per-fragment PTS offsets and adjust related interfaces/tests/changelog.

Reviewed changes

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

Show a summary per file
File Description
test/utests/tests/InterfacePlayerTests/InterfacePlayerFunctionTests.cpp Updates Pause unit test behavior and removes GetVideoPosition/GetVideoPTS test block.
test/utests/fakes/FakeSocUtils.cpp Adds a fake SocUtils::Init() for unit-test builds.
subtitle/subtitleParser.h Removes the setPtsOffset API from the base subtitle parser interface.
subtec/subtecparser/WebVttSubtecParser.hpp Removes the setPtsOffset override and adjusts internal offset member type.
subtec/subtecparser/WebVttSubtecParser.cpp Stops forwarding a PTS/time offset to Subtec (always passes 0).
SocUtils.h Adds SocUtils::Init() API for eager SOC capability initialization.
SocUtils.cpp Implements Init() and refactors SOC interface access through a lazy-initialized getter.
InterfacePlayerRDK.cpp Adds seek-paused buffering protections, retries in Pause(), video-window reinforcement when muted, and calls SocUtils::Init().
InterfacePlayerPriv.h Adds seekPausedState to private player state.
CHANGELOG.md Adds new release section and updates entries (with a couple typos).

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

Comment thread InterfacePlayerRDK.cpp
Comment on lines +4837 to +4846
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 +4696 to +4713
if (rate != 0.0 && interfacePlayerPriv->gstPrivateContext->seekPausedState && interfacePlayerPriv->gstPrivateContext->paused)
{
MW_LOG_WARN("InterfacePlayerRDK: SetPlayBackRate detected resume while seekPausedState active — forcing resume");
/* Pause(false) clears seekPausedState in Pause implementation. */
bool pauseResult = Pause(false, false);
if (pauseResult)
{
interfacePlayerPriv->gstPrivateContext->seekPausedState = false;
interfacePlayerPriv->gstPrivateContext->pendingPlayState = false;
/* After explicit resume we consider operation successful */
ret = true;
}
else
{
MW_LOG_ERR("SetPlayBackRate: Pause(false) failed — cannot resume");
ret = false;
}
}
Comment on lines 44 to 47
std::unique_ptr<SubtecChannel> m_channel;
private:
std::int64_t time_offset_ms_ = 0;
std::uint64_t time_offset_ms_ = 0;
std::uint64_t start_ms_ = 0;
Comment thread CHANGELOG.md

#### [0.2.0](https://github.com/rdkcentral/middleware-player-interface/compare/0.1.4...0.2.0)

- RDKEMW-19686 [Develop]Bringing RKDEMW-19683 , RDKEMW-19684, RDKEMW-19685 to middleware-player-interface [`#170`](https://github.com/rdkcentral/middleware-player-interface/pull/170)
Comment thread CHANGELOG.md
- Update GstHandlerControlTests.cpp [`2aa5167`](https://github.com/rdkcentral/middleware-player-interface/commit/2aa51679a712158a23e65e5d58d1cd5cd4fc1411)
- Update GstHandlerControlTests.cpp [`33a8050`](https://github.com/rdkcentral/middleware-player-interface/commit/33a80506fdbe144b75a084244fa2f7927bef8cc4)
- changelog update [`0e0120d`](https://github.com/rdkcentral/middleware-player-interface/commit/0e0120d2a7c68ec0b031ad34dc2536779ce67b83)
- Integerate LLM teamgiven test cases into dev_pli branch [`8695df1`](https://github.com/rdkcentral/middleware-player-interface/commit/8695df1648e8e7fb5d2f9be24be0fac5f77df6d8)
Comment on lines 3085 to 3090

mInterfaceGstPlayer->SetStreamCaps(eGST_MEDIATYPE_AUDIO, std::move(codecInfo));

delete g_mockGstUtils;
}

@dp0000 dp0000 closed this Jun 12, 2026
@dp0000 dp0000 deleted the release/0.2.0 branch June 12, 2026 06:19
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 12, 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.

5 participants