Skip to content

VideoToolbox tvOS xcode16.0 b4

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-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h --- /Applications/Xcode_16.0.0-beta3.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h	2024-06-29 09:44:17 +++ /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/VideoToolbox.framework/Headers/VTDecompressionProperties.h	2024-07-13 04:31:58 @@ -370,6 +370,31 @@ */ VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_PixelFormatsWithReducedResolutionSupport API_AVAILABLE(macos(10.8), ios(8.0), tvos(10.2), visionos(1.0)) API_UNAVAILABLE(watchos); // Read-only, CFArray[CFNumber(CMPixelFormatType)], optional +/*! +@constant	kVTDecompressionPropertyKey_AllowBitstreamToChangeFrameDimensions +@abstract +True if decoder is allowed to output buffers matching reduced frame dimensions in the bitstream rather than +under-filling them. +@discussion +This is an optional property only supported by video decoders for bitstream formats which have a provision +for specifying output dimensions per-frame, such as AV1. + +If a decoder does not support this property or if the property value is set to `kCFBooleanFalse`, all decoded +frames will have the same dimensions as specified in the format description. In this case, if the bitstream +changes the frame dimensions, the output buffer will be padded to the dimensions specified in the format +description. + +When this property is set to `kCFBooleanTrue`, the decoder will set the dimensions of each output buffer to +match the dimensions specified in the bitstream for that frame. + +In all cases, output buffer dimensions will never exceed the dimensions specified in the format description. + +In apps linked to SDK versions before this property was added, the AV1 decoder will behave as if this property +is set to `kCFBooleanFalse`. Otherwise, value of this property defaults to `kCFBooleanTrue` where supported. +*/ + +VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_AllowBitstreamToChangeFrameDimensions API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos); // Read/Write, CFBoolean, Optional + #pragma mark Post-decompression processing // Standard properties about processing to be performed after decompression. @@ -440,6 +465,34 @@	the decoded frame will be analyzed and metadata will be added as an attachment to the CVPixelBuffer. */ VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_GeneratePerFrameHDRDisplayMetadata API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos); // CFBoolean, Read/Write, Optional, kCFBooleanFalse by default + +/*! +@constant kVTDecompressionPropertyKey_DecoderProducesRAWOutput +@abstract +Indicates whether the decoder can produce RAW output requiring a VTRAWProcessingSession for post-decode processing. +@discussion +If this property is not implemented, it is assumed that the decoder does not produce RAW output. +If the decoder reports that it produces RAW output the VTDecompressionSession will internally invoke a VTRAWProcessingSession by default to produce +processed output. +If the client sets kVTDecompressionPropertyKey_RequestRAWOutput, the VTDecompressionSession will do no processing and return the decoder's native RAW +output, and any requested destinationImageBufferAttributes on the VTDecompressionSession will be ignored. +*/ +VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_DecoderProducesRAWOutput API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos); // CFBoolean, Read, Optional + +/*! +@constant kVTDecompressionPropertyKey_RequestRAWOutput +@abstract +For decoders which produce RAW output, this property requests that the VTDecompressionSession provide output which has not been processed. +@discussion +When a decoder produces RAW output (signalled by kVTDecompressionPropertyKey_DecoderProducesRAWOutput) the VTDecompressionSession will automatically +invoke a VTRAWProcessingSession with default settings and emit processed frames by default, or when kVTDecompressionPropertyKey_RequestRAWOutput is set +to kCFBooleanFalse. +If a client wants to run a VTRAWProcessingSession on the RAW output themselves in order to control the post-decode processing of the decoded CVPixelBuffers, +they must set kVTDecompressionPropertyKey_RequestRAWOutput to kCFBooleanTrue. +If kVTDecompressionPropertyKey_RequestRAWOutput has been enabled and the decoder produces RAW output, the VTDecompressionSession  +will return CVPixelBuffers in the decoder's native RAW format. Any destinationImageBufferAttributes set on the VTDecompressionSession will be ignored. +*/ +VT_EXPORT const CFStringRef kVTDecompressionPropertyKey_RequestRAWOutput API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos, watchos, visionos); // CFBoolean, Read/Write, Optional, kCFBooleanFalse by default #pragma mark Multi-image decompression 
Clone this wiki locally