ca124540a7
fix(parser): accept 'MS Teams' brand prefix from current Teams NDI broadcasts
...
The new Microsoft Teams desktop client (observed against a live meeting on Teams 26106.1906.4665.7308) emits NDI source strings of the form
WOOGLIN (MS Teams - Brendon Power)
WOOGLIN (MS Teams - (Local))
WOOGLIN (MS Teams - Active Speaker)
rather than the legacy 'MACHINE (Teams - ...)' shape NdiSourceParser was written to. As a result every Teams source was rejected and TeamsISO showed zero participants in real meetings.
Refactor the parser to recognize 'Teams', 'MS Teams', and (defensively) 'Microsoft Teams' as brand prefixes — longest first so 'MS Teams' isn't shadowed. Also recognize reserved suffix tokens after a dash ('Active Speaker' / 'Audio' / 'Audio Mix' / 'Screen Share') so the new active-speaker output is correctly classified as ActiveSpeaker rather than misread as a participant named 'Active Speaker'.
Tests: kept all legacy cases, added MS Teams + Microsoft Teams variants and the new dash-prefixed reserved-suffix cases. 69/69 unit tests passing; verified end-to-end against a live Teams meeting where TeamsISO.exe now shows '(Local)' and 'Brendon Power' in the Participants DataGrid.
2026-05-07 23:33:43 -04:00
88841780af
feat(pipeline): add managed BGRA nearest-neighbor scaler with aspect modes
CI / build-and-test (push) Failing after 27s
2026-05-07 15:37:07 +00:00
af37b4d9e1
refactor(interop): NdiRuntimeProbe now matches by prefix to handle NDI runtime version strings
CI / build-and-test (push) Failing after 24s
2026-05-07 15:36:26 +00:00
cd5e852a30
feat(controller): add IIsoController and IsoController implementation
CI / build-and-test (push) Has been cancelled
2026-05-07 15:28:27 +00:00
49b6dfb9ed
feat(pipeline): add IsoPipeline with lifecycle and restart supervisor
CI / build-and-test (push) Failing after 29s
2026-05-07 15:26:54 +00:00
e318514202
feat(interop): add NdiRuntimeProbe with version-mismatch result
CI / build-and-test (push) Failing after 27s
2026-05-07 15:24:31 +00:00
798a5abd64
feat(pipeline): add ExponentialBackoff policy
CI / build-and-test (push) Has been cancelled
2026-05-07 15:24:13 +00:00
aecbda674d
feat(pipeline): add NdiSender with channel-based input
CI / build-and-test (push) Has been cancelled
2026-05-07 15:23:51 +00:00
ead5e79935
feat(pipeline): add NdiReceiver with channel-based output
CI / build-and-test (push) Has been cancelled
2026-05-07 15:23:26 +00:00
38f7db888e
feat(domain): default global framerate to 59.94p (user's primary production target)
CI / build-and-test (push) Failing after 25s
2026-05-07 15:21:58 +00:00
27dc0f90c7
feat(logging): add EngineLogging.CreateConsole helper
CI / build-and-test (push) Has been cancelled
2026-05-07 15:16:17 +00:00
5c039025fd
feat(pipeline): add FrameProcessor with closest-frame timing and slate fallback
CI / build-and-test (push) Failing after 24s
2026-05-07 15:15:19 +00:00
970f04861d
feat(pipeline): add SolidFrameRenderer slate and IFrameScaler/PassthroughFrameScaler
CI / build-and-test (push) Failing after 25s
2026-05-07 15:14:37 +00:00
1b280e3e77
feat(discovery): add NdiDiscoveryService with diff-based event emission
CI / build-and-test (push) Failing after 22s
2026-05-07 15:14:15 +00:00
cef9018b6d
feat(discovery): add ParticipantTracker with rename heuristic
CI / build-and-test (push) Failing after 22s
2026-05-07 15:13:42 +00:00
c07a668672
test(fakes): add FakeNdiInterop and FakeFrameClock; feat(discovery): add DiscoveryEvent
CI / build-and-test (push) Failing after 24s
2026-05-07 15:13:00 +00:00
f562303b47
feat(pipeline,interop): add RawFrame, ProcessedFrame, IFrameClock and INdiInterop test seam
CI / build-and-test (push) Has been cancelled
2026-05-07 15:12:36 +00:00
3f8b5f1a7b
feat(persistence): add ConfigStore with atomic JSON writes and corruption-safe load
CI / build-and-test (push) Failing after 22s
2026-05-07 15:12:01 +00:00
464f559576
feat(domain): add Participant, IsoAssignment, IsoOutput, IsoHealthStats, FrameProcessingSettings, EngineConfig, EngineAlert
CI / build-and-test (push) Failing after 22s
2026-05-07 15:11:32 +00:00
aaf3184a8e
feat(discovery): add NdiSource record and Teams source string parser
CI / build-and-test (push) Failing after 22s
2026-05-07 15:11:00 +00:00
b07e3e78e0
feat(domain): add core enums (NdiSourceKind, IsoState, AspectMode, AudioMode, TargetFramerate, TargetResolution)
CI / build-and-test (push) Failing after 23s
2026-05-07 15:10:29 +00:00
f9ab6fe0e7
feat(engine): scaffold TeamsISO.Engine class library
2026-05-07 15:08:11 +00:00