Skip to content

VPAAMP-1489 [Direct Rialto] Black screen after returning from mid-roll Ads - #2142

Merged
pstroffolino merged 7 commits into
dev_sprint_25_2from
feature/VPAAMP-1489
Nov 1, 2026
Merged

pstroffolino merged 7 commits into
dev_sprint_25_2from
feature/VPAAMP-1489

Conversation

@anjali-syna

Copy link
Copy Markdown
Contributor

Reason for change:Ad players do not use the subtitle media header
saved from the main VOD content. As a result, the ad and the content
end up with different subtitle formats, so every ad-to-content
and content-to-ad transition recreates the pipeline and causing the problem.

Changes:

  • Revert part of the VPAAMP-1403 change, which prevented ad players
    from using the subtitle media header from the main VOD asset.

…l Ads

Reason for change:Ad players do not use the subtitle media header
  saved from the main VOD content. As a result, the ad and the content
  end up with different subtitle formats, so every ad-to-content
  and content-to-ad transition recreates the pipeline.

Changes:
* Revert part of the VPAAMP-1403 change, which prevented ad players
  from using the subtitle media header from the main VOD asset.

Test Procedure: Refer JIRA ticket

Risks: low

Signed-off-by: anjali-syna <206662904+anjali-syna@users.noreply.github.com>
Signed-off-by: anjali-syna <206662904+anjali-syna@users.noreply.github.com>
Signed-off-by: anjali-syna <206662904+anjali-syna@users.noreply.github.com>
Signed-off-by: anjali-syna <206662904+anjali-syna@users.noreply.github.com>
@anjali-syna
anjali-syna marked this pull request as ready for review October 30, 2026 06:00
@anjali-syna
anjali-syna requested a review from a team as a code owner October 30, 2026 06:00
Comment thread AampStreamSinkManager.cpp Resolved
Comment thread AampStreamSinkManager.cpp Resolved
Comment thread AampStreamSinkManager.cpp Resolved
Comment thread AampStreamSinkManager.cpp Resolved
Signed-off-by: anjali-syna <206662904+anjali-syna@users.noreply.github.com>
pstroffolino and others added 2 commits October 30, 2026 11:13
Use unsigned track parameters so the mock methods override the virtual
base methods instead of overloading them, and drop the redundant
class qualifier on MediaHeader.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

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.

🟡 Changes recommended

Subtitle-header caching breaks multi-pipeline isolation and can retain stale headers after detach and stop, causing players to reuse incorrect subtitle metadata.

2 open issues
What changed in this PR

This PR addresses Direct Rialto black screens after mid-roll ads by restoring subtitle-header sharing between content and ad players, avoiding pipeline recreation caused by mismatched subtitle formats.

Changes:

  • Replace per-player media-header storage with a shared track-indexed cache.
  • Update header cleanup during player stop and sink deletion.
  • Adapt MPD callers, mocks, and fakes, and add single-pipeline lifecycle tests.
File Description
test/​utests/​tests/​StreamAbstractionAAMP_MPD/​FunctionalTests.cpp Update expectations for the shared-header API.
test/​utests/​tests/​AampStreamSinkManagerTests/​FunctionalTests.cpp Update cache tests and add single-pipeline lifecycle cases.
test/​utests/​mocks/​MockAampStreamSinkManager.h Remove player arguments from header mocks.
test/​utests/​fakes/​FakeAampStreamSinkManager.cpp Adapt fake delegation to the revised API.
test/​utests/​drm/​mocks/​FakeAampStreamSinkManager.cpp Align DRM fake signatures with the revised API.
fragmentcollector_mpd.cpp Use shared headers for subtitle format selection and injection.
AampStreamSinkManager.h Declare shared storage and the cache-clearing helper.
AampStreamSinkManager.cpp Implement shared-header access and lifecycle cleanup.

Review effort: Balanced

Comment thread AampStreamSinkManager.h
std::map<int, std::string> mEncryptedHeaders;

std::map<PrivateInstanceAAMP*, std::vector<std::shared_ptr<MediaHeader>>> mMediaHeaders;
std::vector<std::shared_ptr<MediaHeader> > mMediaHeaders;
Comment thread AampStreamSinkManager.cpp Resolved
@pstroffolino
pstroffolino merged commit a76369a into dev_sprint_25_2 Nov 1, 2026
10 checks passed
@pstroffolino
pstroffolino deleted the feature/VPAAMP-1489 branch November 1, 2026 16:46
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