d14a33a0a3
fix(ndi): resolve Processing.NDI.Lib.x64 via NDI_RUNTIME_DIR_V6 env var
...
The NDI 6 installer sets NDI_RUNTIME_DIR_V6 (and V5/V4 for back-compat) but does not always add the runtime directory to PATH, so a default DllImport(Processing.NDI.Lib.x64) failed with 0x8007007E (DllNotFoundException) on otherwise correctly installed machines, killing both TeamsISO.exe and TeamsISO.Console at preflight.
Add NdiNativeLibraryResolver, registered from NdiNative's static ctor, that resolves the DLL by trying NDI_RUNTIME_DIR_V6 / V5 / V4 in order, NativeLibrary.Load-ing the file from disk before the runtime falls back to its default search algorithm. Static-ctor registration (rather than [ModuleInitializer]) sidesteps CA2255 under TreatWarningsAsErrors and still guarantees the resolver is in place before the first P/Invoke fires.
2026-05-07 15:14:54 -04:00
e3321ff279
feat(ui): wire DI bootstrap in App.xaml.cs and add Windows solution filter
CI / build-and-test (push) Failing after 36s
2026-05-07 15:41:58 +00:00
d64b110550
feat(ui): add MainWindow XAML with participants DataGrid, settings sidebar, alert banner
CI / build-and-test (push) Failing after 34s
2026-05-07 15:40:49 +00:00
8c441318d8
feat(ui): add MainViewModel with live participants collection and dispatcher marshalling
CI / build-and-test (push) Failing after 34s
2026-05-07 15:40:06 +00:00
fbb73bcf04
feat(ui): add MVVM helpers and per-component view models (Participant, GlobalSettings, AlertBanner)
CI / build-and-test (push) Has been cancelled
2026-05-07 15:39:46 +00:00
368920734d
fix(console): disambiguate System.Console from TeamsISO.Console namespace
CI / build-and-test (push) Has been cancelled
2026-05-07 15:38:02 +00:00
b2dafb7aed
feat(console): add TeamsISO.Console headless smoke runner
CI / build-and-test (push) Has been cancelled
2026-05-07 15:37:44 +00: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
da5818b690
feat(interop): add NdiInteropPInvoke production INdiInterop implementation
CI / build-and-test (push) Failing after 26s
2026-05-07 15:35:59 +00:00
90b0951a42
fix(interop): rename create-settings structs to avoid name collision with P/Invoke methods
CI / build-and-test (push) Failing after 26s
2026-05-07 15:35:15 +00:00
6f09ca35ef
feat(interop): add NDI 6 native bindings, handle types, and version constants
CI / build-and-test (push) Has been cancelled
2026-05-07 15:34:54 +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
f21e818b28
chore: scaffold WPF app and integration test projects
...
- TeamsISO.App: hand-rolled net8.0-windows WPF csproj since the WPF
template isn't shipped on linux-arm64 .NET SDK; UI is a placeholder
for Phase C.
- TeamsISO.Engine.IntegrationTests: cross-platform xunit project with a
skipped scaffold fact tagged [Trait("requires", "ndi")] for Phase B.
- TeamsISO.Linux.slnf: solution filter for non-Windows CI that excludes
the WPF project (which can only build on Windows).
2026-05-07 15:09:56 +00:00
d0f05263af
test(engine): scaffold TeamsISO.Engine.Tests xUnit project
2026-05-07 15:08:38 +00:00
14cbc25b99
feat(interop): scaffold TeamsISO.Engine.NdiInterop project
2026-05-07 15:08:21 +00:00
f9ab6fe0e7
feat(engine): scaffold TeamsISO.Engine class library
2026-05-07 15:08:11 +00:00
c355e9dc4c
chore: add empty TeamsISO solution
2026-05-07 15:07:58 +00:00