[CoreMediaIO] Add complete C# bindings for CoreMediaIO framework up to Xcode 26.4#25029
[CoreMediaIO] Add complete C# bindings for CoreMediaIO framework up to Xcode 26.4#25029
Conversation
Add bindings for the CoreMediaIO framework on macOS and Mac Catalyst: - 12 ObjC classes (CMIOExtensionClient, Device, Provider, Stream, etc.) - 3 protocols (CMIOExtensionStreamSource, DeviceSource, ProviderSource) - 3 enums (StreamDirection, StreamClockType, StreamDiscontinuityFlags) - ~52 NSString property fields (CMIOExtensionProperty* constants) - ~30 C P/Invoke declarations (CMIOObject*, CMIODevice*, CMIOStream*, CMIOSampleBuffer* hardware and sample buffer functions) - Async support for ConsumeSampleBuffer completion handler Resolves all 423 .todo entries (211 macOS + 212 MacCatalyst). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Replace raw IntPtr parameters in CMIOInterop P/Invokes with proper C# structs: - CMIOObjectPropertyAddress (selector/scope/element) - CMIODeviceAVCCommand (AVC command buffers) - CMIODeviceRS422Command (RS422 command buffers) Add managed wrapper classes for typed API access: - CMIOObject: property query/get/set with managed types - CMIOStreamClock: clock create/post/invalidate with string names - CMIOSampleBufferExtensions: sample buffer create/query with CMSampleBuffer, CMBlockBuffer, CMFormatDescription, CVImageBuffer Add comprehensive monotouch-tests for macOS/MacCatalyst: - Struct tests (layout, round-trip, size verification) - CMIOObject property tests (system object queries) - Sample buffer create/sequence/discontinuity tests - Stream clock create/post/convert tests - Extension property/state/format/device/stream tests Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
🔥 [CI Build #2dd0c0b] Test results 🔥Test results❌ Tests failed on VSTS: test results 0 tests crashed, 5 tests failed, 151 tests passed. Failures❌ dotnettests tests (MacCatalyst)1 tests failed, 0 tests passed.Failed tests
Html Report (VSDrops) Download ❌ dotnettests tests (macOS)1 tests failed, 0 tests passed.Failed tests
Html Report (VSDrops) Download ❌ monotouch tests (macOS)1 tests failed, 11 tests passed.Failed tests
Html Report (VSDrops) Download ❌ Tests on macOS Monterey (12) tests [attempt 2]1 tests failed, 4 tests passed.Failed tests
Html Report (VSDrops) Download ❌ Tests on macOS Ventura (13) tests [attempt 2]1 tests failed, 4 tests passed.Failed tests
Html Report (VSDrops) Download Successes✅ cecil: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. [attempt 2] Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
- Add [Mac (14, 0), MacCatalyst (17, 0)] to PixelBufferOverlaidByStaticImage field which is only available from macOS 14.0 per SDK headers, fixing introspection FieldExists failures on macOS 12/13 machines. - Add CoreMediaIO.framework to expectedFrameworks_macOS_None and expectedFrameworks_MacCatalyst_None in LinkedWithNativeLibraries test. - Update MacOSX-CoreCLR-Interpreter app size baseline to account for the new CoreMediaIO bindings (+211 KB). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
✅ [CI Build #5d063aa] Build passed (Build packages) ✅Pipeline on Agent |
✅ [PR Build #5d063aa] Build passed (Detect API changes) ✅Pipeline on Agent |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
✅ [CI Build #5d063aa] Build passed (Build macOS tests) ✅Pipeline on Agent |
Add bindings for the CoreMediaIO framework on macOS and Mac Catalyst:
Resolves all 423 .todo entries (211 macOS + 212 MacCatalyst).