VPAAMP-795: [Timeshift DAI] Stream for HOT CDVR -> COLD CDVR transition - #1801
Closed
srikanthreddybijjam-comcast wants to merge 1 commit into
Closed
srikanthreddybijjam-comcast wants to merge 1 commit into
srikanthreddybijjam-comcast wants to merge 1 commit into
Conversation
srikanthreddybijjam-comcast
force-pushed
the
feature/VPAAMP-795
branch
2 times, most recently
from
July 30, 2026 06:00
da762a3 to
78bcb27
Compare
nu641001
reviewed
Jul 30, 2026
srikanthreddybijjam-comcast
force-pushed
the
feature/VPAAMP-795
branch
2 times, most recently
from
August 3, 2026 11:03
db41a7f to
bd720d9
Compare
nu641001
reviewed
Aug 3, 2026
nu641001
left a comment
Contributor
There was a problem hiding this comment.
Changes looks good to me @srikanthreddybijjam-comcast
Contributor
There was a problem hiding this comment.
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
mStartTimeOfFirstPTSwhen 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);
srikanthreddybijjam-comcast
force-pushed
the
feature/VPAAMP-795
branch
from
August 4, 2026 06:36
bd720d9 to
e364e8b
Compare
Vinish100
reviewed
Aug 4, 2026
srikanthreddybijjam-comcast
force-pushed
the
feature/VPAAMP-795
branch
from
August 4, 2026 09:25
e364e8b to
469a356
Compare
srikanthreddybijjam-comcast
force-pushed
the
feature/VPAAMP-795
branch
from
August 13, 2026 09:47
469a356 to
fba4d27
Compare
srikanthreddybijjam-comcast
force-pushed
the
feature/VPAAMP-795
branch
7 times, most recently
from
August 25, 2026 07:00
761f6e7 to
ae0c7d2
Compare
|
b'## Copyright scan failure |
srikanthreddybijjam-comcast
force-pushed
the
feature/VPAAMP-795
branch
4 times, most recently
from
August 28, 2026 06:18
17fbf00 to
0e88fc9
Compare
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>
srikanthreddybijjam-comcast
force-pushed
the
feature/VPAAMP-795
branch
from
August 31, 2026 08:49
0e88fc9 to
9a1bfe1
Compare
Copilot started reviewing on behalf of
srikanthreddybijjam-comcast
September 1, 2026 06:35
View session
Comment on lines
+10296
to
+10300
| // Hot→Cold CDVR: Cold manifest has no AST so segment times are relative; suppress false discontinuity. | ||
| if (!mIsLiveManifest && mIsLiveStream && mMPDParseHelper->GetAvailabilityStartTime() == 0 && nextSegmentTime != segmentStartTime) | ||
| { | ||
| AAMPLOG_WARN("StreamAbstractionAAMP_MPD: Suppressing spurious discontinuity on Hot→Cold CDVR " | ||
| "manifest transition (nextSegTime=%" PRIu64 " segStartTime=%" PRIu64 ")", |
Comment on lines
+8268
to
+8269
| AAMPLOG_WARN("previousPosition = %lld is already absolute, seek_pos_seconds = %f", previousPosition, seek_pos_seconds_copy); | ||
| return previousPosition; |
Comment on lines
+8278
to
8279
| AAMPLOG_WARN("GetPositionMilliseconds = %lld", GetPositionMilliseconds()); | ||
| return GetPositionMilliseconds(); |
Comment on lines
+10385
to
+10389
| AAMPLOG_INFO("ismCdaiObject= %s, mAdState= %d, mCurAdIdx= %d, mCurPlayingBreakId= %s", | ||
| mCdaiObject ? "true" : "false", | ||
| mCdaiObject ? static_cast<int>(mCdaiObject->mAdState) : -1, | ||
| mCdaiObject ? mCdaiObject->mCurAdIdx : -1, | ||
| mCdaiObject && !mCdaiObject->mCurPlayingBreakId.empty() ? mCdaiObject->mCurPlayingBreakId.c_str() : "empty"); |
Comment on lines
250
to
+252
| double GetAvailabilityStartTime() { return mAvailabilityStartTime;} | ||
| double GetTimelineAvailabilityStartTime() { return mTimelineAvailabilityStartTime;} | ||
| void SetTimelineAvailabilityStartTime(double availabilityStartTime) { mTimelineAvailabilityStartTime = availabilityStartTime; } |
Comment on lines
536
to
539
| /* storage for Availability Start Time */ | ||
| double mAvailabilityStartTime; | ||
| double mTimelineAvailabilityStartTime; | ||
| /* storage for Publish Time in seconds*/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reason for change: Added a pts adjustment from HOT CDVR -> COLD CDVR transition
Test Procedure: Refer jira ticket VPAAMP-795
Priority: P1