Skip to content

Instantly share code, notes, and snippets.

@vs-mobiletools-engineering-service2
Created August 25, 2023 18:38
Show Gist options
  • Save vs-mobiletools-engineering-service2/fe608e850bfff58d0e89bb2eeb06488b to your computer and use it in GitHub Desktop.
Save vs-mobiletools-engineering-service2/fe608e850bfff58d0e89bb2eeb06488b to your computer and use it in GitHub Desktop.
previous-api-comparison/mac-api-diff.md
title description author ms.author ms.date ms.topic ms.assetid ms.prod
Xamarin.Mac SDK API diff
List of API changes for Xamarin.Mac.
spouliot
sepoulio
8/25/2023
article
f833f3cb-eea7-c1b8-a706-dfbb597746ea
xamarin

Xamarin.Mac SDK API diff

Namespace AVFoundation

Type Changed: AVFoundation.AVMutableComposition

Added method:

public virtual Cinematic.CNCompositionInfo AddTracks (Cinematic.CNAssetInfo assetInfo, int preferredStartingTrackID);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Added field:

public static const string CinematicLibrary = "/System/Library/Frameworks/Cinematic.framework/Cinematic";

New Namespace Cinematic

New Type: Cinematic.CNAssetInfo

public class CNAssetInfo : Foundation.NSObject {
	// constructors
	protected CNAssetInfo (Foundation.NSObjectFlag t);
	protected CNAssetInfo (IntPtr handle);
	// properties
	public virtual AVFoundation.AVAssetTrack[] AllCinematicTracks { get; }
	public virtual AVFoundation.AVAsset Asset { get; }
	public virtual AVFoundation.AVAssetTrack CinematicDisparityTrack { get; }
	public virtual AVFoundation.AVAssetTrack CinematicMetadataTrack { get; }
	public virtual AVFoundation.AVAssetTrack CinematicVideoTrack { get; }
	public override IntPtr ClassHandle { get; }
	public virtual AVFoundation.AVAssetTrack FrameTimingTrack { get; }
	public virtual CoreGraphics.CGSize NaturalSize { get; }
	public virtual CoreGraphics.CGSize PreferredSize { get; }
	public virtual CoreGraphics.CGAffineTransform PreferredTransform { get; }
	public virtual Foundation.NSNumber[] SampleDataTrackIds { get; }
	public virtual CoreMedia.CMTimeRange TimeRange { get; }
	public virtual Foundation.NSNumber[] VideoCompositionTrackIds { get; }
	public virtual AVFoundation.AVAssetTrack[] VideoCompositionTracks { get; }
	// methods
	public static void CheckIfCinematic (AVFoundation.AVAsset asset, System.Action<bool> completionHandler);
	public static System.Threading.Tasks.Task<bool> CheckIfCinematicAsync (AVFoundation.AVAsset asset);
	public static void LoadFromAsset (AVFoundation.AVAsset asset, System.Action<CNAssetInfo,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<CNAssetInfo> LoadFromAssetAsync (AVFoundation.AVAsset asset);
}

New Type: Cinematic.CNBoundsPrediction

public class CNBoundsPrediction : Foundation.NSObject, Foundation.INSCopying, Foundation.INSMutableCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CNBoundsPrediction ();
	protected CNBoundsPrediction (Foundation.NSObjectFlag t);
	protected CNBoundsPrediction (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float Confidence { get; set; }
	public virtual CoreGraphics.CGRect NormalizedBounds { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual Foundation.NSObject MutableCopy (Foundation.NSZone zone);
}

New Type: Cinematic.CNCinematicErrorCode

[Serializable]
public enum CNCinematicErrorCode {
	Cancelled = 7,
	Incompatible = 6,
	Incomplete = 3,
	Malformed = 4,
	Unknown = 1,
	Unreadable = 2,
	Unsupported = 5,
}

New Type: Cinematic.CNCinematicErrorCodeExtensions

public static class CNCinematicErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (this CNCinematicErrorCode self);
}

New Type: Cinematic.CNCompositionInfo

public class CNCompositionInfo : Cinematic.CNAssetInfo {
	// constructors
	public CNCompositionInfo ();
	protected CNCompositionInfo (Foundation.NSObjectFlag t);
	protected CNCompositionInfo (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual bool InsertTimeRange (CoreMedia.CMTimeRange timeRange, CNAssetInfo assetInfo, CoreMedia.CMTime startTime, out Foundation.NSError outError);
}

New Type: Cinematic.CNCustomDetectionTrack

public class CNCustomDetectionTrack : Cinematic.CNDetectionTrack {
	// constructors
	public CNCustomDetectionTrack ();
	protected CNCustomDetectionTrack (Foundation.NSObjectFlag t);
	protected CNCustomDetectionTrack (IntPtr handle);
	public CNCustomDetectionTrack (CNDetection[] detections, bool applySmoothing);
	// properties
	public virtual CNDetection[] AllDetections { get; }
	public override IntPtr ClassHandle { get; }
}

New Type: Cinematic.CNDecision

public class CNDecision : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected CNDecision (Foundation.NSObjectFlag t);
	protected CNDecision (IntPtr handle);
	public CNDecision (CoreMedia.CMTime time, long detectionId, bool isStrong, CNDecisionIdentifierType identifierType);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual long DetectionGroupId { get; }
	public virtual long DetectionId { get; }
	public virtual bool GroupDecision { get; }
	public virtual bool StrongDecision { get; }
	public virtual CoreMedia.CMTime Time { get; }
	public virtual bool UserDecision { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Cinematic.CNDecisionIdentifierType

[Serializable]
public enum CNDecisionIdentifierType {
	Group = 1,
	Single = 0,
}

New Type: Cinematic.CNDetection

public class CNDetection : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected CNDetection (Foundation.NSObjectFlag t);
	protected CNDetection (IntPtr handle);
	public CNDetection (CoreMedia.CMTime time, CNDetectionType detectionType, CoreGraphics.CGRect normalizedRect, float focusDisparity);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual long DetectionGroupId { get; }
	public virtual long DetectionId { get; }
	public virtual CNDetectionType DetectionType { get; }
	public virtual float FocusDisparity { get; }
	public virtual CoreGraphics.CGRect NormalizedRect { get; }
	public virtual CoreMedia.CMTime Time { get; }
	// methods
	public static string AccessibilityLabelForDetectionType (CNDetectionType detectionType);
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static float DisparityInNormalizedRect (CoreGraphics.CGRect normalizedRect, CoreVideo.CVPixelBuffer sourceDisparity, CNDetectionType detectionType, float priorDisparity);
	public static bool IsValidDetectionGroupId (long detectionGroupId);
	public static bool IsValidDetectionId (long detectionId);
}

New Type: Cinematic.CNDetectionTrack

public class CNDetectionTrack : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected CNDetectionTrack (Foundation.NSObjectFlag t);
	protected CNDetectionTrack (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual long DetectionGroupId { get; }
	public virtual long DetectionId { get; }
	public virtual CNDetectionType DetectionType { get; }
	public virtual bool Discrete { get; }
	public virtual bool UserCreated { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual CNDetection GetDetectionAtOrBeforeTime (CoreMedia.CMTime time);
	public virtual CNDetection GetDetectionNearestTime (CoreMedia.CMTime time);
	public virtual CNDetection[] GetDetectionsInTimeRange (CoreMedia.CMTimeRange timeRange);
}

New Type: Cinematic.CNDetectionType

[Serializable]
public enum CNDetectionType {
	AutoFocus = 100,
	CatBody = 4,
	CatHead = 9,
	Custom = 102,
	DogBody = 5,
	DogHead = 10,
	FixedFocus = 101,
	HumanFace = 1,
	HumanHead = 2,
	HumanTorso = 3,
	SportsBall = 11,
	Unknown = 0,
}

New Type: Cinematic.CNFixedDetectionTrack

public class CNFixedDetectionTrack : Cinematic.CNDetectionTrack {
	// constructors
	public CNFixedDetectionTrack ();
	public CNFixedDetectionTrack (CNDetection originalDetection);
	protected CNFixedDetectionTrack (Foundation.NSObjectFlag t);
	protected CNFixedDetectionTrack (IntPtr handle);
	public CNFixedDetectionTrack (float focusDisparity);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float FocusDisparity { get; }
	public virtual CNDetection OriginalDetection { get; }
}

New Type: Cinematic.CNObjectTracker

public class CNObjectTracker : Foundation.NSObject {
	// constructors
	protected CNObjectTracker (Foundation.NSObjectFlag t);
	public CNObjectTracker (Metal.IMTLCommandQueue commandQueue);
	protected CNObjectTracker (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual CNDetectionTrack FinishDetectionTrack { get; }
	public static bool IsSupported { get; }
	// methods
	public virtual CNBoundsPrediction ContinueTracking (CoreMedia.CMTime atTime, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity);
	public virtual CNBoundsPrediction FindObject (CoreGraphics.CGPoint point, CoreVideo.CVPixelBuffer sourceImage);
	public virtual void ResetDetectionTrack ();
	public virtual bool StartTracking (CoreMedia.CMTime atTime, CoreGraphics.CGRect normalizedBounds, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity);
}

New Type: Cinematic.CNRenderingQuality

[Serializable]
public enum CNRenderingQuality {
	Export = 2,
	ExportHigh = 3,
	Preview = 1,
	Thumbnail = 0,
}

New Type: Cinematic.CNRenderingSession

public class CNRenderingSession : Foundation.NSObject {
	// constructors
	protected CNRenderingSession (Foundation.NSObjectFlag t);
	protected CNRenderingSession (IntPtr handle);
	public CNRenderingSession (Metal.IMTLCommandQueue commandQueue, CNRenderingSessionAttributes sessionAttributes, CoreGraphics.CGAffineTransform preferredTransform, CNRenderingQuality quality);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Metal.IMTLCommandQueue CommandQueue { get; }
	public static Foundation.NSNumber[] DestinationPixelFormatTypes { get; }
	public virtual CoreGraphics.CGAffineTransform PreferredTransform { get; }
	public virtual CNRenderingQuality Quality { get; }
	public virtual CNRenderingSessionAttributes SessionAttributes { get; }
	public static Foundation.NSNumber[] SourcePixelFormatTypes { get; }
	// methods
	public virtual bool EncodeRender (Metal.IMTLCommandBuffer commandBuffer, CNRenderingSessionFrameAttributes frameAttributes, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity, CoreVideo.CVPixelBuffer destinationImage);
	public virtual bool EncodeRender (Metal.IMTLCommandBuffer commandBuffer, CNRenderingSessionFrameAttributes frameAttributes, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity, Metal.IMTLTexture destinationRgba);
	public virtual bool EncodeRender (Metal.IMTLCommandBuffer commandBuffer, CNRenderingSessionFrameAttributes frameAttributes, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity, Metal.IMTLTexture destinationLuma, Metal.IMTLTexture destinationChroma);
}

New Type: Cinematic.CNRenderingSessionAttributes

public class CNRenderingSessionAttributes : Foundation.NSObject {
	// constructors
	protected CNRenderingSessionAttributes (Foundation.NSObjectFlag t);
	protected CNRenderingSessionAttributes (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual nint RenderingVersion { get; }
	// methods
	public static void Load (AVFoundation.AVAsset asset, System.Action<CNRenderingSessionAttributes,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<CNRenderingSessionAttributes> LoadAsync (AVFoundation.AVAsset asset);
}

New Type: Cinematic.CNRenderingSessionFrameAttributes

public class CNRenderingSessionFrameAttributes : Foundation.NSObject, Foundation.INSCopying, Foundation.INSMutableCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected CNRenderingSessionFrameAttributes (Foundation.NSObjectFlag t);
	protected CNRenderingSessionFrameAttributes (IntPtr handle);
	public CNRenderingSessionFrameAttributes (AVFoundation.AVTimedMetadataGroup metadataGroup, CNRenderingSessionAttributes sessionAttributes);
	public CNRenderingSessionFrameAttributes (CoreMedia.CMSampleBuffer sampleBuffer, CNRenderingSessionAttributes sessionAttributes);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float FNumber { get; set; }
	public virtual float FocusDisparity { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual Foundation.NSObject MutableCopy (Foundation.NSZone zone);
}

New Type: Cinematic.CNScript

public class CNScript : Foundation.NSObject {
	// constructors
	protected CNScript (Foundation.NSObjectFlag t);
	protected CNScript (IntPtr handle);
	// properties
	public virtual CNDetectionTrack[] AddedDetectionTracks { get; }
	public virtual CNScriptChanges Changes { get; }
	public override IntPtr ClassHandle { get; }
	public virtual float FNumber { get; set; }
	public virtual CoreMedia.CMTimeRange TimeRange { get; }
	// methods
	public virtual long AddDetectionTrack (CNDetectionTrack detectionTrack);
	public virtual bool AddUserDecision (CNDecision decision);
	public virtual CNDecision[] GetBaseDecisions (CoreMedia.CMTimeRange timeRange);
	public virtual CNScriptChanges GetChangesTrimmed (CoreMedia.CMTimeRange timeRange);
	public virtual CNDecision GetDecision (CoreMedia.CMTime time, CoreMedia.CMTime tolerance);
	public virtual CNDecision GetDecisionAfterTime (CoreMedia.CMTime time);
	public virtual CNDecision GetDecisionBeforeTime (CoreMedia.CMTime time);
	public virtual CNDecision[] GetDecisions (CoreMedia.CMTimeRange timeRange);
	public virtual CNDetectionTrack GetDetectionTrack (CNDecision decision);
	public virtual CNDetectionTrack GetDetectionTrackForId (long detectionId);
	public virtual CNScriptFrame GetFrame (CoreMedia.CMTime time, CoreMedia.CMTime tolerance);
	public virtual CNScriptFrame[] GetFrames (CoreMedia.CMTimeRange timeRange);
	public virtual CNDecision GetPrimaryDecision (CoreMedia.CMTime time);
	public virtual CNDecision GetSecondaryDecision (CoreMedia.CMTime time);
	public virtual CoreMedia.CMTimeRange GetTimeRangeOfTransitionAfterDecision (CNDecision decision);
	public virtual CoreMedia.CMTimeRange GetTimeRangeOfTransitionBeforeDecision (CNDecision decision);
	public virtual CNDecision[] GetUserDecisions (CoreMedia.CMTimeRange timeRange);
	public static void Load (AVFoundation.AVAsset asset, CNScriptChanges changes, Foundation.NSProgress progress, System.Action<CNScript,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<CNScript> LoadAsync (AVFoundation.AVAsset asset, CNScriptChanges changes, Foundation.NSProgress progress);
	public virtual void Reload (CNScriptChanges changes);
	public virtual void RemoveAllUserDecisions ();
	public virtual bool RemoveDetectionTrack (CNDetectionTrack detectionTrack);
	public virtual bool RemoveUserDecision (CNDecision decision);
}

New Type: Cinematic.CNScriptChanges

public class CNScriptChanges : Foundation.NSObject {
	// constructors
	public CNScriptChanges (Foundation.NSData dataRepresentation);
	protected CNScriptChanges (Foundation.NSObjectFlag t);
	protected CNScriptChanges (IntPtr handle);
	// properties
	public virtual CNDetectionTrack[] AddedDetectionTracks { get; }
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSData DataRepresentation { get; }
	public virtual float FNumber { get; }
	public virtual CNDecision[] UserDecisions { get; }
}

New Type: Cinematic.CNScriptFrame

public class CNScriptFrame : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected CNScriptFrame (Foundation.NSObjectFlag t);
	protected CNScriptFrame (IntPtr handle);
	// properties
	public virtual CNDetection[] AllDetections { get; }
	public override IntPtr ClassHandle { get; }
	public virtual CNDetection FocusDetection { get; }
	public virtual float FocusDisparity { get; }
	public virtual CoreMedia.CMTime Time { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual CNDetection GetBestDetectionForGroupId (long detectionGroupId);
	public virtual CNDetection GetDetectionForId (long detectionId);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment