Repository navigation
VPAAMP-1489 [Direct Rialto] Black screen after returning from mid-roll Ads - #2142
Merged
Merged
Conversation
…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
marked this pull request as ready for review
October 30, 2026 06:00
jfagunde
reviewed
Oct 30, 2026
jfagunde
reviewed
Oct 30, 2026
Signed-off-by: anjali-syna <206662904+anjali-syna@users.noreply.github.com>
jfagunde
reviewed
Oct 30, 2026
jfagunde
reviewed
Oct 30, 2026
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>
Contributor
There was a problem hiding this comment.
🟡 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
| std::map<int, std::string> mEncryptedHeaders; | ||
|
|
||
| std::map<PrivateInstanceAAMP*, std::vector<std::shared_ptr<MediaHeader>>> mMediaHeaders; | ||
| std::vector<std::shared_ptr<MediaHeader> > mMediaHeaders; |
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: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:
from using the subtitle media header from the main VOD asset.