VPLAY-13176 underflow detection refactoring#1252
Merged
pstroffolino merged 13 commits intodev_sprint_25_2from Apr 9, 2026
Merged
VPLAY-13176 underflow detection refactoring#1252pstroffolino merged 13 commits intodev_sprint_25_2from
pstroffolino merged 13 commits intodev_sprint_25_2from
Conversation
Reason for Change: see ticket Signed-off-by: Philip Stroffolino <philip_stroffolino@cable.comcast.com>
Vinish100
reviewed
Mar 27, 2026
Contributor
Vinish100
left a comment
There was a problem hiding this comment.
Looks good to me 👍
L1 is failing as fakes are not updated
Signed-off-by: Philip Stroffolino <philip_stroffolino@cable.comcast.com>
Signed-off-by: Philip Stroffolino <philip_stroffolino@cable.comcast.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors video underflow detection to a timer/deadline-driven monitor, removing steady-state polling and introducing explicit notifications from fragment download and buffering transitions to improve consistency across devices/simulators.
Changes:
- Replace polling-based underflow detection with a deadline-based
AampUnderflowMonitorthat arms/disarms on fragment and buffering notifications. - Wire underflow-monitor notifications into fragment download/chunk caching and buffering state transitions.
- Update unit-test fakes to match the new monitor API and stream-abstraction notification surface.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
AampUnderflowMonitor.h |
Redefines the underflow monitor as a timer/deadline-driven component with notify-style APIs. |
AampUnderflowMonitor.cpp |
Implements deadline arming/disarming, deadline wait loop, and underflow declare/resume behavior. |
StreamAbstractionAAMP.h |
Adds stream-level notification methods for underflow monitor events (fragment queued, pipeline paused/resumed). |
streamabstraction.cpp |
Updates underflow monitor construction and forwards new notifications to the monitor with locking. |
priv_aamp.cpp |
Notifies the underflow monitor when buffering pauses the pipeline; documents why resume notify isn’t called. |
MediaStreamContext.cpp |
Notifies the underflow monitor on successful video fragment/chunk availability; adds a race-avoidance guard for TSB discard logic. |
test/utests/fakes/FakeAampUnderflowMonitor.cpp |
Updates fake monitor constructor and stubs new notify APIs for unit tests. |
test/utests/fakes/FakeStreamAbstractionAamp.cpp |
Adds stubs for new stream-level underflow monitor notification methods. |
Signed-off-by: Philip Stroffolino <philip_stroffolino@cable.comcast.com>
Signed-off-by: Philip Stroffolino <philip_stroffolino@cable.comcast.com>
Signed-off-by: Philip Stroffolino <philip_stroffolino@cable.comcast.com>
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: motivated by struggles getting L2 6002 to pass on OSX
Refactoring to eliminate polling loop, vendor specific code, dependencies on streamer-level signaling.
Test Guidance: underflow monitoring/rerporting must work well across devices and simulator variations. All underflow-specific tests must work.
Risk: High - simplification, but big change. That said, current implementation has some known issues.