From 98cdc4b3f461505f4b628e6f2de8e3dd0d88dc50 Mon Sep 17 00:00:00 2001 From: gramps Date: Thu, 6 Aug 2026 14:35:34 -0700 Subject: [PATCH] TASK 3 milestone 1: webcam capture (MediaCapture CPU-first, CameraManager refcount, picker, clip/mirror, schema v2, tests) --- CameraPickerDialog.xaml | 90 ++++++++++ CameraPickerDialog.xaml.cs | 25 +++ MainWindow.xaml | 75 ++++++-- MainWindow.xaml.cs | 24 ++- Models/Source.cs | 56 ++++++ Models/index.md | 2 +- Services/CameraDeviceInfo.cs | 13 ++ Services/CameraManager.cs | 218 +++++++++++++++++++++++ Services/ICameraEnumerator.cs | 10 ++ Services/ICameraFrameSource.cs | 14 ++ Services/LayoutStore.cs | 48 ++++- Services/MediaCaptureCameraEnumerator.cs | 15 ++ Services/MediaCaptureFrameSource.cs | 128 +++++++++++++ Services/VideoFrame.cs | 22 +++ Services/index.md | 9 +- TASKS.md | 17 +- ViewModels/CameraPickerViewModel.cs | 86 +++++++++ ViewModels/MainViewModel.cs | 107 ++++++++++- ViewModels/index.md | 3 +- ai.md | 51 +++++- ytLive.Tests/CameraManagerTests.cs | 122 +++++++++++++ ytLive.Tests/ytLive.Tests.csproj | 2 +- ytLive.csproj | 2 +- 23 files changed, 1099 insertions(+), 40 deletions(-) create mode 100644 CameraPickerDialog.xaml create mode 100644 CameraPickerDialog.xaml.cs create mode 100644 Services/CameraDeviceInfo.cs create mode 100644 Services/CameraManager.cs create mode 100644 Services/ICameraEnumerator.cs create mode 100644 Services/ICameraFrameSource.cs create mode 100644 Services/MediaCaptureCameraEnumerator.cs create mode 100644 Services/MediaCaptureFrameSource.cs create mode 100644 Services/VideoFrame.cs create mode 100644 ViewModels/CameraPickerViewModel.cs create mode 100644 ytLive.Tests/CameraManagerTests.cs diff --git a/CameraPickerDialog.xaml b/CameraPickerDialog.xaml new file mode 100644 index 0000000..2351a85 --- /dev/null +++ b/CameraPickerDialog.xaml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +