Skip to content

VPLAY-12744:Handle static DASH DRM license rotation using EAP#1664

Open
varshnie wants to merge 3 commits into
dev_sprint_25_2from
feature/VPAAMP-35_crashfix
Open

VPLAY-12744:Handle static DASH DRM license rotation using EAP#1664
varshnie wants to merge 3 commits into
dev_sprint_25_2from
feature/VPAAMP-35_crashfix

Conversation

@varshnie

Copy link
Copy Markdown
Contributor

Reason for change:Adding the support to detect EarlyAvailablePeriod to Queue Content Protection
Risks: Medium

Signed-off-by: varshnie varshniblue14@gmail.com

@varshnie varshnie requested a review from a team as a code owner June 26, 2026 10:52
@varshnie varshnie requested a review from Copilot June 26, 2026 10:52

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

Adds support in the DASH MPD fragment collector to detect non-VSS Early Available Periods (EAP) in live manifests and pre-queue DRM content protection (license prefetch/rotation path), guarded by a new config flag.

Changes:

  • Introduces processLicenseFromEAP config and wires manifest processing to call ProcessLicenseFromEAP() for live MPDs.
  • Adds GetEarlyAvailablePeriods() detection + queues content protection for the detected early period’s adaptation sets.
  • Extends unit-test infrastructure (mocks/fakes + new test cases) to validate early-period detection and license queueing behavior.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
AampConfig.h Adds new bool config enum eAAMPConfig_ProcessLicenseFromEAP.
AampConfig.cpp Registers processLicenseFromEAP in bool lookup table.
fragmentcollector_mpd.h Declares ProcessLicenseFromEAP() and GetEarlyAvailablePeriods().
fragmentcollector_mpd.cpp Calls ProcessLicenseFromEAP() during live manifest metadata processing; implements early-period detection + queueing; adds a safety guard in GetLanguageForAdaptationSet() for empty representation lists.
test/utests/mocks/MockAampLicManager.h Adds mock APIs for queueContentProtection() / queueProtectionEvent().
test/utests/mocks/MockDrmHelper.h Adds global mock handle for DRM helper use in fakes/tests.
test/utests/fakes/FakeAampLicManager.cpp Forwards queue operations to MockAampLicenseManager when present.
test/utests/fakes/FakeDRMHelper.cpp Allows DrmHelperEngine to return a mocked DRM helper (test seam).
test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp Adds tests for early-period detection and license queueing; sets up license manager + DRM helper mocks.
test/utests/tests/StreamAbstractionAAMP_MPD/subtitleTests.cpp Adds default entry for new config in bool config settings.
test/utests/tests/StreamAbstractionAAMP_MPD/StreamSelectionTest.cpp Adds default entry for new config in bool config settings.
test/utests/tests/StreamAbstractionAAMP_MPD/LinearFOGTests.cpp Adds default entry for new config in bool config settings.
test/utests/tests/StreamAbstractionAAMP_MPD/FetcherLoopTests.cpp Adds default entry for new config in bool config settings.
test/utests/tests/StreamAbstractionAAMP_MPD/AudioTrackSwitchTests.cpp Adds default entry for new config in bool config settings.
test/utests/tests/StreamAbstractionAAMP_MPD/AudioTrackSelectionTests.cpp Adds default entry for new config in bool config settings.
test/utests/tests/StreamAbstractionAAMP_MPD/AudioOnlyTests.cpp Adds default entry for new config in bool config settings.
test/utests/tests/FragmentCollectorAdTests/AdSelectionTests.cpp Adds default entry for new config in bool config settings.

Comment thread test/utests/mocks/MockDrmHelper.h Outdated
Comment thread test/utests/fakes/FakeDRMHelper.cpp
Comment thread fragmentcollector_mpd.cpp
Comment thread test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp Outdated
Comment thread test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp Outdated
Comment thread test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp
Comment thread test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp Outdated
Comment thread test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp Outdated
Comment thread test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp Outdated
Comment thread test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp Outdated
@varshnie varshnie force-pushed the feature/VPAAMP-35_crashfix branch 2 times, most recently from 8960c1f to 4f523be Compare June 29, 2026 07:07
Comment thread test/utests/tests/StreamAbstractionAAMP_MPD/FunctionalTests.cpp
Comment thread fragmentcollector_mpd.cpp
@varshnie varshnie force-pushed the feature/VPAAMP-35_crashfix branch from 4f523be to c3102a9 Compare June 30, 2026 06:27
Comment thread fragmentcollector_mpd.cpp Outdated
Reason for change:Adding the support to detect EarlyAvailablePeriod to Queue Content Protection
Risks: Medium

Signed-off-by: varshnie <varshniblue14@gmail.com>
@varshnie varshnie force-pushed the feature/VPAAMP-35_crashfix branch from c3102a9 to beafaeb Compare June 30, 2026 11:04
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