d90ebb826f
fix(ndi): match the NDI 6 WIN64 runtime banner in version probe
...
CI / build-and-test (push) Failing after 26s
Shipping NDI 6 reports its version as a build banner of the form
NDI SDK WIN64 13:07:00 Jun 2 2025 6.2.0.3
not the 'NDI SDK for Windows v6.x.x.x' format the prefix constant assumed. As a result NdiRuntimeProbe raised a spurious mismatch alert on every supported install. Update ExpectedRuntimeVersionPrefix to 'NDI SDK WIN64' which is the stable architecture token in the new banner; the trailing four-part version remains available for a stricter major-version check if that becomes useful.
2026-05-07 15:15:03 -04:00
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
0f03c272ad
fix(build): use forward-slash paths in TeamsISO.sln so Windows .slnf resolves
...
MSBuild on Windows compares solution-filter project paths against .sln entries as raw strings, so the forward-slash entries in TeamsISO.Windows.slnf / TeamsISO.Linux.slnf were being rejected (MSB5028) against the .sln's backslash entries. Linux dotnet normalizes separators so CI happened to be green. Switch the .sln to forward slashes so both platforms agree; Visual Studio accepts either form.
2026-05-07 15:14:42 -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
2c6fbdf861
docs: add Phase C WPF UI plan
CI / build-and-test (push) Failing after 32s
2026-05-07 15:38:57 +00:00
c6f23e1885
docs: update plan backlog after Phase B-2 completion
CI / build-and-test (push) Failing after 32s
2026-05-07 15:38:24 +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
60b12eb637
docs: add Phase B-2 NDI interop plan
CI / build-and-test (push) Failing after 27s
2026-05-07 15:34:11 +00:00
54cb4ac3d4
docs: update plan backlog after Phase B-1 completion
CI / build-and-test (push) Failing after 30s
2026-05-07 15:28:52 +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
f1513ddaf5
docs: add Phase B-1 pipeline-orchestration plan
CI / build-and-test (push) Failing after 25s
2026-05-07 15:22:56 +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
381cac66e6
docs: add Phase A test playbook stub and plan backlog
CI / build-and-test (push) Failing after 26s
2026-05-07 15:16:37 +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
f2b4e881e4
ci: enforce 80% line coverage gate on TeamsISO.Engine
CI / build-and-test (push) Has been cancelled
2026-05-07 15:16:11 +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
5ac0a50afe
ci: add Forgejo Actions build-and-test workflow
CI / build-and-test (push) Has been cancelled
2026-05-07 15:10:08 +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
87425b509b
chore: scaffold repo conventions and global build props
2026-05-07 15:07:53 +00:00
a5a0f9ae37
docs: add Phase A engine-foundation implementation plan
2026-05-07 15:07:12 +00:00
8bd840391e
docs: add v1.0 implementation spec
2026-05-07 10:37:49 -04:00
8d02221b11
Initial commit
2026-05-07 10:22:03 -04:00