-
Notifications
You must be signed in to change notification settings - Fork 543
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