-
Notifications
You must be signed in to change notification settings - Fork 507
CoreML tvOS xcode14.0 beta1
#CoreML.framework https://github.com/xamarin/xamarin-macios/pull/15527
`` diff diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/CoreML.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/CoreML.h --- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/CoreML.h 2022-02-12 09:10:44.000000000 -0500 +++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/CoreML.h 2022-05-21 05:15:51.000000000 -0400 @@ -59,3 +59,4 @@
#import <CoreML/MLModelCollection.h> #import <CoreML/MLModelCollectionEntry.h> +#import <CoreML/MLModelAsset.h> diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLFeatureValue.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLFeatureValue.h --- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLFeatureValue.h 2022-02-23 07:10:38.000000000 -0500 +++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLFeatureValue.h 2022-06-03 18:07:31.000000000 -0400 @@ -73,6 +73,18 @@
+/*!
-
- @abstract Returns a Boolean value that indicates whether a feature value is equal to another.
-
-
- @discussion If the types of the MLFeatureValue objects "self" and "value" are integer in one case and
-
- double in the other (in either order) then those mixed mode numeric values are compared as NSNumbers.
-
- Otherwise if the types of the MLFeatureValue objects are different NO is returned.
-
- When "self" and "value" are both PixelBuffer MLFeatureValue types, only their CVPixelBufferRef values are compared for equality,
-
- the underlying arrays of pixelValues are not examined.
-
- [So, distinct PixelBuffer MLFeatureValue objects with distinct CVPixelBufferRef values which encapsulate the same array of pixels will compare not equal.]
-
- For all other (matching) MLFeatureValue types, the BOOL value returned is the result of comparing "self" with "value" via
-
- isEqualToNumber:, isEqualToString:, isEqualtoDictionary:, isEqualToMultiArray:, isEqualToArray: as chosen by the MLFeatureValue types.
- */
- (BOOL)isEqualToFeatureValue:(MLFeatureValue *)value;
@end diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModel+MLModelCompilation.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModel+MLModelCompilation.h --- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModel+MLModelCompilation.h 2022-02-23 07:10:37.000000000 -0500 +++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModel+MLModelCompilation.h 2022-06-03 18:07:30.000000000 -0400 @@ -24,9 +24,9 @@ *
- @returns a URL to the compiled .mlmodelc directory if successful
- The model is compiled to a temporary location on disk
-
- You must move the compiled model to a permenant location if you wish to keep it
-
- You must move the compiled model to a permanent location if you wish to keep it
-
- @discussion the returned model can be loaded using:
-
- @discussion The returned model can be loaded using:
- @code
- [MLModel modelWithContentsOfURL:error:]
- @endcode @@ -34,7 +34,28 @@ */
- (nullable NSURL *)compileModelAtURL:(NSURL *)modelURL error:(NSError **)error
-
API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0)) __WATCHOS_UNAVAILABLE;
-
API_UNAVAILABLE(watchos)
-
API_DEPRECATED("Use the asynchronous interface compileModelAtURL:completionHandler:error: instead.",
-
macos(10.13, API_TO_BE_DEPRECATED), ios(11.0, API_TO_BE_DEPRECATED), tvos(11.0, API_TO_BE_DEPRECATED));
+/*!
-
- Compile a .mlmodel or .mlpackage for this device. Perform the compilation asynchronously.
-
-
- @param modelURL URL file path to .mlmodel file you wish to compile
-
- @param handler When the model compilation completes successfully the completion handler is invoked with a valid URL to the compiled .mlmodelc directory.
-
- On failure, signified by nil compiledModelURL, the NSError object is populated.
-
-
- @discussion The model is compiled to a temporary location in the file system. You must move the compiled model to a permanent location if you wish to keep it. Then the model can be loaded using the returned URL:
-
- @code
-
- [MLModel modelWithContentsOfURL:error:]
-
- @endcode
-
- */
++ (void)compileModelAtURL:(NSURL *)modelURL
-
completionHandler:(void (^)(NSURL * _Nullable compiledModelURL, NSError * _Nullable error))handler
-
API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos)
-
NS_REFINED_FOR_SWIFT NS_SWIFT_ASYNC_NAME(compileModel(at:));
@end
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModel.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModel.h --- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModel.h 2022-02-23 07:10:38.000000000 -0500 +++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModel.h 2022-05-31 15:04:17.000000000 -0400 @@ -11,6 +11,7 @@ #import <CoreML/MLBatchProvider.h> #import <CoreML/MLPredictionOptions.h> #import <CoreML/MLModelConfiguration.h> +#import <CoreML/MLModelAsset.h> #import <CoreML/MLExport.h>
NS_ASSUME_NONNULL_BEGIN @@ -76,6 +77,17 @@
- (nullable id)parameterValueForKey:(MLParameterKey *)key error:(NSError * _Nullable __autoreleasing * _Nullable)error API_AVAILABLE(macos(10.15), ios(13.0), watchos(6.0), tvos(13.0));
+/*!
- Construct a model asynchronously from a compiled model asset.
- @param asset Compiled model asset derived from in-memory or on-disk Core ML model
- @param configuration Model configuration that hold options for loading a model
- @param handler When the model load completes successfully or unsuccessfully, the completion handler is invoked with a valid MLModel instance or NSError object. +*/ ++ (void)loadModelAsset:(MLModelAsset *)asset
-
configuration:(MLModelConfiguration *)configuration
-
completionHandler:(void (^)(MLModel * _Nullable model, NSError * _Nullable error))handler API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0)) NS_REFINED_FOR_SWIFT NS_SWIFT_ASYNC_NAME(load(asset:configuration:));
@end
NS_ASSUME_NONNULL_END diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModelAsset.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModelAsset.h --- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModelAsset.h 1969-12-31 19:00:00.000000000 -0500 +++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModelAsset.h 2022-06-03 18:07:30.000000000 -0400 @@ -0,0 +1,35 @@ +// +// MLModelAsset.h +// CoreML +// +// Created by Anil Katti on 1/14/22. +// Copyright © 2022 Apple Inc. All rights reserved. +// + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +ML_EXPORT +API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0), watchos(9.0)) +@interface MLModelAsset : NSObject + +/*!
-
- Construct an optimized model asset asynchronously from the contents of specification data.
-
-
- @param specificationData Contents of .mlmodel as a data blob.
-
- @param error When the model asset creation fails error is populated with the reason for failure.
-
- */ ++ (nullable instancetype)modelAssetWithSpecificationData:(NSData *)specificationData
-
error:(NSError * _Nullable __autoreleasing *)error API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NAME(init(specification:));
+// cannot construct MLModelAsset without model specification data. +- (instancetype)init NS_UNAVAILABLE; + +// cannot construct MLModelAsset without model specification data. ++ (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModelConfiguration.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModelConfiguration.h --- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModelConfiguration.h 2022-02-23 07:10:38.000000000 -0500 +++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLModelConfiguration.h 2022-06-03 18:07:31.000000000 -0400 @@ -16,7 +16,8 @@ typedef NS_ENUM(NSInteger, MLComputeUnits) { MLComputeUnitsCPUOnly = 0, MLComputeUnitsCPUAndGPU = 1,
- MLComputeUnitsAll = 2
- MLComputeUnitsAll = 2,
- MLComputeUnitsCPUAndNeuralEngine API_AVAILABLE(macos(13.0), ios(16.0), watchos(9.0), tvos(16.0)) = 3 } API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0));
/*! @@ -26,6 +27,17 @@ ML_EXPORT @interface MLModelConfiguration : NSObject <NSCopying, NSSecureCoding>
+/// A human readable name of a MLModel instance for display purposes. +/// +/// Use this property to set a name of a model instance so that runtime analysis tools (e.g. Instruments and os_log) +/// can display that name in the user interface. +/// +/// CoreML framework doesn't parse nor filter the text. It is the client's responsibility to use appropriate text, +/// which may involve localization and privacy considerations. +/// +/// When the property is nil, CoreML framework provides a default. +@property (readwrite, copy, nullable) NSString *modelDisplayName API_AVAILABLE(macos(13.0), ios(16.0), watchos(9.0), tvos(16.0)); + @property (readwrite) MLComputeUnits computeUnits;
@end diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLMultiArray.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLMultiArray.h --- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLMultiArray.h 2022-02-23 10:58:11.000000000 -0500 +++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLMultiArray.h 2022-05-31 14:50:10.000000000 -0400 @@ -18,7 +18,7 @@ MLMultiArrayDataTypeDouble = 0x10000 | 64, MLMultiArrayDataTypeFloat64 API_AVAILABLE(macos(11.0), ios(14.0), watchos(7.0), tvos(14.0)) = 0x10000 | 64, MLMultiArrayDataTypeFloat32 = 0x10000 | 32,
- MLMultiArrayDataTypeFloat16 API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos) = 0x10000 | 16,
- MLMultiArrayDataTypeFloat16 API_AVAILABLE(macos(12.0), ios(16.0), watchos(9.0), tvos(16.0)) = 0x10000 | 16, MLMultiArrayDataTypeFloat API_AVAILABLE(macos(11.0), ios(14.0), watchos(7.0), tvos(14.0)) = 0x10000 | 32, MLMultiArrayDataTypeInt32 = 0x20000 | 32, } API_AVAILABLE(macos(10.13), ios(11.0), watchos(4.0), tvos(11.0)); @@ -32,7 +32,7 @@ @interface MLMultiArray : NSObject
/// Unsafe pointer to underlying buffer holding the data -@property (readonly, nonatomic) void *dataPointer NS_RETURNS_INNER_POINTER; +@property (readonly, nonatomic) void *dataPointer NS_RETURNS_INNER_POINTER API_DEPRECATED("Use getBytesWithHandler or getMutableBytesWithHandler instead. For Swift, use withUnsafeBytes or withUnsafeMutableBytes.", macos(10.13, API_TO_BE_DEPRECATED), ios(11.0, API_TO_BE_DEPRECATED), tvos(11.0, API_TO_BE_DEPRECATED), watchos(4.0, API_TO_BE_DEPRECATED));
/// Type of element held @property (readonly, nonatomic) MLMultiArrayDataType dataType; @@ -53,7 +53,7 @@ /** Returns the backing pixel buffer if exists, otherwise nil. */ -@property (readonly, nullable, nonatomic) CVPixelBufferRef pixelBuffer API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos); +@property (readonly, nullable, nonatomic) CVPixelBufferRef pixelBuffer API_AVAILABLE(macos(12.0), ios(16.0), watchos(9.0), tvos(16.0));
@end
@@ -98,7 +98,52 @@
- @param shape The shape of the MLMultiArray. The last dimension of
shape
must match the pixel buffer's width. The product of the rest of the dimensions must match the height. */
- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer
-
shape:(NSArray<NSNumber *> *)shape API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos);
-
shape:(NSArray<NSNumber *> *)shape API_AVAILABLE(macos(12.0), ios(16.0), watchos(9.0), tvos(16.0));
+@end + +@interface MLMultiArray (ScopedBufferAccess) + +/*!
-
- Get the underlying buffer pointer to read.
-
-
- The buffer pointer is valid only within the block.
-
-
- \code
-
- MLMultiArray * A = [[MLMultiArray alloc] initWithShape:@[@3, @2] dataType:MLMultiArrayDataTypeInt32 error:NULL];
-
- A[@[@1, @2]] = @42;
-
- [A getBytesWithHandler:^(const void *bytes, NSInteger size) {
-
-
const int32_t *scalarBuffer = (const int32_t *)bytes;
-
-
-
const int strideY = A.strides[0].intValue;
-
-
-
// Print 42
-
-
-
NSLog(@"Scalar at (1, 2): %d", scalarBuffer[1 * strideY + 2]);
-
-
- }];
-
- \endcode
-
-
- @param handler The block to receive the buffer pointer and its size in bytes.
- */ +- (void)getBytesWithHandler:(void (NS_NOESCAPE ^)(const void *bytes, NSInteger size))handler API_AVAILABLE(macos(12.3), ios(15.4), watchos(8.5), tvos(15.4)) NS_REFINED_FOR_SWIFT;
+/*!
-
- Get the underlying buffer pointer to mutate.
-
-
- The buffer pointer is valid only within the block.
-
-
- Use
strides
parameter passed in the block because the method may switch to a new backing buffer with different strides.
- Use
-
-
- \code
-
- MLMultiArray * A = [[MLMultiArray alloc] initWithShape:@[@3, @2] dataType:MLMultiArrayDataTypeInt32 error:NULL];
-
- [A getMutableBytesWithHandler:^(void *bytes, NSInteger __unused size, NSArray<NSNumber *> *strides) {
-
-
int32_t *scalarBuffer = (int32_t *)bytes;
-
-
-
const int strideY = strides[0].intValue;
-
-
-
scalarBuffer[1 * strideY + 2] = 42; // Set 42 at A[1, 2]
-
-
- }];
-
- \endcode
-
-
- @param handler The block to receive the buffer pointer, size in bytes, and strides.
-
- */ +- (void)getMutableBytesWithHandler:(void (NS_NOESCAPE ^)(void *mutableBytes, NSInteger size, NSArray<NSNumber *> *strides))handler API_AVAILABLE(macos(12.3), ios(15.4), watchos(8.5), tvos(15.4)) NS_REFINED_FOR_SWIFT;
@end
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLPredictionOptions.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLPredictionOptions.h --- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLPredictionOptions.h 2022-02-23 07:10:39.000000000 -0500 +++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreML.framework/Headers/MLPredictionOptions.h 2022-06-03 18:07:32.000000000 -0400 @@ -86,7 +86,7 @@
- underlying inference engine.
*/ -@property (readwrite, copy, nonatomic) NSDictionary<NSString *, id> *outputBackings API_AVAILABLE(macos(11.0)) API_UNAVAILABLE(ios, watchos, tvos); +@property (readwrite, copy, nonatomic) NSDictionary<NSString *, id> *outputBackings API_AVAILABLE(macos(11.0), ios(16.0), watchos(9.0), tvos(16.0));
@end
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status