Skip to content

VideoToolbox iOS xcode16.0 b5

Rolf Bjarne Kvinge edited this page Aug 30, 2024 · 3 revisions

#VideoToolbox.framework https://github.com/xamarin/xamarin-macios/pull/21157

diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionProperties.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionProperties.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionProperties.h	2024-07-12 10:41:04
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTCompressionProperties.h	2024-07-27 20:32:19
@@ -575,18 +575,29 @@
 /*!
 	@constant	kVTCompressionPropertyKey_ExpectedFrameRate
 	@abstract
-		Indicates the expected frame rate, if known.
+		Indicates the expected frame rate of the video to be encoded.
 	@discussion
-		The frame rate is measured in frames per second. 
-		This is not used to control the frame rate; it is provided as a hint to the 
-		video encoder so that it can set up internal configuration before compression begins. 
-		The actual frame rate will depend on frame durations and may vary. 
-		When the kVTCompressionPropertyKey_RealTime property is set to kCFBooleanTrue, 
-		the video encoder may use this property's value to optimize energy usage,
-		by anticipating that encoding requests will happen at this rate.
-		By default, this is zero, indicating "unknown".
+		The frame rate is measured in frames per second.
+		This property is used to inform the encoder of the expected cadence of the presentation time stamp values of frames that will be submitted to the encoder. 
+		The actual frame rate may vary, and will depend on the frame durations calculated by the difference between subsequent presentation time stamps.
+		If kVTCompressionPropertyKey_RealTime has been set to true, the ExpectedFrameRate may be used to optimize energy usage as well as perform internal encoder configuration before compression begins.
+		If kVTCompressionPropertyKey_RealTime is not set, or has been set to false, the ExpectedFrameRate is still helpful and allows the encoder to optimize internal encoder configuration before compression begins.
+		By default, the property has a value of zero indicating "unknown".
 */
 VT_EXPORT const CFStringRef kVTCompressionPropertyKey_ExpectedFrameRate API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber, Optional
+
+/*!
+	@constant	kVTCompressionPropertyKey_MaximumRealTimeFrameRate
+	@abstract
+		Indicates the maximum real time rate at which frames could be submitted to the VTCompressionSession
+	@discussion
+		The frame rate is measured in frames per second.
+		This property can be used to inform the encoder of the maximum rate that frames could be submitted to the encoder during realtime encoding.  This allows the encoder to configure itself to ensure this capability.
+		This property can only be used when kVTCompressionPropertyKey_RealTime has been set to true.
+		Unlike kVTCompressionPropertyKey_ExpectedFrameRate, this property informs the maximum possible rate that the VTCompressionSession could see, not the average frame rate that is expected in normal operation.
+		By default, the property has a value of zero indicating "unknown".
+*/
+VT_EXPORT const CFStringRef kVTCompressionPropertyKey_MaximumRealTimeFrameRate API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos); // Read/write, CFNumber, Optional
 
 /*!
 	@constant	kVTCompressionPropertyKey_BaseLayerFrameRateFraction
Clone this wiki locally