diff --git a/src/CoreVideo/CVPixelFormatDescription.cs b/src/CoreVideo/CVPixelFormatDescription.cs
index 29547de4fce5..ae3b58290b2a 100644
--- a/src/CoreVideo/CVPixelFormatDescription.cs
+++ b/src/CoreVideo/CVPixelFormatDescription.cs
@@ -26,94 +26,136 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
using System;
+using System.ComponentModel;
using System.Runtime.InteropServices;
using CoreFoundation;
using ObjCRuntime;
using Foundation;
+#if XAMCORE_5_0
+using CVFillExtendedPixelsCallBackDataStruct = CoreVideo.CVFillExtendedPixelsCallBackData;
+#endif
+
#nullable enable
namespace CoreVideo {
-
-#if NET
- [SupportedOSPlatform ("ios")]
- [SupportedOSPlatform ("maccatalyst")]
- [SupportedOSPlatform ("macos")]
- [SupportedOSPlatform ("tvos")]
-#endif
- public static class CVPixelFormatDescription {
+ public partial class CVPixelFormatDescription {
#if !COREBUILD
+#if !XAMCORE_5_0
+ [Obsolete ("Use 'CVPixelFormatKeys.Name' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString NameKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.Constant' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString ConstantKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.CodecType' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString CodecTypeKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.FourCCKey' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString FourCCKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.Planes' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString PlanesKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.BlockWidth' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString BlockWidthKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.BlockHeight' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString BlockHeightKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.BitsPerBlock' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString BitsPerBlockKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.BlockHorizontalAlignment' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString BlockHorizontalAlignmentKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.BlockVerticalAlignment' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString BlockVerticalAlignmentKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.BlackBlock' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString BlackBlockKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.HorizontalSubsampling' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString HorizontalSubsamplingKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.VerticalSubsampling' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString VerticalSubsamplingKey;
+ [Obsolete ("Use 'CVPixelFormatKeys.OpenGLFormat' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString OpenGLFormatKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.OpenGLType' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString OpenGLTypeKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.OpenGLInternalFormat' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString OpenGLInternalFormatKey;
+ [Obsolete ("Use 'CVPixelFormatKeys.CGBitmapInfo' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString CGBitmapInfoKey;
+ [Obsolete ("Use 'CVPixelFormatKeys.QDCompatibility' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString QDCompatibilityKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.CGBitmapContextCompatibility' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString CGBitmapContextCompatibilityKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.CGImageCompatibility' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString CGImageCompatibilityKey;
+
+ [Obsolete ("Use 'CVPixelFormatKeys.OpenGLCompatibility' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString OpenGLCompatibilityKey;
+ [Obsolete ("Use 'CVPixelFormatKeys.FillExtendedPixelsCallback' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString FillExtendedPixelsCallbackKey;
-#if NET
- [SupportedOSPlatform ("ios")]
- [SupportedOSPlatform ("macos")]
- [SupportedOSPlatform ("maccatalyst")]
- [SupportedOSPlatform ("tvos")]
-#endif
+ [Obsolete ("Use 'CVPixelFormatKeys.ContainsRgb' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString ContainsRgb;
-#if NET
- [SupportedOSPlatform ("ios")]
- [SupportedOSPlatform ("macos")]
- [SupportedOSPlatform ("maccatalyst")]
- [SupportedOSPlatform ("tvos")]
-#endif
+
+ [Obsolete ("Use 'CVPixelFormatKeys.ContainsYCbCr' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString ContainsYCbCr;
-#if NET
- [SupportedOSPlatform ("ios")]
- [SupportedOSPlatform ("macos")]
- [SupportedOSPlatform ("maccatalyst")]
- [SupportedOSPlatform ("tvos")]
-#endif
+ [Obsolete ("Use 'CVPixelFormatKeys.ComponentRange' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString ComponentRangeKey;
-#if NET
- [SupportedOSPlatform ("ios")]
- [SupportedOSPlatform ("macos")]
- [SupportedOSPlatform ("maccatalyst")]
- [SupportedOSPlatform ("tvos")]
-#endif
+
+ [Obsolete ("Use 'CVPixelFormatComponentRangeKeys.FullRange' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString ComponentRangeFullRangeKey;
-#if NET
- [SupportedOSPlatform ("ios")]
- [SupportedOSPlatform ("macos")]
- [SupportedOSPlatform ("maccatalyst")]
- [SupportedOSPlatform ("tvos")]
-#endif
+
+ [Obsolete ("Use 'CVPixelFormatComponentRangeKeys.VideoRange' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString ComponentRangeVideoRangeKey;
-#if NET
- [SupportedOSPlatform ("ios")]
- [SupportedOSPlatform ("macos")]
- [SupportedOSPlatform ("maccatalyst")]
- [SupportedOSPlatform ("tvos")]
-#endif
+
+ [Obsolete ("Use 'CVPixelFormatComponentRangeKeys.WideRange' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
public static readonly NSString ComponentRangeWideRangeKey;
+ [Obsolete ("Use 'CVPixelFormatKeys.ContainsGrayscale' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
#if NET
[SupportedOSPlatform ("ios12.0")]
[SupportedOSPlatform ("tvos12.0")]
@@ -126,6 +168,8 @@ public static class CVPixelFormatDescription {
#endif
public static readonly NSString ContainsGrayscaleKey;
+ [Obsolete ("Use 'CVPixelFormatKeys.ContainsSenselArray' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
#if NET
[SupportedOSPlatform ("ios16.0")]
[SupportedOSPlatform ("maccatalyst16.0")]
@@ -135,61 +179,75 @@ public static class CVPixelFormatDescription {
[Mac (13, 0), iOS (16, 0), TV (16, 0), MacCatalyst (16, 0)]
#endif
public static readonly NSString ContainsSenselArray;
+#endif // !XAMCORE_5_0
+#if !XAMCORE_5_0
static CVPixelFormatDescription ()
{
- var handle = Libraries.CoreVideo.Handle;
- NameKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatName")!;
- ConstantKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatConstant")!;
- CodecTypeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatCodecType")!;
- FourCCKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatFourCC")!;
- PlanesKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatPlanes")!;
- BlockWidthKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlockWidth")!;
- BlockHeightKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlockHeight")!;
- BitsPerBlockKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBitsPerBlock")!;
- BlockHorizontalAlignmentKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlockHorizontalAlignment")!;
- BlockVerticalAlignmentKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlockVerticalAlignment")!;
- BlackBlockKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatBlackBlock")!;
- HorizontalSubsamplingKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatHorizontalSubsampling")!;
- VerticalSubsamplingKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatVerticalSubsampling")!;
- OpenGLFormatKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatOpenGLFormat")!;
- OpenGLTypeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatOpenGLType")!;
- OpenGLInternalFormatKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatOpenGLInternalFormat")!;
- CGBitmapInfoKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatCGBitmapInfo")!;
- QDCompatibilityKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatQDCompatibility")!;
- CGBitmapContextCompatibilityKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatCGBitmapContextCompatibility")!;
- CGImageCompatibilityKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatCGImageCompatibility")!;
- OpenGLCompatibilityKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatOpenGLCompatibility")!;
- FillExtendedPixelsCallbackKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatFillExtendedPixelsCallback")!;
+ NameKey = CVPixelFormatKeys.Name;
+ ConstantKey = CVPixelFormatKeys.Constant;
+ CodecTypeKey = CVPixelFormatKeys.CodecType;
+ FourCCKey = CVPixelFormatKeys.FourCC;
+ PlanesKey = CVPixelFormatKeys.Planes;
+ BlockWidthKey = CVPixelFormatKeys.BlockWidth;
+ BlockHeightKey = CVPixelFormatKeys.BlockHeight;
+ BitsPerBlockKey = CVPixelFormatKeys.BitsPerBlock;
+ BlockHorizontalAlignmentKey = CVPixelFormatKeys.BlockHorizontalAlignment;
+ BlockVerticalAlignmentKey = CVPixelFormatKeys.BlockVerticalAlignment;
+ BlackBlockKey = CVPixelFormatKeys.BlackBlock;
+ HorizontalSubsamplingKey = CVPixelFormatKeys.HorizontalSubsampling;
+ VerticalSubsamplingKey = CVPixelFormatKeys.VerticalSubsampling;
+ OpenGLFormatKey = CVPixelFormatKeys.OpenGLFormat;
+ OpenGLTypeKey = CVPixelFormatKeys.OpenGLType;
+ OpenGLInternalFormatKey = CVPixelFormatKeys.OpenGLInternalFormat;
+ CGBitmapInfoKey = CVPixelFormatKeys.CGBitmapInfo;
+ QDCompatibilityKey = CVPixelFormatKeys.QDCompatibility;
+ CGBitmapContextCompatibilityKey = CVPixelFormatKeys.CGBitmapContextCompatibility;
+ CGImageCompatibilityKey = CVPixelFormatKeys.CGImageCompatibility;
+ OpenGLCompatibilityKey = CVPixelFormatKeys.OpenGLCompatibility;
+ FillExtendedPixelsCallbackKey = CVPixelFormatKeys.FillExtendedPixelsCallback;
//iOS8 only
- ContainsRgb = Dlfcn.GetStringConstant (handle, "kCVPixelFormatContainsRGB")!;
- ContainsYCbCr = Dlfcn.GetStringConstant (handle, "kCVPixelFormatContainsYCbCr")!;
+ ContainsRgb = CVPixelFormatKeys.ContainsRgb;
+ ContainsYCbCr = CVPixelFormatKeys.ContainsYCbCr;
//iOS9 only
- ComponentRangeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatComponentRange")!;
- ComponentRangeFullRangeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatComponentRange_FullRange")!;
- ComponentRangeVideoRangeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatComponentRange_VideoRange")!;
- ComponentRangeWideRangeKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatComponentRange_WideRange")!;
+ ComponentRangeKey = CVPixelFormatKeys.ComponentRange;
+ ComponentRangeFullRangeKey = CVPixelFormatComponentRangeKeys.FullRange;
+ ComponentRangeVideoRangeKey = CVPixelFormatComponentRangeKeys.VideoRange;
+ ComponentRangeWideRangeKey = CVPixelFormatComponentRangeKeys.WideRange;
// Xcode 10
- ContainsGrayscaleKey = Dlfcn.GetStringConstant (handle, "kCVPixelFormatContainsGrayscale")!;
+ ContainsGrayscaleKey = CVPixelFormatKeys.ContainsGrayscale;
// Xcode 14
- ContainsSenselArray = Dlfcn.GetStringConstant (handle, "kCVPixelFormatContainsSenselArray")!;
+ ContainsSenselArray = CVPixelFormatKeys.ContainsSenselArray;
}
+#endif
// note: bad documentation, ref: https://bugzilla.xamarin.com/show_bug.cgi?id=13917
[DllImport (Constants.CoreVideoLibrary)]
extern static/* CFArrayRef __nullable */ IntPtr CVPixelFormatDescriptionArrayCreateWithAllPixelFormatTypes (
/* CFAllocatorRef __nullable */ IntPtr allocator);
+ /// Get all the known pixel format types.
public static NSNumber [] AllTypes {
get {
return NSArray.ArrayFromHandle (CVPixelFormatDescriptionArrayCreateWithAllPixelFormatTypes (IntPtr.Zero));
}
}
+ /// Get all the known pixel format types.
+ public static CVPixelFormatType [] AllPixelFormatTypes {
+ get {
+ var all = AllTypes;
+ var rv = new CVPixelFormatType [all.Length];
+ for (var i = 0; i < rv.Length; i++)
+ rv [i] = (CVPixelFormatType) all [i].Int32Value;
+ return rv;
+ }
+ }
+
[DllImport (Constants.CoreVideoLibrary)]
extern static /* CFDictionaryRef __nullable */ IntPtr CVPixelFormatDescriptionCreateWithPixelFormatType (
/* CFAllocatorRef __nullable */ IntPtr allocator, int /* OSType = int32_t */ pixelFormat);
@@ -201,11 +259,23 @@ public static NSNumber [] AllTypes {
}
#endif
+ /// Create a description of the specified pixel format.
+ /// The pixel format to create a description of.
public static NSDictionary? Create (CVPixelFormatType pixelFormat)
{
return Runtime.GetNSObject (CVPixelFormatDescriptionCreateWithPixelFormatType (IntPtr.Zero, (int) pixelFormat));
}
+ /// Create a description of the specified pixel format.
+ /// The pixel format to create a description of.
+ public static CVPixelFormatDescription? CreatePixelFormat (CVPixelFormatType pixelFormat)
+ {
+ var dict = Create (pixelFormat);
+ if (dict is null)
+ return null;
+ return new CVPixelFormatDescription (dict);
+ }
+
[DllImport (Constants.CoreVideoLibrary)]
extern static void CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType (
/* CFDictionaryRef __nonnull */ IntPtr description, int /* OSType = int32_t */ pixelFormat);
@@ -220,6 +290,9 @@ public static void Register (NSDictionary description, int pixelFormat)
}
#endif
+ /// Register a new pixel format with CoreVideo.
+ /// The pixel format description for the pixel format to register.
+ /// The pixel format to register.
public static void Register (NSDictionary description, CVPixelFormatType pixelFormat)
{
if (description is null)
@@ -227,6 +300,74 @@ public static void Register (NSDictionary description, CVPixelFormatType pixelFo
CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType (description.Handle, (int) pixelFormat);
}
+
+ /// Register a new pixel format with CoreVideo.
+ /// The pixel format description for the pixel format to register.
+ /// The pixel format to register.
+ public static void Register (CVPixelFormatDescription description, CVPixelFormatType pixelFormat)
+ {
+ Register (description?.Dictionary!, pixelFormat);
+ }
+
+#if NET
+ [SupportedOSPlatform ("macos12.0")]
+ [SupportedOSPlatform ("tvos15.0")]
+ [SupportedOSPlatform ("ios15.0")]
+ [SupportedOSPlatform ("maccatalyst15.0")]
+#else
+ [iOS (15, 0), MacCatalyst (15, 0), TV (15, 0), Mac (12, 0), Watch (8, 0)]
+#endif
+ [DllImport (Constants.CoreVideoLibrary)]
+ extern static byte CVIsCompressedPixelFormatAvailable (int /* OSType = int32_t */ pixelFormat);
+
+ /// Check if the specified pixel format is supported on this platform.
+ /// The pixel format to check.
+ /// Whether the specified pixel format is supported or not.
+#if NET
+ [SupportedOSPlatform ("macos12.0")]
+ [SupportedOSPlatform ("tvos15.0")]
+ [SupportedOSPlatform ("ios15.0")]
+ [SupportedOSPlatform ("maccatalyst15.0")]
+#else
+ [iOS (15, 0), MacCatalyst (15, 0), TV (15, 0), Mac (12, 0), Watch (8, 0)]
+#endif
+ public static bool IsPixelFormatAvailable (CVPixelFormatType pixelFormat)
+ {
+ return CVIsCompressedPixelFormatAvailable ((int) pixelFormat) != 0;
+ }
+
+#if NET
+ [SupportedOSPlatform ("ios")]
+ [SupportedOSPlatform ("maccatalyst")]
+ [SupportedOSPlatform ("macos")]
+ [SupportedOSPlatform ("tvos")]
+ public CVFillExtendedPixelsCallBackDataStruct? FillExtendedPixelsCallbackStruct {
+ get {
+ var data = FillExtendedPixelsCallback;
+ if (data is null)
+ return null;
+ var bytes = data.ToArray ();
+ unsafe {
+ if (bytes.Length < sizeof (CVFillExtendedPixelsCallBackDataStruct))
+ throw new InvalidOperationException ($"The size of the callback data structure is smaller than expected (got {bytes.Length} bytes, expected at least {sizeof (CVFillExtendedPixelsCallBackDataStruct)} bytes)");
+ fixed (byte *ptr = bytes)
+ return Marshal.PtrToStructure ((IntPtr) ptr);
+ }
+ }
+ set {
+ if (value is null) {
+ FillExtendedPixelsCallback = null;
+ return;
+ }
+ NSData data;
+ CVFillExtendedPixelsCallBackDataStruct v = value.Value;
+ unsafe {
+ data = NSData.FromBytes ((IntPtr) (&v), (nuint) sizeof (CVFillExtendedPixelsCallBackDataStruct));
+ }
+ FillExtendedPixelsCallback = data;
+ }
+ }
+#endif
#endif // !COREBUILD
}
}
diff --git a/src/CoreVideo/CoreVideo.cs b/src/CoreVideo/CoreVideo.cs
index 9080389ab975..d3e34b6d80e1 100644
--- a/src/CoreVideo/CoreVideo.cs
+++ b/src/CoreVideo/CoreVideo.cs
@@ -118,6 +118,7 @@ public struct CVSMPTETime {
public Int16 Frames;
}
+#if !XAMCORE_5_0
#if NET
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
@@ -131,4 +132,32 @@ public struct CVFillExtendedPixelsCallBackData {
}
public delegate bool CVFillExtendedPixelsCallBack (IntPtr pixelBuffer, IntPtr refCon);
+#endif // !XAMCORE_5_0
+
+#if NET
+ [SupportedOSPlatform ("ios")]
+ [SupportedOSPlatform ("maccatalyst")]
+ [SupportedOSPlatform ("macos")]
+ [SupportedOSPlatform ("tvos")]
+#if XAMCORE_5_0
+ public unsafe struct CVFillExtendedPixelsCallBackData {
+#else
+ [NativeName ("CVFillExtendedPixelsCallBackData")]
+ public unsafe struct CVFillExtendedPixelsCallBackDataStruct {
+#endif
+ public nint /* CFIndex */ Version;
+ public delegate* unmanaged FillCallBack;
+ public IntPtr UserInfo;
+#if !COREBUILD
+ public unsafe bool CallFillCallback (CVPixelBuffer buffer)
+ {
+ if (FillCallBack is null)
+ throw new InvalidOperationException ($"The callback is null.");
+ var rv = FillCallBack (buffer.GetCheckedHandle (), UserInfo);
+ return rv != 0;
+ }
+#endif
+ }
+#endif
+
}
diff --git a/src/corevideo.cs b/src/corevideo.cs
index a2d1037fb570..46b5f699b921 100644
--- a/src/corevideo.cs
+++ b/src/corevideo.cs
@@ -6,6 +6,8 @@
//
using System;
+
+using CoreGraphics;
using Foundation;
using ObjCRuntime;
#if !WATCH
@@ -568,4 +570,202 @@ public enum CVVersatileBayerPattern : uint {
Gbrg = 2,
Bggr = 3,
}
+
+ [Partial]
+ interface CVPixelFormatKeys {
+ [Field ("kCVPixelFormatName")]
+ NSString Name { get; }
+
+ [Field ("kCVPixelFormatConstant")]
+ NSString Constant { get; }
+
+ [Field ("kCVPixelFormatCodecType")]
+ NSString CodecType { get; }
+
+ [Field ("kCVPixelFormatFourCC")]
+ NSString FourCC { get; }
+
+ [Field ("kCVPixelFormatContainsAlpha")]
+ NSString ContainsAlpha { get; }
+
+ [Field ("kCVPixelFormatContainsYCbCr")]
+ NSString ContainsYCbCr { get; }
+
+ [Field ("kCVPixelFormatContainsRGB")]
+ NSString ContainsRgb { get; }
+
+ [Field ("kCVPixelFormatContainsGrayscale")]
+ NSString ContainsGrayscale { get; }
+
+ [iOS (16, 0), Mac (13, 0), MacCatalyst (16, 0), TV (16, 0), Watch (9, 0)]
+ [Field ("kCVPixelFormatContainsSenselArray")]
+ NSString ContainsSenselArray { get; }
+
+ [Field ("kCVPixelFormatComponentRange")]
+ NSString ComponentRange { get; }
+
+ [Field ("kCVPixelFormatPlanes")]
+ NSString Planes { get; }
+
+ [Field ("kCVPixelFormatBlockWidth")]
+ NSString BlockWidth { get; }
+
+ [Field ("kCVPixelFormatBlockHeight")]
+ NSString BlockHeight { get; }
+
+ [Field ("kCVPixelFormatBitsPerBlock")]
+ NSString BitsPerBlock { get; }
+
+ [Field ("kCVPixelFormatBlockHorizontalAlignment")]
+ NSString BlockHorizontalAlignment { get; }
+
+ [Field ("kCVPixelFormatBlockVerticalAlignment")]
+ NSString BlockVerticalAlignment { get; }
+
+ [Field ("kCVPixelFormatBlackBlock")]
+ NSString BlackBlock { get; }
+
+ [Field ("kCVPixelFormatHorizontalSubsampling")]
+ NSString HorizontalSubsampling { get; }
+
+ [Field ("kCVPixelFormatVerticalSubsampling")]
+ NSString VerticalSubsampling { get; }
+
+ [Field ("kCVPixelFormatOpenGLFormat")]
+ NSString OpenGLFormat { get; }
+
+ [Field ("kCVPixelFormatOpenGLType")]
+ NSString OpenGLType { get; }
+
+ [Field ("kCVPixelFormatOpenGLInternalFormat")]
+ NSString OpenGLInternalFormat { get; }
+
+ [Field ("kCVPixelFormatCGBitmapInfo")]
+ NSString CGBitmapInfo { get; }
+
+ [Field ("kCVPixelFormatQDCompatibility")]
+ NSString QDCompatibility { get; }
+
+ [Field ("kCVPixelFormatCGBitmapContextCompatibility")]
+ NSString CGBitmapContextCompatibility { get; }
+
+ [Field ("kCVPixelFormatCGImageCompatibility")]
+ NSString CGImageCompatibility { get; }
+
+ [Field ("kCVPixelFormatOpenGLCompatibility")]
+ NSString OpenGLCompatibility { get; }
+
+ [NoWatch, NoMacCatalyst, NoMac]
+ [Field ("kCVPixelFormatOpenGLESCompatibility")]
+ NSString OpenGlesCompatibility { get; }
+
+ [Field ("kCVPixelFormatFillExtendedPixelsCallback")]
+ NSString FillExtendedPixelsCallback { get; }
+ }
+
+ [Partial]
+ interface CVPixelFormatComponentRangeKeys {
+ [Field ("kCVPixelFormatComponentRange_VideoRange")]
+ NSString VideoRange { get; }
+
+ [Field ("kCVPixelFormatComponentRange_FullRange")]
+ NSString FullRange { get; }
+
+ [Field ("kCVPixelFormatComponentRange_WideRange")]
+ NSString WideRange { get; }
+ }
+
+
+ [StrongDictionary ("CVPixelFormatComponentRangeKeys", Suffix = "")]
+ interface CVPixelFormatComponentRange {
+ // there's no documentation about the type, so binding as NSObject
+ NSObject VideoRange { get; set; }
+
+ // there's no documentation about the type, so binding as NSObject
+ NSObject FullRange { get; set; }
+
+ // there's no documentation about the type, so binding as NSObject
+ NSObject WideRange { get; set; }
+ }
+
+ [StrongDictionary ("CVPixelFormatKeys", Suffix = "")]
+ interface CVPixelFormatDescription {
+ string Name { get; set; }
+
+ CVPixelFormatType Constant { get; set; }
+
+ // Documentation says 'CFString', but it also says 'CFString' about another property which clearly isn't, so I don't trust the documentation.
+ // Headers don't say, and tests don't show anything useful, there are no hits on Google for the underlying field, so leaving this typed as 'NSObject'.
+ NSObject CodecType { get; set; }
+
+ int FourCC { get; set; }
+
+ bool ContainsAlpha { get; set; }
+
+#if XAMCORE_5_0
+ bool ContainsYCbCr { get; set; }
+#else
+ [Export ("ContainsYCbCr")]
+ bool FormatContainsYCbCr { get; set; }
+#endif
+
+#if XAMCORE_5_0
+ bool ContainsRgb { get; set; }
+#else
+ [Export ("ContainsRgb")]
+ bool FormatContainsRgb { get; set; }
+#endif
+
+ bool ContainsGrayscale { get; set; }
+
+ [iOS (16, 0), Mac (13, 0), MacCatalyst (16, 0), TV (16, 0), Watch (9, 0)]
+#if XAMCORE_5_0
+ bool ContainsSenselArray { get; set; }
+#else
+ [Export ("ContainsSenselArray")]
+ bool FormatContainsSenselArray { get; set; }
+#endif
+
+ CVPixelFormatComponentRange ComponentRange { get; set; }
+
+ // This can be an array of dictionaries, or a single dictionary when there's only one plane, so we have to type as 'NSObject'.
+ NSObject Planes { get; set; }
+
+ int BlockWidth { get; set; }
+
+ int BlockHeight { get; set; }
+
+ int BitsPerBlock { get; set; }
+
+ int BlockHorizontalAlignment { get; set; }
+
+ int BlockVerticalAlignment { get; set; }
+
+ NSData BlackBlock { get; set; }
+
+ int HorizontalSubsampling { get; set; }
+
+ int VerticalSubsampling { get; set; }
+
+ int OpenGLFormat { get; set; }
+
+ int OpenGLType { get; set; }
+
+ int OpenGLInternalFormat { get; set; }
+
+ CGBitmapFlags CGBitmapInfo { get; set; }
+
+ bool QDCompatibility { get; set; }
+
+ bool CGBitmapContextCompatibility { get; set; }
+
+ bool CGImageCompatibility { get; set; }
+
+ bool OpenGLCompatibility { get; set; }
+
+ [NoWatch, NoMacCatalyst, NoMac]
+ bool OpenGlesCompatibility { get; set; }
+
+ NSData FillExtendedPixelsCallback { get; set; }
+ }
}
diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt
index 7f9c0e6b7599..c7e34f1a707f 100644
--- a/tests/cecil-tests/Documentation.KnownFailures.txt
+++ b/tests/cecil-tests/Documentation.KnownFailures.txt
@@ -8396,6 +8396,9 @@ F:CoreVideo.CVAttachmentMode.ShouldPropagate
F:CoreVideo.CVFillExtendedPixelsCallBackData.FillCallBack
F:CoreVideo.CVFillExtendedPixelsCallBackData.UserInfo
F:CoreVideo.CVFillExtendedPixelsCallBackData.Version
+F:CoreVideo.CVFillExtendedPixelsCallBackDataStruct.FillCallBack
+F:CoreVideo.CVFillExtendedPixelsCallBackDataStruct.UserInfo
+F:CoreVideo.CVFillExtendedPixelsCallBackDataStruct.Version
F:CoreVideo.CVImageBufferAlphaChannelMode.Premultiplied
F:CoreVideo.CVImageBufferAlphaChannelMode.Straight
F:CoreVideo.CVImageBufferColorPrimaries.DciP3
@@ -8427,36 +8430,6 @@ F:CoreVideo.CVOptionFlags.None
F:CoreVideo.CVPixelBufferLock.None
F:CoreVideo.CVPixelBufferLock.ReadOnly
F:CoreVideo.CVPixelBufferPoolFlushFlags.FlushExcessBuffers
-F:CoreVideo.CVPixelFormatDescription.BitsPerBlockKey
-F:CoreVideo.CVPixelFormatDescription.BlackBlockKey
-F:CoreVideo.CVPixelFormatDescription.BlockHeightKey
-F:CoreVideo.CVPixelFormatDescription.BlockHorizontalAlignmentKey
-F:CoreVideo.CVPixelFormatDescription.BlockVerticalAlignmentKey
-F:CoreVideo.CVPixelFormatDescription.BlockWidthKey
-F:CoreVideo.CVPixelFormatDescription.CGBitmapContextCompatibilityKey
-F:CoreVideo.CVPixelFormatDescription.CGBitmapInfoKey
-F:CoreVideo.CVPixelFormatDescription.CGImageCompatibilityKey
-F:CoreVideo.CVPixelFormatDescription.CodecTypeKey
-F:CoreVideo.CVPixelFormatDescription.ComponentRangeFullRangeKey
-F:CoreVideo.CVPixelFormatDescription.ComponentRangeKey
-F:CoreVideo.CVPixelFormatDescription.ComponentRangeVideoRangeKey
-F:CoreVideo.CVPixelFormatDescription.ComponentRangeWideRangeKey
-F:CoreVideo.CVPixelFormatDescription.ConstantKey
-F:CoreVideo.CVPixelFormatDescription.ContainsGrayscaleKey
-F:CoreVideo.CVPixelFormatDescription.ContainsRgb
-F:CoreVideo.CVPixelFormatDescription.ContainsSenselArray
-F:CoreVideo.CVPixelFormatDescription.ContainsYCbCr
-F:CoreVideo.CVPixelFormatDescription.FillExtendedPixelsCallbackKey
-F:CoreVideo.CVPixelFormatDescription.FourCCKey
-F:CoreVideo.CVPixelFormatDescription.HorizontalSubsamplingKey
-F:CoreVideo.CVPixelFormatDescription.NameKey
-F:CoreVideo.CVPixelFormatDescription.OpenGLCompatibilityKey
-F:CoreVideo.CVPixelFormatDescription.OpenGLFormatKey
-F:CoreVideo.CVPixelFormatDescription.OpenGLInternalFormatKey
-F:CoreVideo.CVPixelFormatDescription.OpenGLTypeKey
-F:CoreVideo.CVPixelFormatDescription.PlanesKey
-F:CoreVideo.CVPixelFormatDescription.QDCompatibilityKey
-F:CoreVideo.CVPixelFormatDescription.VerticalSubsamplingKey
F:CoreVideo.CVPixelFormatType.Argb2101010LEPacked
F:CoreVideo.CVPixelFormatType.CV128RGBAFloat
F:CoreVideo.CVPixelFormatType.CV14BayerBggr
@@ -33176,6 +33149,7 @@ M:CoreVideo.CVDisplayLink.SetOutputCallback(CoreVideo.CVDisplayLink.DisplayLinkO
M:CoreVideo.CVDisplayLink.Start
M:CoreVideo.CVDisplayLink.Stop
M:CoreVideo.CVDisplayLink.TryTranslateTime(CoreVideo.CVTimeStamp,CoreVideo.CVTimeStamp@)
+M:CoreVideo.CVFillExtendedPixelsCallBackDataStruct.CallFillCallback(CoreVideo.CVPixelBuffer)
M:CoreVideo.CVImageBuffer.CreateFrom(Foundation.NSDictionary)
M:CoreVideo.CVImageBuffer.GetCodePoint(CoreVideo.CVImageBufferColorPrimaries)
M:CoreVideo.CVImageBuffer.GetCodePoint(CoreVideo.CVImageBufferTransferFunction)
@@ -33227,8 +33201,12 @@ M:CoreVideo.CVPixelBufferPoolAllocationSettings.#ctor
M:CoreVideo.CVPixelBufferPoolAllocationSettings.#ctor(Foundation.NSDictionary)
M:CoreVideo.CVPixelBufferPoolSettings.#ctor
M:CoreVideo.CVPixelBufferPoolSettings.#ctor(Foundation.NSDictionary)
-M:CoreVideo.CVPixelFormatDescription.Create(CoreVideo.CVPixelFormatType)
-M:CoreVideo.CVPixelFormatDescription.Register(Foundation.NSDictionary,CoreVideo.CVPixelFormatType)
+M:CoreVideo.CVPixelFormatComponentRange.#ctor
+M:CoreVideo.CVPixelFormatComponentRange.#ctor(Foundation.NSDictionary)
+M:CoreVideo.CVPixelFormatComponentRangeKeys.#ctor
+M:CoreVideo.CVPixelFormatDescription.#ctor
+M:CoreVideo.CVPixelFormatDescription.#ctor(Foundation.NSDictionary)
+M:CoreVideo.CVPixelFormatKeys.#ctor
M:CoreVideo.CVPixelFormatTypeExtensions.IsCompressedPixelFormatAvailable(CoreVideo.CVPixelFormatType)
M:CoreVideo.CVTime.Equals(System.Object)
M:CoreVideo.CVTime.GetCurrentHostTime
@@ -63502,7 +63480,71 @@ P:CoreVideo.CVPixelBufferPool.TypeID
P:CoreVideo.CVPixelBufferPoolAllocationSettings.Threshold
P:CoreVideo.CVPixelBufferPoolSettings.MaximumBufferAgeInSeconds
P:CoreVideo.CVPixelBufferPoolSettings.MinimumBufferCount
-P:CoreVideo.CVPixelFormatDescription.AllTypes
+P:CoreVideo.CVPixelFormatComponentRange.FullRange
+P:CoreVideo.CVPixelFormatComponentRange.VideoRange
+P:CoreVideo.CVPixelFormatComponentRange.WideRange
+P:CoreVideo.CVPixelFormatComponentRangeKeys.FullRange
+P:CoreVideo.CVPixelFormatComponentRangeKeys.VideoRange
+P:CoreVideo.CVPixelFormatComponentRangeKeys.WideRange
+P:CoreVideo.CVPixelFormatDescription.BitsPerBlock
+P:CoreVideo.CVPixelFormatDescription.BlackBlock
+P:CoreVideo.CVPixelFormatDescription.BlockHeight
+P:CoreVideo.CVPixelFormatDescription.BlockHorizontalAlignment
+P:CoreVideo.CVPixelFormatDescription.BlockVerticalAlignment
+P:CoreVideo.CVPixelFormatDescription.BlockWidth
+P:CoreVideo.CVPixelFormatDescription.CGBitmapContextCompatibility
+P:CoreVideo.CVPixelFormatDescription.CGBitmapInfo
+P:CoreVideo.CVPixelFormatDescription.CGImageCompatibility
+P:CoreVideo.CVPixelFormatDescription.CodecType
+P:CoreVideo.CVPixelFormatDescription.ComponentRange
+P:CoreVideo.CVPixelFormatDescription.Constant
+P:CoreVideo.CVPixelFormatDescription.ContainsAlpha
+P:CoreVideo.CVPixelFormatDescription.ContainsGrayscale
+P:CoreVideo.CVPixelFormatDescription.FillExtendedPixelsCallback
+P:CoreVideo.CVPixelFormatDescription.FillExtendedPixelsCallbackStruct
+P:CoreVideo.CVPixelFormatDescription.FormatContainsRgb
+P:CoreVideo.CVPixelFormatDescription.FormatContainsSenselArray
+P:CoreVideo.CVPixelFormatDescription.FormatContainsYCbCr
+P:CoreVideo.CVPixelFormatDescription.FourCC
+P:CoreVideo.CVPixelFormatDescription.HorizontalSubsampling
+P:CoreVideo.CVPixelFormatDescription.Name
+P:CoreVideo.CVPixelFormatDescription.OpenGLCompatibility
+P:CoreVideo.CVPixelFormatDescription.OpenGlesCompatibility
+P:CoreVideo.CVPixelFormatDescription.OpenGLFormat
+P:CoreVideo.CVPixelFormatDescription.OpenGLInternalFormat
+P:CoreVideo.CVPixelFormatDescription.OpenGLType
+P:CoreVideo.CVPixelFormatDescription.Planes
+P:CoreVideo.CVPixelFormatDescription.QDCompatibility
+P:CoreVideo.CVPixelFormatDescription.VerticalSubsampling
+P:CoreVideo.CVPixelFormatKeys.BitsPerBlock
+P:CoreVideo.CVPixelFormatKeys.BlackBlock
+P:CoreVideo.CVPixelFormatKeys.BlockHeight
+P:CoreVideo.CVPixelFormatKeys.BlockHorizontalAlignment
+P:CoreVideo.CVPixelFormatKeys.BlockVerticalAlignment
+P:CoreVideo.CVPixelFormatKeys.BlockWidth
+P:CoreVideo.CVPixelFormatKeys.CGBitmapContextCompatibility
+P:CoreVideo.CVPixelFormatKeys.CGBitmapInfo
+P:CoreVideo.CVPixelFormatKeys.CGImageCompatibility
+P:CoreVideo.CVPixelFormatKeys.CodecType
+P:CoreVideo.CVPixelFormatKeys.ComponentRange
+P:CoreVideo.CVPixelFormatKeys.Constant
+P:CoreVideo.CVPixelFormatKeys.ContainsAlpha
+P:CoreVideo.CVPixelFormatKeys.ContainsGrayscale
+P:CoreVideo.CVPixelFormatKeys.ContainsRgb
+P:CoreVideo.CVPixelFormatKeys.ContainsSenselArray
+P:CoreVideo.CVPixelFormatKeys.ContainsYCbCr
+P:CoreVideo.CVPixelFormatKeys.FillExtendedPixelsCallback
+P:CoreVideo.CVPixelFormatKeys.FourCC
+P:CoreVideo.CVPixelFormatKeys.HorizontalSubsampling
+P:CoreVideo.CVPixelFormatKeys.Name
+P:CoreVideo.CVPixelFormatKeys.OpenGLCompatibility
+P:CoreVideo.CVPixelFormatKeys.OpenGlesCompatibility
+P:CoreVideo.CVPixelFormatKeys.OpenGLFormat
+P:CoreVideo.CVPixelFormatKeys.OpenGLInternalFormat
+P:CoreVideo.CVPixelFormatKeys.OpenGLType
+P:CoreVideo.CVPixelFormatKeys.Planes
+P:CoreVideo.CVPixelFormatKeys.QDCompatibility
+P:CoreVideo.CVPixelFormatKeys.VerticalSubsampling
P:CoreVideo.CVTime.Flags
P:CoreVideo.CVTime.IndefiniteTime
P:CoreVideo.CVTime.ZeroTime
@@ -78853,6 +78895,7 @@ T:CoreVideo.CVDisplayLink
T:CoreVideo.CVDisplayLink.DisplayLinkOutputCallback
T:CoreVideo.CVFillExtendedPixelsCallBack
T:CoreVideo.CVFillExtendedPixelsCallBackData
+T:CoreVideo.CVFillExtendedPixelsCallBackDataStruct
T:CoreVideo.CVImageBufferAlphaChannelMode
T:CoreVideo.CVImageBufferColorPrimaries
T:CoreVideo.CVImageBufferTransferFunction
@@ -78861,7 +78904,10 @@ T:CoreVideo.CVMetalTexture
T:CoreVideo.CVMetalTextureAttributes
T:CoreVideo.CVPixelBufferAttributes
T:CoreVideo.CVPixelBufferPoolSettings
+T:CoreVideo.CVPixelFormatComponentRange
+T:CoreVideo.CVPixelFormatComponentRangeKeys
T:CoreVideo.CVPixelFormatDescription
+T:CoreVideo.CVPixelFormatKeys
T:CoreVideo.CVPixelFormatType
T:CoreVideo.CVPixelFormatTypeExtensions
T:CoreVideo.CVPlanarComponentInfo
diff --git a/tests/monotouch-test/CoreVideo/PixelFormatDescriptionTest.cs b/tests/monotouch-test/CoreVideo/PixelFormatDescriptionTest.cs
index 448baf25fb85..1426de2be924 100644
--- a/tests/monotouch-test/CoreVideo/PixelFormatDescriptionTest.cs
+++ b/tests/monotouch-test/CoreVideo/PixelFormatDescriptionTest.cs
@@ -10,7 +10,11 @@
#if !__WATCHOS__
using System;
+using System.IO;
+using System.Text;
+
using Foundation;
+using CoreGraphics;
using CoreVideo;
using ObjCRuntime;
using NUnit.Framework;
@@ -60,6 +64,54 @@ public void Register ()
Assert.NotNull (CVPixelFormatDescription.Create ((CVPixelFormatType) 3), "3b");
}
+
+#if NET
+ [Test]
+ public void CV32ARGB ()
+ {
+ Assert.Multiple (() => {
+ var pf = CVPixelFormatType.CV32ARGB;
+ var desc = CVPixelFormatDescription.CreatePixelFormat (pf);
+ Assert.IsNull (desc.Name, "Name");
+ Assert.AreEqual (pf, desc.Constant ?? ((CVPixelFormatType) 0xFFFFFFFF), "Constant");
+ Assert.IsNull (desc.CodecType, "CodecType");
+ Assert.IsNull (desc.FourCC, "FourCC");
+ Assert.AreEqual (true, desc.ContainsAlpha, "ContainsAlpha");
+ Assert.AreEqual (false, desc.FormatContainsYCbCr, "FormatContainsYCbCr");
+ Assert.AreEqual (true, desc.FormatContainsRgb, "FormatContainsRgb");
+ Assert.AreEqual (false, desc.ContainsGrayscale, "ContainsGrayscale");
+ if (TestRuntime.CheckXcodeVersion (14, 0))
+ Assert.IsNull (desc.FormatContainsSenselArray, "FormatContainsSenselArray");
+ Assert.IsNull (desc.ComponentRange, "ComponentRange");
+ Assert.IsNull (desc.Planes, "Planes");
+ Assert.IsNull (desc.BlockWidth, "BlockWidth");
+ Assert.IsNull (desc.BlockHeight, "BlockHeight");
+ Assert.AreEqual (32, desc.BitsPerBlock, "BitsPerBlock");
+ Assert.IsNull (desc.BlockHorizontalAlignment, "BlockHorizontalAlignment");
+ Assert.IsNull (desc.BlockVerticalAlignment, "BlockVerticalAlignment");
+ Assert.IsNotNull (desc.BlackBlock, "BlackBlock");
+ Assert.IsNull (desc.HorizontalSubsampling, "HorizontalSubsampling");
+ Assert.IsNull (desc.VerticalSubsampling, "VerticalSubsampling");
+#if (__IOS__ && !__MACCATALYST__) || __TVOS__
+ Assert.IsNull (desc.OpenGLFormat, "OpenGLFormat");
+ Assert.IsNull (desc.OpenGLType, "OpenGLType");
+ Assert.IsNull (desc.OpenGLInternalFormat, "OpenGLInternalFormat");
+ Assert.IsNull (desc.OpenGLCompatibility, "OpenGLCompatibility");
+#else
+ Assert.AreEqual (32993, desc.OpenGLFormat, "OpenGLFormat");
+ Assert.AreEqual (32821, desc.OpenGLType, "OpenGLType");
+ Assert.AreEqual (32856, desc.OpenGLInternalFormat, "OpenGLInternalFormat");
+ Assert.AreEqual (true, desc.OpenGLCompatibility, "OpenGLCompatibility");
+#endif
+ Assert.AreEqual (CGBitmapFlags.ByteOrder32Big | CGBitmapFlags.First, desc.CGBitmapInfo, "CGBitmapInfo");
+ Assert.AreEqual (true, desc.QDCompatibility, "QDCompatibility");
+ Assert.AreEqual (true, desc.CGBitmapContextCompatibility, "CGBitmapContextCompatibility");
+ Assert.AreEqual (true, desc.CGImageCompatibility, "CGImageCompatibility");
+ Assert.IsNotNull (desc.FillExtendedPixelsCallback, "FillExtendedPixelsCallback");
+ Assert.IsNotNull (desc.FillExtendedPixelsCallbackStruct, "FillExtendedPixelsCallbackStruct");
+ });
+ }
+#endif // NET
}
}
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-CoreVideo.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-CoreVideo.ignore
index c896fa3cbdc0..6ed54ca923b9 100644
--- a/tests/xtro-sharpie/api-annotations-dotnet/common-CoreVideo.ignore
+++ b/tests/xtro-sharpie/api-annotations-dotnet/common-CoreVideo.ignore
@@ -3,39 +3,6 @@
!missing-field! kCVIndefiniteTime not bound
!missing-field! kCVPixelBufferPoolFreeBufferNotification not bound
-## the following fields are manually bound in CVPixelFormatDescription.cs
-!missing-field! kCVPixelFormatBitsPerBlock not bound
-!missing-field! kCVPixelFormatBlackBlock not bound
-!missing-field! kCVPixelFormatBlockHeight not bound
-!missing-field! kCVPixelFormatBlockHorizontalAlignment not bound
-!missing-field! kCVPixelFormatBlockVerticalAlignment not bound
-!missing-field! kCVPixelFormatBlockWidth not bound
-!missing-field! kCVPixelFormatCGBitmapContextCompatibility not bound
-!missing-field! kCVPixelFormatCGBitmapInfo not bound
-!missing-field! kCVPixelFormatCGImageCompatibility not bound
-!missing-field! kCVPixelFormatCodecType not bound
-!missing-field! kCVPixelFormatComponentRange not bound
-!missing-field! kCVPixelFormatComponentRange_FullRange not bound
-!missing-field! kCVPixelFormatComponentRange_VideoRange not bound
-!missing-field! kCVPixelFormatComponentRange_WideRange not bound
-!missing-field! kCVPixelFormatConstant not bound
-!missing-field! kCVPixelFormatContainsAlpha not bound
-!missing-field! kCVPixelFormatContainsGrayscale not bound
-!missing-field! kCVPixelFormatContainsRGB not bound
-!missing-field! kCVPixelFormatContainsYCbCr not bound
-!missing-field! kCVPixelFormatFillExtendedPixelsCallback not bound
-!missing-field! kCVPixelFormatFourCC not bound
-!missing-field! kCVPixelFormatHorizontalSubsampling not bound
-!missing-field! kCVPixelFormatName not bound
-!missing-field! kCVPixelFormatOpenGLCompatibility not bound
-!missing-field! kCVPixelFormatOpenGLFormat not bound
-!missing-field! kCVPixelFormatOpenGLInternalFormat not bound
-!missing-field! kCVPixelFormatOpenGLType not bound
-!missing-field! kCVPixelFormatPlanes not bound
-!missing-field! kCVPixelFormatQDCompatibility not bound
-!missing-field! kCVPixelFormatVerticalSubsampling not bound
-!missing-field! kCVPixelFormatContainsSenselArray not bound
-
!missing-field! kCVZeroTime not bound
!missing-pinvoke! CVPixelBufferRelease is not bound
!missing-pinvoke! CVPixelBufferRetain is not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreVideo.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreVideo.ignore
index e9418f1287a8..a3fd156ac4a0 100644
--- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreVideo.ignore
+++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-CoreVideo.ignore
@@ -1,4 +1,3 @@
!missing-pinvoke! CVImageBufferCreateColorSpaceFromAttachments is not bound
!missing-field! kCVPixelBufferIOSurfaceOpenGLESFBOCompatibilityKey not bound
!missing-field! kCVPixelBufferIOSurfaceOpenGLESTextureCompatibilityKey not bound
-!missing-field! kCVPixelFormatOpenGLESCompatibility not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreVideo.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreVideo.ignore
index e9418f1287a8..a3fd156ac4a0 100644
--- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreVideo.ignore
+++ b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-CoreVideo.ignore
@@ -1,4 +1,3 @@
!missing-pinvoke! CVImageBufferCreateColorSpaceFromAttachments is not bound
!missing-field! kCVPixelBufferIOSurfaceOpenGLESFBOCompatibilityKey not bound
!missing-field! kCVPixelBufferIOSurfaceOpenGLESTextureCompatibilityKey not bound
-!missing-field! kCVPixelFormatOpenGLESCompatibility not bound
diff --git a/tests/xtro-sharpie/common-CoreVideo.ignore b/tests/xtro-sharpie/common-CoreVideo.ignore
index 918354e32440..0417b951f1dd 100644
--- a/tests/xtro-sharpie/common-CoreVideo.ignore
+++ b/tests/xtro-sharpie/common-CoreVideo.ignore
@@ -3,39 +3,6 @@
!missing-field! kCVIndefiniteTime not bound
!missing-field! kCVPixelBufferPoolFreeBufferNotification not bound
-## the following fields are manually bound in CVPixelFormatDescription.cs
-!missing-field! kCVPixelFormatBitsPerBlock not bound
-!missing-field! kCVPixelFormatBlackBlock not bound
-!missing-field! kCVPixelFormatBlockHeight not bound
-!missing-field! kCVPixelFormatBlockHorizontalAlignment not bound
-!missing-field! kCVPixelFormatBlockVerticalAlignment not bound
-!missing-field! kCVPixelFormatBlockWidth not bound
-!missing-field! kCVPixelFormatCGBitmapContextCompatibility not bound
-!missing-field! kCVPixelFormatCGBitmapInfo not bound
-!missing-field! kCVPixelFormatCGImageCompatibility not bound
-!missing-field! kCVPixelFormatCodecType not bound
-!missing-field! kCVPixelFormatComponentRange not bound
-!missing-field! kCVPixelFormatComponentRange_FullRange not bound
-!missing-field! kCVPixelFormatComponentRange_VideoRange not bound
-!missing-field! kCVPixelFormatComponentRange_WideRange not bound
-!missing-field! kCVPixelFormatConstant not bound
-!missing-field! kCVPixelFormatContainsAlpha not bound
-!missing-field! kCVPixelFormatContainsGrayscale not bound
-!missing-field! kCVPixelFormatContainsRGB not bound
-!missing-field! kCVPixelFormatContainsYCbCr not bound
-!missing-field! kCVPixelFormatFillExtendedPixelsCallback not bound
-!missing-field! kCVPixelFormatFourCC not bound
-!missing-field! kCVPixelFormatHorizontalSubsampling not bound
-!missing-field! kCVPixelFormatName not bound
-!missing-field! kCVPixelFormatOpenGLCompatibility not bound
-!missing-field! kCVPixelFormatOpenGLFormat not bound
-!missing-field! kCVPixelFormatOpenGLInternalFormat not bound
-!missing-field! kCVPixelFormatOpenGLType not bound
-!missing-field! kCVPixelFormatPlanes not bound
-!missing-field! kCVPixelFormatQDCompatibility not bound
-!missing-field! kCVPixelFormatVerticalSubsampling not bound
-!missing-field! kCVPixelFormatContainsSenselArray not bound
-
!missing-field! kCVZeroTime not bound
!missing-pinvoke! CVPixelBufferRelease is not bound
!missing-pinvoke! CVPixelBufferRetain is not bound
diff --git a/tests/xtro-sharpie/iOS-CoreVideo.ignore b/tests/xtro-sharpie/iOS-CoreVideo.ignore
index 1d0f65ee8b95..1285849da476 100644
--- a/tests/xtro-sharpie/iOS-CoreVideo.ignore
+++ b/tests/xtro-sharpie/iOS-CoreVideo.ignore
@@ -1,6 +1,5 @@
!missing-pinvoke! CVImageBufferCreateColorSpaceFromAttachments is not bound
!missing-field! kCVPixelBufferIOSurfaceOpenGLESFBOCompatibilityKey not bound
!missing-field! kCVPixelBufferIOSurfaceOpenGLESTextureCompatibilityKey not bound
-!missing-field! kCVPixelFormatOpenGLESCompatibility not bound
!missing-pinvoke! CVMetalTextureCacheGetTypeID is not bound
!missing-pinvoke! CVMetalTextureGetTypeID is not bound
diff --git a/tests/xtro-sharpie/tvOS-CoreVideo.ignore b/tests/xtro-sharpie/tvOS-CoreVideo.ignore
index 1d0f65ee8b95..1285849da476 100644
--- a/tests/xtro-sharpie/tvOS-CoreVideo.ignore
+++ b/tests/xtro-sharpie/tvOS-CoreVideo.ignore
@@ -1,6 +1,5 @@
!missing-pinvoke! CVImageBufferCreateColorSpaceFromAttachments is not bound
!missing-field! kCVPixelBufferIOSurfaceOpenGLESFBOCompatibilityKey not bound
!missing-field! kCVPixelBufferIOSurfaceOpenGLESTextureCompatibilityKey not bound
-!missing-field! kCVPixelFormatOpenGLESCompatibility not bound
!missing-pinvoke! CVMetalTextureCacheGetTypeID is not bound
!missing-pinvoke! CVMetalTextureGetTypeID is not bound