Skip to content

VPAAMP-795: [Timeshift DAI] Stream for HOT CDVR -> COLD CDVR transition - #1801

Open
srikanthreddybijjam-comcast wants to merge 1 commit into
dev_sprint_25_2from
feature/VPAAMP-795
Open

VPAAMP-795: [Timeshift DAI] Stream for HOT CDVR -> COLD CDVR transition#1801
srikanthreddybijjam-comcast wants to merge 1 commit into
dev_sprint_25_2from
feature/VPAAMP-795

Conversation

@srikanthreddybijjam-comcast

Copy link
Copy Markdown
Contributor

Reason for change: Added a pts adjustment from HOT CDVR -> COLD CDVR transition
Test Procedure: Refer jira ticket VPAAMP-795
Priority: P1

@srikanthreddybijjam-comcast
srikanthreddybijjam-comcast requested a review from a team as a code owner July 29, 2026 19:52
@srikanthreddybijjam-comcast
srikanthreddybijjam-comcast force-pushed the feature/VPAAMP-795 branch 2 times, most recently from da762a3 to 78bcb27 Compare July 30, 2026 06:00
Comment thread fragmentcollector_mpd.cpp
@srikanthreddybijjam-comcast
srikanthreddybijjam-comcast force-pushed the feature/VPAAMP-795 branch 2 times, most recently from db41a7f to bd720d9 Compare August 3, 2026 11:03

@nu641001 nu641001 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.

Changes looks good to me @srikanthreddybijjam-comcast

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 updates DASH/MPD timeshift handling in StreamAbstractionAAMP_MPD to better support HOT CDVR → COLD CDVR (dynamic → static) transitions, where the “cold” MPD may omit availabilityStartTime and use relative segment/period timing.

Changes:

  • Suppress a spurious multi-period discontinuity during HOT→COLD CDVR transitions when the MPD has no AST.
  • Re-anchor mStartTimeOfFirstPTS when transitioning to a no-AST (relative-time) cold MPD so the first-PTS timeline remains aligned.
Suppressed comments (1)

fragmentcollector_mpd.cpp:10191

  • The new Hot→Cold CDVR suppression runs before the discontinuity check and will bypass all discontinuity handling in this block, including codec/ES-change discontinuities (GetESChangeStatus()) and forced multi-period discontinuity. That can prevent required pipeline reconfiguration if an ES change coincides with the manifest transition.
				if (!mIsLiveManifest && mIsLiveStream && mMPDParseHelper->GetAvailabilityStartTime() == 0)
				{
					AAMPLOG_WARN("StreamAbstractionAAMP_MPD: Suppressing spurious discontinuity on Hot→Cold CDVR "
					             "manifest transition (nextSegTime=%" PRIu64 " segStartTime=%" PRIu64 ")",
					             nextSegmentTime, segmentStartTime);

Comment thread fragmentcollector_mpd.cpp
Comment thread fragmentcollector_mpd.cpp
Comment thread fragmentcollector_mpd.cpp
if (startTime != 0)
{
mStartTimeOfFirstPTS = mMPDParseHelper->GetPeriodStartTime(mCurrentPeriodIdx, mLastPlaylistDownloadTimeMs) * 1000.0;
if (!mIsLiveManifest && mIsLiveStream && mMPDParseHelper->GetAvailabilityStartTime() == 0)

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.

Add L1s for these newly added cases..
Lets big picture this.
Do we suspect it will cause issue in other places? What happens if we do a seek back/REW/FF after a stream has gone cold. Will it work as expected. My point being, should this be fixed generally in how we calculate period start time

Reason for change: Added a fix for UpdateStartTimeOfFirstPTS from HOT CDVR -> COLD CDVR transition
Test Procedure: Refer jira ticket VPAAMP-795
Priority: P1

Signed-off-by: srikanthreddybijjam-comcast <srikanthreddybijjam.2000@gmail.com>
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.

4 participants