Stage 1 rewrite

This commit is contained in:
Aiden
2026-05-12 00:52:33 +10:00
parent bf23cd880a
commit ac729dc2b9
20 changed files with 1047 additions and 25 deletions

View File

@@ -39,8 +39,11 @@ void TestScheduleAdvancesFromZero()
void TestLateAndDroppedRecoveryUsesMeasuredPressure()
{
VideoPlayoutPolicy policy;
policy.lateOrDropCatchUpFrames = 2;
VideoPlayoutScheduler scheduler;
scheduler.Configure(1000, 50000);
scheduler.Configure(1000, 50000, policy);
(void)scheduler.NextScheduleTime();
VideoPlayoutRecoveryDecision lateDecision = scheduler.AccountForCompletionResult(VideoIOCompletionResult::DisplayedLate, 2);
@@ -55,6 +58,18 @@ void TestLateAndDroppedRecoveryUsesMeasuredPressure()
Expect(scheduler.NextScheduleTime().streamTime == 5000, "drop recovery advances by measured lag");
}
void TestDefaultPolicyReportsLagWithoutSkippingScheduleTime()
{
VideoPlayoutScheduler scheduler;
scheduler.Configure(1000, 50000);
(void)scheduler.NextScheduleTime();
VideoPlayoutRecoveryDecision decision = scheduler.AccountForCompletionResult(VideoIOCompletionResult::Dropped, 0);
Expect(decision.measuredLagFrames > 0, "default policy still measures dropped-frame lag");
Expect(decision.catchUpFrames == 0, "default policy does not skip schedule time");
Expect(scheduler.NextScheduleTime().streamTime == 1000, "default recovery keeps stream time continuous");
}
void TestMeasuredRecoveryIsCappedByPolicy()
{
VideoPlayoutPolicy policy;
@@ -117,6 +132,7 @@ int main()
{
TestScheduleAdvancesFromZero();
TestLateAndDroppedRecoveryUsesMeasuredPressure();
TestDefaultPolicyReportsLagWithoutSkippingScheduleTime();
TestMeasuredRecoveryIsCappedByPolicy();
TestCleanCompletionTracksCompletedIndexAndClearsStreaks();
TestPolicyNormalization();