Skip to content

[CoreMedia] Bind missing format description constants. Fixes #7485 - #27176

Open
rolfbjarne wants to merge 2 commits into
mainfrom
dev/rolf/coremedia-format-descriptions
Open

rolfbjarne wants to merge 2 commits into
mainfrom
dev/rolf/coremedia-format-descriptions

Conversation

@rolfbjarne

Copy link
Copy Markdown
Member

Expose the missing CoreMedia format description constants:

  • Add vendor, text color, rectangle, style, text extension, and time-code source reference keys as NSString constants.
  • Add image and sound description flavors as smart enums, including the ISO image flavor with Apple extensions.
  • Remove the 37 corresponding xtro ignores and document the new types and enum values.

Keep the existing Vendor property untyped so callers can continue using custom vendor identifiers. AudioChannelLayout already handles native channel layout marshaling, so the internal AudioChannelLayoutNative helper from the abandoned PR is unnecessary.

Fixes #7485

🤖 Pull request created by Copilot

rolfbjarne and others added 2 commits October 29, 2026 21:17
Expose the vendor identifier, text color, rectangle, style, and extension keys, and time-code source reference keys as NSString constants on all four Apple platforms. Preserve the existing untyped Vendor property so custom four-character vendor identifiers remain supported.

Add regression assertions for all 29 native constant values and remove their resolved xtro ignores. AudioChannelLayout already marshals native channel layouts, so the abandoned PR’s internal AudioChannelLayoutNative helper is not needed.

Fixes #7485. Native symbol values and SDK declarations were checked locally; managed build and test execution are blocked by the unavailable required Xcode 27.1 and .NET 12 preview SDK, with the full build also reporting an outdated Xamarin.MacDev checkout.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f4688804-8c40-48a0-b1e6-3da1f78edfd4
Remove availability annotations older than the supported platform minimums while retaining explicit Mac Catalyst availability. Drop the constants-only regression test as requested; the test file now matches its pre-change contents.

Bind all eight image and sound description flavor constants as documented smart enums and remove their xtro ignores. Keep iOS, tvOS, and Mac Catalyst 16.0 availability on the Apple-extension image flavor; its macOS introduction predates the supported minimum.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f4688804-8c40-48a0-b1e6-3da1f78edfd4
Copilot AI balanced review requested due to automatic review settings October 29, 2026 20:20
@rolfbjarne
rolfbjarne requested a review from dalexsoto as a code owner October 29, 2026 20:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are reported for the CoreMedia constants and smart-enum additions.

No open issues 🎉

What changed in this PR

Adds missing CoreMedia format description constants and smart enums to the Apple platform bindings, addressing #7485 while preserving support for custom vendor identifiers.

Changes:

  • Exposes vendor, text-format, and time-code dictionary keys as NSString constants.
  • Adds documented image and sound description flavor smart enums, including the ISO image flavor with Apple extensions.
  • Removes 37 corresponding missing-field ignores.
File Description
tests/​xtro-sharpie/​api-annotations-dotnet/​common-CoreMedia.ignore Removes ignores for the newly bound constants.
src/​coremedia.cs Adds format description constants, flavor smart enums, and documentation.

Review effort: Balanced

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 23ecb7aa8a88a73e6a3782a80ce5e20b6f1904d7 [PR build]

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🔥 [CI Build #23ecb7a] Test results 🔥

Test results

❌ Tests failed on VSTS: test results

0 tests crashed, 3 tests failed, 214 tests passed.

Failures

❌ dotnettests tests (macOS)

1 tests failed, 0 tests passed.

Failed tests

  • DotNet tests: Failed (Execution failed with exit code 1)
    • Xamarin.Tests.AppSizeTest.CoreCLR_Interpreter(MacOSX,"osx-arm64;...: App size changed significantly (+12,947 bytes (12.6 KB = 0.0 MB) different > tolerance of +-10,240 bytes (10.0 KB = 0.0 MB)). Ex...
    • Xamarin.Tests.AppSizeTest.CoreCLR_R2R(MacOSX,"osx-arm64;osx-x64"...: App size changed significantly (+47,763 bytes (46.6 KB = 0.0 MB) different > tolerance of +-10,240 bytes (10.0 KB = 0.0 MB)). Ex...

Html Report (VSDrops) Download

❌ Tests on macOS Sonoma (14) tests

1 tests failed, 4 tests passed.

Failed tests

  • MacCatalyst/maccatalyst-x64 monotouch-test: Failed (exit code 1)
    • [FAIL] PerformAsynchronousFileAccess_Null : System.UnauthorizedAccessException : Access to the path '/Users/builder/Documents/mydocument.txt' is denied.
    • [FAIL] Save : System.UnauthorizedAccessException : Access to the path '/Users/builder/Documents/mydocument.txt' is denied.

Html Report (VSDrops) Download

❌ Tests on macOS Sequoia (15) tests

1 tests failed, 4 tests passed.

Failed tests

  • MacCatalyst/maccatalyst-x64 monotouch-test: Failed (exit code 137)
    • No test failure details available. Output tail:
      • at MonoTouch.NUnit.UI.BaseTouchRunner.Run(NUnit.Framework.Internal.Test)
      • at MonoTouch.NUnit.UI.BaseTouchRunner.Run()
      • at MonoTouch.NUnit.UI.BaseTouchRunner.<AutoRun>b__49_0()
      • at MonoTouch.NUnit.UI.TouchRunner+<>c__DisplayClass19_0.<ExecuteOnMainThread>b__0()
      • at Foundation.NSAsyncActionDispatcher.Apply()
      • at __Registrar_Callbacks__.callback_3037_Foundation_NSAsyncActionDispatcher_Apply(IntPtr, IntPtr, IntPtr*)
      • at UIKit.UIApplication.UIApplicationMain(Int32, System.String[], IntPtr, IntPtr)
      • at UIKit.UIApplication.Main(System.String[], System.Type, System.Type)
      • at MainClass.Main(System.String[])
      • Execution completed with exit code 137
  • MacCatalyst/maccatalyst-arm64 monotouch-test: Failed (exit code 137)
    • No test failure details available. Output tail:
      • at MonoTouch.NUnit.UI.BaseTouchRunner.Run(NUnit.Framework.Internal.Test)
      • at MonoTouch.NUnit.UI.BaseTouchRunner.Run()
      • at MonoTouch.NUnit.UI.BaseTouchRunner.<AutoRun>b__49_0()
      • at MonoTouch.NUnit.UI.TouchRunner+<>c__DisplayClass19_0.<ExecuteOnMainThread>b__0()
      • at Foundation.NSAsyncActionDispatcher.Apply()
      • at __Registrar_Callbacks__.callback_3037_Foundation_NSAsyncActionDispatcher_Apply(IntPtr, IntPtr, IntPtr*)
      • at UIKit.UIApplication.UIApplicationMain(Int32, System.String[], IntPtr, IntPtr)
      • at UIKit.UIApplication.Main(System.String[], System.Type, System.Type)
      • at MainClass.Main(System.String[])
      • Execution completed with exit code 137

Html Report (VSDrops) Download

Successes

✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 1 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 4 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (tvOS): All 21 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 20 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 20 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 20 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 20 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Golden Gate (27): All 5 tests passed. Html Report (VSDrops) Download

Linux Build Verification

✅ Linux build succeeded

Pipeline on Agent
Hash: 23ecb7aa8a88a73e6a3782a80ce5e20b6f1904d7 [PR build]

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

⚠️ AppSizeTest expected files changed ⚠️

The AppSizeTest detected changes in the expected app size files.

To update the expected files, add a comment with the following command:

/apply-gist https://gist.github.com/vs-mobiletools-engineering-service2/d67144f5581940050892b48ed12185e2
Updated files
  • MacOSX-CoreCLR-Interpreter-size.txt
  • MacOSX-CoreCLR-R2R-size.txt

Pipeline on Agent
Hash: 23ecb7aa8a88a73e6a3782a80ce5e20b6f1904d7 [PR build]

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CoreMedia] CMFormatDescription is missing types

3 participants