Skip to content

MediaExtension macOS xcode15.0 b2

Alex Soto edited this page Jun 21, 2023 · 1 revision

#MediaExtension.framework

diff -ruN /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEExtensionPlugin.h /Applications/Xcode_15.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEExtensionPlugin.h
--- /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEExtensionPlugin.h	2023-05-31 09:13:09
+++ /Applications/Xcode_15.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEExtensionPlugin.h	2023-06-13 04:09:29
@@ -26,13 +26,13 @@
 /*!
 	@abstract		Extension attribute field keys for MediaExtension format reader plugin bundles.
 	@constant		kMEFormatReaderClassImplementationID
-		The identifier for the format reader. This should be of the form "com.apple.mediatoolbox.formatreader.xxx".
+		A string that uniquely identifies the format reader. It should start with the reverse domain identifier of the developer and for clarity contain ".formatreader." and the name of the media format.
 	@constant		kMEFormatReaderUTTypeArrayKey
-		The array of UTType identifiers	 supported by the format reader plugin.
+		An array of UTType identifiers supported by the format reader plugin.
 	@constant		kMEFormatReaderFileNameExtensionArrayKey
-		The array of file extensions supported by the format reader plugin. This should include file extensions for any type of related files.
+		An array of file extensions supported by the format reader plugin. This should include file extensions for any type of related files.
 	@constant		kMEFormatReaderObjectNameKey
-		The user readable name for the format reader.
+		A user-readable string describing the format reader. This string is used for uniquely identifying format readers and possibly for debug logging but is typically not visible to users.
 */
 #define kMEFormatReaderClassImplementationIDKey				@"ClassImplementationID"
 #define kMEFormatReaderUTTypeArrayKey						@"MTUTTypeArray"
@@ -42,14 +42,21 @@
 /*!
 	@abstract		Extension attribute field keys for MediaExtension video decoder plugin bundles.
 	@constant		kMEVideoDecoderClassImplementationIDKey
-		The identifier for the decoder. This should be of the form "com.apple.videotoolbox.videodecoder.xxx".
+		A string that uniquely identifies the video decoder. It should start with the reverse domain identifier of the developer and for clarity contain ".videodecoder." and the name of the codec.
+	@constant		kMEVideoDecoderCodecInfoKey
+		An array of one or more dictionaries describing the codecs that the decoder supports. Each dictionary will have entries for at least the kMEVideoDecoderCodecTypeKey and kMEVideoDecoderCodecNameKey.
 	@constant		kMEVideoDecoderCodecTypeKey
-		The four character code for the codec type, as a string.
+		A string describing the four-character code of the codec that the decoder supports. Each string should be exactly four characters long and use ASCII character set encoding.
+	@constant		kMEVideoDecoderCodecNameKey
+		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
-		The user readable name for the decoder.
+		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"
 
 
diff -ruN /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEFormatReader.h /Applications/Xcode_15.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEFormatReader.h
--- /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEFormatReader.h	2023-05-31 09:13:10
+++ /Applications/Xcode_15.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEFormatReader.h	2023-06-13 04:09:29
@@ -18,14 +18,29 @@
 
 	MediaExtension Format Reader Info.plist File Information
 
-	MediaExtension format readers will need to include two specialized dictionaries in their Info.plist files. One dictionary
+	The following standard bundle Info.plist keys have significance for MediaExtension format readers:
+
+	- CFBundleVersion
+		This version number will be used to select among any duplicate installations of MediaExtension format readers with the
+		same ClassImplementationID. The version formatting should follow standard CFBundleVersion guidelines, with any major,
+		minor, and update versions having values in the range of 0-255.
+	- CFBundleDisplayName
+		This name will be displayed to identify the format readers in the System Settings listing of extension format readers.
+		The name can be localized using standard bundle localization techniques. If no display name is provided, the system
+		will use the file name of the MediaExtension format reader bundle.
+	- CFBundleIconName
+	- CFBundleIconFile
+		The icon referenced here will displayed along with the CFBundleDisplayName in the System Settings listing of extension
+		format readers. If no icon is provided, the system will use a generic icon.
+
+	MediaExtension format readers will also need to include two specialized dictionaries in their Info.plist files. One dictionary
 	is required and describes ExtensionKit information, while the other is optional and registers the format reader media format
 	with the system.
 
 	EXAppExtensionAttributes Dictionary
 
 	The EXAppExtensionAttributes dictionary is required by ExtensionKit. The following keys will be needed for MediaExtension
-	format readers:
+	format readers (see also MEExtensionPlugin.h):
 
 	- ClassImplementationID
 		This should be a string similar to the bundle identifier of the format reader. It should start with the reverse
@@ -58,11 +73,11 @@
 		A user-readable string describing the media "kind". This name will be displayed in Finder. This string can be
 		localized by making localized variants of the Info.plist file.
 	- UTTypeConformsTo
-		This is an array of UTType identifiers. The first entry should be set to the abstract type for MediaExtension
+		An array of UTType identifiers. The first entry should be set to the abstract type for MediaExtension
 		format readers, "com.apple.mediaextension-content". This type also conforms to higher level abstract types such as
 		"public.movie" and "public.audiovisual-content". Additional types can also be included as well if desired.
 	- UTTypeIdentifier
-		This should match the value in MTUTTypeArray in the EXAppExtensionAttributes dictionary.
+		A UTType identifier string that should match the value in MTUTTypeArray in the EXAppExtensionAttributes dictionary.
 	- UTTypeTagSpecification
 		Inside the UTTypeTagSpecification dictionary, the public.filename-extension key should have a value matching the
 		MTFileNameExtensionArray in the EXAppExtensionAttributes dictionary.
@@ -236,7 +251,7 @@
 /*!
 	@method			parseAdditionalFragmentsWithCompletionHandler
 	@abstract		Asynchronously incorporates additional fragments that have been appended since the file was last parsed.
-	@discussion		Parses additional fragments of the media asset if they exist. Media asset formats that do not support incremental fragments do not need implement this method. The MEFormatReader must have been instantiated with the MEFormatReaderInstantiationOptions property allowIncrementalFragmentParsing set to YES. Does nothing if the MEFileInfo property couldContainFragments is NO. Once this function returns an error, later calls should also always fail.
+	@discussion		Parses additional fragments of the media asset if they exist. Media asset formats that do not support incremental fragments do not need implement this method. The MEFormatReader must have been instantiated with the MEFormatReaderInstantiationOptions property allowIncrementalFragmentParsing set to YES. Does nothing unless the MEFileInfo property fragmentsStatus is MEFileInfoContainsFragments. Once this function returns an error, later calls should also always fail.
 	@param			completionHandler
 		The handler that will be invoked when the method completes.
 		'fragmentStatus'
diff -ruN /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEVideoDecoder.h /Applications/Xcode_15.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEVideoDecoder.h
--- /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEVideoDecoder.h	2023-05-31 09:13:09
+++ /Applications/Xcode_15.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MediaExtension.framework/Headers/MEVideoDecoder.h	2023-06-13 04:09:29
@@ -17,29 +17,50 @@
 
 	MediaExtension Video Decoder Info.plist File Information
 
-	MediaExtension video decoders will need to include a specialized EXAppExtensionAttributes dictionary in their Info.plist
+	The following standard bundle Info.plist keys have significance for MediaExtension video decoders:
+ 
+	- CFBundleVersion
+ 		This version number will be used to select among any duplicate installations of MediaExtension video decoders with the
+		same ClassImplementationID. The version formatting should follow standard CFBundleVersion guidelines, with any major,
+		minor, and patch versions all having values in the range of 0-255.
+	- CFBundleDisplayName
+		This name will be displayed to identify the video decoder in the System Settings listing of extension video decoders.
+		The name can be localized using standard bundle localization techniques. If no display name is provided, the system
+		will use the file name of the MediaExtension video decoder bundle.
+	- CFBundleIconName
+	- CFBundleIconFile
+		The icon referenced here will displayed along with the CFBundleDisplayName in the System Settings listing of extension
+		video decoders. If no icon is provided, the system will use a generic icon.
+ 
+	MediaExtension video decoders will also need to include a specialized EXAppExtensionAttributes dictionary in their Info.plist
 	files describing ExtensionKit information.
 
 	EXAppExtensionAttributes Dictionary
 
 	The EXAppExtensionAttributes dictionary is required by ExtensionKit. The following keys will be needed for ExtensionKit
-	video decoders:
+	video decoders (see also MEExtensionPlugin.h):
 
 	- ClassImplementationID
 		This should be a string similar to the bundle identifier of the video decoder. It should start with the reverse domain
 		identifier of the developer to prevent collisions with other developers, and for clarity contain ".videodecoder." and
 		the name of the codec. If the developer envisions multiple variants of the same decoder, the name should include strings
-		to make each format reader unique. An example might be something like "com.mycompany.videodecoder.mycodec.codecvariant".
+		to make each video decoder unique. An example might be something like "com.mycompany.videodecoder.mycodec.codecvariant".
 	- EXExtensionPointIdentifier
 		The string "com.apple.mediaextension.videodecoder" (kMEVideoDecoderExtensionPointName).
 	- EXExtensionPrincipalClass
 		The name of the video decoder factory class, conforming to the MEVideoDecoderExtension protocol.
-	- CodecType
-		An array of one or more strings describing the four-character codes of the codecs that the decoder supports. Each string
-		should be exactly four characters long and use ASCII character set encoding.
+	- CodecInfo
+		An array of one or more dictionaries describing the codecs that the decoder supports. Each dictionary must include the
+		following keys:
+		* CodecType
+			A string describing the four-character code of the codec that the decoder supports. Each string should be exactly four
+			characters long and use ASCII character set encoding.
+		* CodecName
+			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.
 	- ObjectName
-		A user-readable string describing the decoder. This string is used for uniquely identifying video decoders and possibly
-		for debug logging but is typically not visible to users.
+		A user-readable string describing the decoder. This string is used for uniquely identifying video decoders and possibly for
+		debug logging but is typically not visible to users.
  
  
 	To report bugs, go to:  http://developer.apple.com/bugreporter/
Clone this wiki locally