dragon-iso/src/tests/TeamsISO.Engine.Tests/Pipeline
Zac Gaetano 2c607a70ff
Some checks failed
CI / build-and-test (push) Failing after 31s
Audio peak: high-water mark across UI poll interval
The audio capture loop runs at ~50Hz publishing every buffer's peak via overwrite; the UI stats poll reads at 1Hz. With overwrite semantics the UI sees one of every ~50 audio frames per second — loud transients between reads were invisible to the VU meter.

New design: NdiReceiver maintains an atomic high-water mark, max-updated on each audio frame via CompareExchange CAS loop. IsoPipeline.GetStats now calls ConsumeAudioPeak() which atomically reads + resets to 0, so the next UI tick reflects the loudest sample seen in the next 1s window.

Added PeekAudioPeak() for non-consuming reads (e.g. external diagnostics dashboards that poll faster than the UI).

FakeNdiInterop gained a ReceiverAudioPeaks queue + CaptureAudioPeak override so tests can drive the audio path. 4 new tests in NdiReceiverTests cover: empty case, single-frame consume+reset, max-hold across 3 frames, no-frame leaves high-water mark untouched. 104 + 46 + 9 = 159/159 passing.
2026-05-10 14:04:04 -04:00
..
AudioPeakComputerTests.cs Wire engine audio peak metering — UI VU bars now animate 2026-05-10 13:28:26 -04:00
ExponentialBackoffTests.cs feat(pipeline): add ExponentialBackoff policy 2026-05-07 15:24:13 +00:00
FrameProcessorTests.cs feat(pipeline): add FrameProcessor with closest-frame timing and slate fallback 2026-05-07 15:15:19 +00:00
IsoPipelineStatsTests.cs feat: bundle Inter font, emergency stop button, window persistence + tests 2026-05-08 13:59:14 -04:00
IsoPipelineTests.cs feat(pipeline): add IsoPipeline with lifecycle and restart supervisor 2026-05-07 15:26:54 +00:00
ManagedNearestNeighborFrameScalerTests.cs feat(pipeline): add managed BGRA nearest-neighbor scaler with aspect modes 2026-05-07 15:37:07 +00:00
NdiReceiverTests.cs Audio peak: high-water mark across UI poll interval 2026-05-10 14:04:04 -04:00
NdiSenderTests.cs feat(pipeline): add NdiSender with channel-based input 2026-05-07 15:23:51 +00:00
SolidFrameRendererTests.cs feat(pipeline): add SolidFrameRenderer slate and IFrameScaler/PassthroughFrameScaler 2026-05-07 15:14:37 +00:00
TestPatternGeneratorTests.cs feat(engine+console): SMPTE test-pattern generator + --test-pattern flag 2026-05-10 09:41:33 -04:00