VPAAMP-31: VOD CDAI with mp4demux#1425
Merged
Merged
Conversation
f9b55c4 to
d24451a
Compare
55d879a to
e9ecd70
Compare
8a39f9a to
08ed0a8
Compare
fdbb24b to
9370197
Compare
95c781a to
5798d0b
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR (VPAAMP-31) updates the DASH/MPD path to better support VOD CDAI pre-roll playback through an encrypted pipeline when UseMp4Demux is enabled, and adjusts/extends unit tests to match the new init-fragment and failure-handling behavior.
Changes:
- Update MPD init-fragment fetching to force
profileChangedon non-discontinuity calls so init fragments are re-fetched on first tune / manifest refresh paths. - Update
CacheEncryptedHeader()to useMediaStreamContext::DownloadFragment()(andOnFragmentDownloadComplete) whenUseMp4Demuxis enabled, rather than directly callingCacheFragment(). - Update/add unit tests to reflect retries/parallel download behavior and validate the new
CacheEncryptedHeader()mp4demux path.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
fragmentcollector_mpd.cpp |
Alters init-fragment triggering and routes encrypted init header caching through DownloadFragment() when mp4demux is enabled. |
test/utests/tests/StreamAbstractionAAMP_MPD/FetcherLoopTests.cpp |
Relaxes several init-fragment expectations and adds explicit discontinuity-flag validation for next-period init fetch. |
test/utests/tests/MediaStreamContextTests/FragmentDownloadTests.cpp |
Updates expectations around mCheckForRampdown behavior in OnFragmentDownloadFailed() scenarios. |
test/utests/tests/FragmentCollectorMpdTests/FragmentCollectorMpdTestCases.cpp |
Adds new L1 tests covering CacheEncryptedHeader() behavior for mp4demux enabled/disabled. |
test/utests/tests/AdFallbackTests/FunctionalTests.cpp |
Makes download enablement counting non-static and loosens init-fragment call counts to allow retries during fallback. |
1e85741 to
79718c6
Compare
Vinish100
reviewed
Jun 11, 2026
79718c6 to
ac1ce98
Compare
Reason for change: Make pre roll ad to play via encrypted pipeline Test Procedure: Updated in ticket Risks: Medium Signed-off-by: Reshma-JO07 <sreshmaraphaelk@gmail.com>
ac1ce98 to
64870ea
Compare
- fragmentcollector_mpd.cpp: add block comment above mediaType/curlInstance assignment explaining the UseMp4Demux DownloadFragment vs CacheFragment path and the per-track curl slot selection logic; remove leftover debug AAMPLOG_WARN lines - FragmentCollectorMpdTestCases.cpp: merge three Mp4DemuxEnabled test cases (initSegment flag, URL propagation, ActiveDownloadInfo cleared) into single CacheEncryptedHeader_Mp4DemuxEnabled test; merge three Mp4DemuxDisabled test cases into single CacheEncryptedHeader_Mp4DemuxDisabled test - FetcherLoopTests.cpp: replace terse 'Initialize MPD' comment on all CacheFragment EXPECT_CALL registrations with explanatory comments describing why the expectation must be set before InitializeMPD() and what the isInitSegment=true constraint asserts
…Changed setup Commit 64870ea added a Times(1) EXPECT_CALL for video_p1_init.mp4 in DetectDiscotinuityAndFetchInitTests1. This expectation is never satisfied because FetchAndInjectInitialization only downloads an init segment when profileChanged or discontinuity is true. In production, StreamSelection() resets enabled=false before UpdateTrackInfo is called, which causes UpdateTrackInfo to flip profileChanged=true on the false->true transition. The test calls InvokeUpdateTrackInfo directly, bypassing StreamSelection(), so profileChanged stays false and the init segment fetch is never triggered. Fix: set pMediaStreamContext->profileChanged=true explicitly after the period switch to replicate the state that exists when DetectDiscontinuityAndFetchInit is called in production.
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: Make pre roll ad
to play via encrypted pipeline
Test Procedure: Updated in ticket
Risks: Medium