Skip to content

MediaExtension macOS xcode26.0 b1

Alex Soto edited this page Jun 9, 2025 · 1 revision

#MediaExtension.framework

diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEExtensionPlugin.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEExtensionPlugin.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEExtensionPlugin.h	2025-04-19 03:34:39
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEExtensionPlugin.h	2025-05-29 02:17:09
@@ -42,6 +42,7 @@
 #define kMEFormatReaderFileNameExtensionArrayKey			@"MTFileNameExtensionArray"
 #define kMEFormatReaderObjectNameKey						@"ObjectName"
 
+
 /*!
 	@abstract		Extension attribute field keys for MediaExtension video decoder plugin bundles.
 	@constant		kMEVideoDecoderClassImplementationIDKey
@@ -54,13 +55,32 @@
 		A user-readable string describing the name of the codec format. This string might be displayed as format information for the video track in a player application.
 	@constant		kMEVideoDecoderObjectNameKey
 		A user-readable string describing the video decoder. This string is used for uniquely identifying video decoders and possibly for debug logging but is typically not visible to users.
-		
 */
 #define kMEVideoDecoderClassImplementationIDKey				@"ClassImplementationID"
 #define kMEVideoDecoderCodecInfoKey							@"CodecInfo"
 #define kMEVideoDecoderCodecTypeKey							@"CodecType"
 #define kMEVideoDecoderCodecNameKey							@"CodecName"
 #define kMEVideoDecoderObjectNameKey						@"ObjectName"
+
+
+/*!
+	@abstract		Extension attribute field keys for MediaExtension RAW processor plugin bundles.
+	@constant		kMERAWProcessorClassImplementationIDKey
+		A string that uniquely identifies the RAW processor. It should start with the reverse domain identifier of the developer and for clarity contain ".rawprocessor." and the name of the codec.
+	@constant		kMERAWProcessorProcessorInfoKey
+		An array of one or more dictionaries describing the codecs that the RAW processor supports. Each dictionary will have entries for at least the kMERAWProcessorCodecTypeKey and kMERAWProcessorCodecNameKey.
+	@constant		kMERAWProcessorCodecTypeKey
+		A string describing the four-character code of the codec that the RAW processor supports. Each string should be exactly four characters long and use ASCII character set encoding.
+	@constant		kMERAWProcessorCodecNameKey
+		A user-readable string describing the name of the codec format. This string might be displayed as format information for the video track in a player application.
+	@constant		kMERAWProcessorObjectNameKey
+		A user-readable string describing the RAW processor. This string is used for uniquely identifying RAW processors and possibly for debug logging but is typically not visible to users.
+*/
+#define kMERAWProcessorClassImplementationIDKey				@"ClassImplementationID"
+#define kMERAWProcessorProcessorInfoKey						@"ProcessorInfo"
+#define kMERAWProcessorCodecTypeKey							@"CodecType"
+#define kMERAWProcessorCodecNameKey							@"CodecName"
+#define kMERAWProcessorObjectNameKey						@"ObjectName"
 
 
 #endif /* MEExtensionPlugin_h */
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEFormatReader.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEFormatReader.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEFormatReader.h	2025-04-19 03:34:39
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEFormatReader.h	2025-05-29 02:17:09
@@ -221,7 +221,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)loadFileInfoWithCompletionHandler:(void (^)(MEFileInfo* _Nullable fileInfo, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:fileInfo());
+- (void)loadFileInfoWithCompletionHandler:(void (^)(MEFileInfo* _Nullable fileInfo, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(fileInfo());
 
 /*!
 	@method			loadMetadataWithCompletionHandler
@@ -234,7 +234,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)loadMetadataWithCompletionHandler:(void (^)(NSArray< AVMetadataItem * > * _Nullable metadata, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:metadata());
+- (void)loadMetadataWithCompletionHandler:(void (^)(NSArray< AVMetadataItem * > * _Nullable metadata, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(metadata());
 
 /*!
 	@method			loadTrackReadersWithCompletionHandler
@@ -247,7 +247,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)loadTrackReadersWithCompletionHandler:(void (^)(NSArray< id<METrackReader> > * _Nullable trackReaders, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:trackReaders());
+- (void)loadTrackReadersWithCompletionHandler:(void (^)(NSArray< id<METrackReader> > * _Nullable trackReaders, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(trackReaders());
 
 @optional
 
@@ -290,6 +290,13 @@
 */
 @property (nonatomic) MEFileInfoFragmentsStatus fragmentsStatus;
 
+/*!
+	@property		sidecarFileName
+	@abstract		The sidecar filename used by the MediaExtension.
+	@discussion		Represents a new or existing sidecar file located in the same directory as the primary media file. The filename should include the file extension, and should not contain the file path, or contain any slashes. The file extension should be supported by the format reader, and present in the EXAppExtensionAttributes and UTExportedTypeDeclarations dictionaries in the MediaExtension format reader Info.plist.
+*/
+@property (nonatomic, copy, nullable) NSString* sidecarFileName API_AVAILABLE(macos(26.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos);
+
 @end
 
 
@@ -314,7 +321,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
  */
-- (void)loadTrackInfoWithCompletionHandler:(void (^)(METrackInfo* _Nullable trackInfo, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:trackInfo());
+- (void)loadTrackInfoWithCompletionHandler:(void (^)(METrackInfo* _Nullable trackInfo, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(trackInfo());
 
 /*!
 	@method			generateSampleCursorAtPresentationTimeStamp
@@ -342,7 +349,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)generateSampleCursorAtFirstSampleInDecodeOrderWithCompletionHandler:(void (^)(id<MESampleCursor> _Nullable sampleCursor, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:sampleCursorAtFirstSampleInDecodeOrder());
+- (void)generateSampleCursorAtFirstSampleInDecodeOrderWithCompletionHandler:(void (^)(id<MESampleCursor> _Nullable sampleCursor, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(sampleCursorAtFirstSampleInDecodeOrder());
 
 /*!
 	@method			generateSampleCursorAtLastSampleInDecodeOrderWithCompletionHandler
@@ -355,7 +362,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)generateSampleCursorAtLastSampleInDecodeOrderWithCompletionHandler:(void (^)(id<MESampleCursor> _Nullable sampleCursor, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:sampleCursorAtLastSampleInDecodeOrder());
+- (void)generateSampleCursorAtLastSampleInDecodeOrderWithCompletionHandler:(void (^)(id<MESampleCursor> _Nullable sampleCursor, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(sampleCursorAtLastSampleInDecodeOrder());
 
 @optional
 
@@ -370,7 +377,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)loadUneditedDurationWithCompletionHandler:(void (^)(CMTime uneditedDuration, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:uneditedDuration());
+- (void)loadUneditedDurationWithCompletionHandler:(void (^)(CMTime uneditedDuration, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(uneditedDuration());
 
 /*!
 	@method			loadTotalSampleDataLengthWithCompletionHandler
@@ -383,7 +390,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)loadTotalSampleDataLengthWithCompletionHandler:(void (^)(int64_t totalSampleDataLength, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:totalSampleDataLength());
+- (void)loadTotalSampleDataLengthWithCompletionHandler:(void (^)(int64_t totalSampleDataLength, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(totalSampleDataLength());
 
 /*!
 	@method			loadEstimatedDataRateWithCompletionHandler
@@ -395,7 +402,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)loadEstimatedDataRateWithCompletionHandler:(void (^)(Float32 estimatedDataRate, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:estimatedDataRate());
+- (void)loadEstimatedDataRateWithCompletionHandler:(void (^)(Float32 estimatedDataRate, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(estimatedDataRate());
 
 /*!
 	@method			loadMetadataWithCompletionHandler
@@ -408,7 +415,7 @@
 		'error'
 			An NSError object that will contain error information if the method fails, otherwise nil.
 */
-- (void)loadMetadataWithCompletionHandler:(void (^)(NSArray< AVMetadataItem * > * _Nullable metadata, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(getter:metadata());
+- (void)loadMetadataWithCompletionHandler:(void (^)(NSArray< AVMetadataItem * > * _Nullable metadata, NSError * _Nullable error))completionHandler NS_SWIFT_ASYNC_NAME(metadata());
 
 @end
 
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MERAWProcessor.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MERAWProcessor.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MERAWProcessor.h	2025-04-19 03:34:39
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MERAWProcessor.h	2025-05-29 02:17:10
@@ -125,7 +125,7 @@
 	@abstract		Provides a stateless factory interface for creating new MERAWProcessor instances.
 	@discussion		The MERAWProcessorExtension protocol provides a factory method to create a new MERAWProcessor instance for a codecType implemented by the extension. A single MERAWProcessorExtension is instantiated by the Video Toolbox, and will be called to create individual MERAWProcessor instances as needed. If the codecType or FormatDescription passed to processorWithCodecType is not compatible with the MERAWProcessor implementation, the factory call should fail and return MEErrorUnsupportedFeature.
 */
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 @protocol MERAWProcessorExtension <NSObject>
 
 - (instancetype)init;
@@ -153,7 +153,7 @@
 	@abstract		Describes pixel buffer requirements and creates new pixel buffers.
 	@discussion		Contains the interfaces that the App Extension RAW processor uses for two tasks. First, to declare its set of requirements for output CVPixelBuffers in the form of a pixelBufferAttributes dictionary. Second, to create pixelBuffers which match processor output requirements but also satisfy VideoToolbox and client requirements.
 */
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 @interface MERAWProcessorPixelBufferManager : NSObject
 
 /*!
@@ -182,8 +182,8 @@
 	@abstract		An object implementing this protocol is implemented by the RAW Processor to describe each processing parameter the Processor exposes.
 	@discussion		The MERAWProcessingParameter protocol provides an interface for the VideoToolbox to query descriptions of the different parameters that can be used to influence Processor operation.  A distinct MERAWProcessingParameter is created for each parameter supported by the Processor, and the set of supported parameters is returned by the MERAWProcessor's processingParameters interface.
 */
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
-@interface MERAWProcessingParameter : NSObject 
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
+@interface MERAWProcessingParameter : NSObject
 
 /*!
  @property		name
@@ -217,7 +217,7 @@
 	@abstract		An object implementing this protocol is implemented by the RAW Processor to describe each processing parameter the Processor exposes.
 	@discussion		The MERAWProcessingListElementParameter protocol provides an interface for VideoToolbox to query descriptions of the different elements in a parameter list  for a List element in a MERAWProcessingParameter.  A distinct MERAWProcessingListElementParameter is created for each list element.
 */
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 NS_SWIFT_NAME(MERAWProcessingParameter.ListElement)
 @interface MERAWProcessingListElementParameter : MERAWProcessingParameter
 
@@ -232,7 +232,7 @@
 
 @end
 
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 NS_SWIFT_NAME(MERAWProcessingParameter.Boolean)
 @interface MERAWProcessingBooleanParameter : MERAWProcessingParameter
 - (instancetype)initWithName:(NSString *)name key:(NSString*)key description:(NSString*)description initialValue:(BOOL)initialValue NS_REFINED_FOR_SWIFT;
@@ -271,7 +271,7 @@
 
 @end
 
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 NS_SWIFT_NAME(MERAWProcessingParameter.Integer)
 @interface MERAWProcessingIntegerParameter : MERAWProcessingParameter
 - (instancetype)initWithName:(NSString *)name key:(NSString*)key description:(NSString*)description initialValue:(NSInteger)initialValue maximum:(NSInteger)maximum minimum:(NSInteger)minimum NS_REFINED_FOR_SWIFT;
@@ -321,7 +321,7 @@
 
 @end
 
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 NS_SWIFT_NAME(MERAWProcessingParameter.FloatingPoint)
 @interface MERAWProcessingFloatParameter : MERAWProcessingParameter
 
@@ -373,7 +373,7 @@
 @end
 
 
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 NS_SWIFT_NAME(MERAWProcessingParameter.List)
 @interface MERAWProcessingListParameter : MERAWProcessingParameter
 - (instancetype)initWithName:(NSString *)name key:(NSString*)key description:(NSString*)description list:(NSArray<MERAWProcessingListElementParameter *>*)listElements initialValue:(NSInteger)initialValue NS_REFINED_FOR_SWIFT;
@@ -418,7 +418,7 @@
 
 @end
 
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 NS_SWIFT_NAME(MERAWProcessingParameter.SubGroup)
 @interface MERAWProcessingSubGroupParameter : MERAWProcessingParameter
 - (instancetype)initWithName:(NSString *)name description:(NSString*)description parameters:(NSArray<MERAWProcessingParameter *>*)parameters;
@@ -430,17 +430,17 @@
 // This notification is used to notify the client that processor has changed the set of available MERAWProcessingParameters.
 // This includes changing the set of available parameters, changing the enabled state for parameters, or changing default values for parameters.
 // This may occur in response to incoming parameter changes, for example, a change in a selected MERAWProcessingListElementParameter, or due to metadata-driven changes.
-ME_EXPORT NSNotificationName const MERAWProcessorValuesDidChangeNotification API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos) NS_REFINED_FOR_SWIFT;
+ME_EXPORT NSNotificationName const MERAWProcessorValuesDidChangeNotification API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos) NS_REFINED_FOR_SWIFT;
 
 // This notification is used to notify the VideoToolbox that the value of the readyForMoreMediaData property has changed
-ME_EXPORT NSNotificationName const MERAWProcessorReadyForMoreMediaDataDidChangeNotification API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos) NS_REFINED_FOR_SWIFT;
+ME_EXPORT NSNotificationName const MERAWProcessorReadyForMoreMediaDataDidChangeNotification API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos) NS_REFINED_FOR_SWIFT;
 
 /*!
 	@protocol		MERAWProcessor
 	@abstract		The primary object for a MediaExtension RAW Processor, providing an interface for VideoToolbox to talk to the processor.
 	@discussion		The MERAWProcessor protocol provides an interface for the VideoToolbox to interact with MediaExtension RAW Processors. MERAWProcessor objects are always instantiated by the VideoToolbox. To create an MERAWProcessor, the VideoToolbox first creates an MERAWProcessorExtension object and calls its processorWithFormatDescription: method. MERAWProcessors should expect to run in a sandboxed process without access to the file system, network, or other kernel resources.
 */
-API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos)
+API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos)
 @protocol MERAWProcessor <NSObject>
 
 @optional
@@ -458,6 +458,13 @@
 	@discussion		This is an optional property. Only color-related keys from CVImageBuffer.h are permitted in the returned dictionary.
 */
 @property (readonly) NSDictionary<NSString *, id> *outputColorAttachments;
+
+/*!
+	@property       metadataForSidecarFile
+	@abstract       The metadata returned is a pre-formatted NSData that represents a fully-formed sidecar file, and should be compatible with the MediaExtension FormatReader.
+	@discussion     The metadata will contain the initial processing parameters from the sidecar file, along with any adjustments made on the RAW processor.
+*/
+@property (readonly) NSData *metadataForSidecarFile API_AVAILABLE(macos(26.0));
 
 @required
 
Clone this wiki locally