videotoolbox

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Rendered for darwin/amd64

Overview

Package videotoolbox provides purego-based Go bindings for the macOS VideoToolbox framework.

Apple documentation: https://developer.apple.com/documentation/videotoolbox

Index

Constants

View Source
const (
	KVTAllocationFailedErr                        = -12904
	KVTColorCorrectionImageRotationFailedErr      = -12219
	KVTColorCorrectionPixelTransferFailedErr      = -12212
	KVTColorSyncTransformConvertFailedErr         = -12919
	KVTCouldNotCreateColorCorrectionDataErr       = -12918
	KVTCouldNotCreateInstanceErr                  = -12907
	KVTCouldNotFindExtensionErr                   = -19510
	KVTCouldNotFindTemporalFilterErr              = -12217
	KVTCouldNotFindVideoDecoderErr                = -12906
	KVTCouldNotFindVideoEncoderErr                = -12908
	KVTCouldNotOutputTaggedBufferGroupErr         = -17699
	KVTExtensionConflictErr                       = -19511
	KVTExtensionDisabledErr                       = -17697
	KVTFormatDescriptionChangeNotSupportedErr     = -12916
	KVTFrameSiloInvalidTimeRangeErr               = -12216
	KVTFrameSiloInvalidTimeStampErr               = -12215
	KVTImageRotationNotSupportedErr               = -12914
	KVTInsufficientSourceColorDataErr             = -12917
	KVTInvalidSessionErr                          = -12903
	KVTMultiPassStorageIdentifierMismatchErr      = -12213
	KVTMultiPassStorageInvalidErr                 = -12214
	KVTParameterErr                               = -12902
	KVTPixelRotationNotSupportedErr               = -12914
	KVTPixelTransferNotPermittedErr               = -12218
	KVTPixelTransferNotSupportedErr               = -12905
	KVTPropertyNotSupportedErr                    = -12900
	KVTPropertyReadOnlyErr                        = -12901
	KVTSessionMalfunctionErr                      = -17691
	KVTVideoDecoderAuthorizationErr               = -12210
	KVTVideoDecoderBadDataErr                     = -12909
	KVTVideoDecoderCallbackMessagingErr           = -17695
	KVTVideoDecoderMalfunctionErr                 = -12911
	KVTVideoDecoderNeedsRosettaErr                = -17692
	KVTVideoDecoderNotAvailableNowErr             = -12913
	KVTVideoDecoderReferenceMissingErr            = -17694
	KVTVideoDecoderRemovedErr                     = -17690
	KVTVideoDecoderUnknownErr                     = -17696
	KVTVideoDecoderUnsupportedDataFormatErr       = -12910
	KVTVideoEncoderAuthorizationErr               = -12211
	KVTVideoEncoderAutoWhiteBalanceNotLockedErr   = -19512
	KVTVideoEncoderMVHEVCVideoLayerIDsMismatchErr = -17698
	KVTVideoEncoderMalfunctionErr                 = -12912
	KVTVideoEncoderNeedsRosettaErr                = -17693
	KVTVideoEncoderNotAvailableNowErr             = -12915
)
View Source
const (
	KVTQPModulationLevel_Default = -1
	KVTQPModulationLevel_Disable = 0
)
View Source
const (
	KVTUnlimitedFrameDelayCount = -1
)

Variables

This section is empty.

Functions

func KVTAlphaChannelMode_PremultipliedAlpha

func KVTAlphaChannelMode_PremultipliedAlpha() uintptr

func KVTAlphaChannelMode_StraightAlpha

func KVTAlphaChannelMode_StraightAlpha() uintptr

func KVTCameraCalibrationExtrinsicOriginSource_StereoCameraSystemBaseline

func KVTCameraCalibrationExtrinsicOriginSource_StereoCameraSystemBaseline() uintptr

func KVTCameraCalibrationLensAlgorithmKind_ParametricLens

func KVTCameraCalibrationLensAlgorithmKind_ParametricLens() uintptr

func KVTCameraCalibrationLensDomain_Color

func KVTCameraCalibrationLensDomain_Color() uintptr

func KVTCameraCalibrationLensRole_Left

func KVTCameraCalibrationLensRole_Left() uintptr

func KVTCameraCalibrationLensRole_Mono

func KVTCameraCalibrationLensRole_Mono() uintptr

func KVTCameraCalibrationLensRole_Right

func KVTCameraCalibrationLensRole_Right() uintptr

func KVTCompressionPreset_Balanced

func KVTCompressionPreset_Balanced() uintptr

@constant kVTCompressionPreset_Balanced @abstract A preset to provide a balanced compression quality and encoding speed. @discussion An encoder configured using this preset is expected to achieve a higher quality than an encoder configured with the preset kVTCompressionPreset_HighSpeed. The preset kVTCompressionPreset_HighSpeed may be preferred for a faster encoding. The preset kVTCompressionPreset_HighQuality may be preferred for a higher compression quality. See also kVTCompressionPreset_HighQuality, kVTCompressionPreset_HighSpeed, kVTCompressionPreset_VideoConferencing.

func KVTCompressionPreset_HighQuality

func KVTCompressionPreset_HighQuality() uintptr

@constant kVTCompressionPreset_HighQuality @abstract A preset to achieve a high compression quality. @discussion An encoder configured using this preset is expected to achieve a higher quality with a slower encoding than an encoder configured with the preset kVTCompressionPreset_Balanced or kVTCompressionPreset_HighSpeed. The presets kVTCompressionPreset_Balanced and kVTCompressionPreset_HighSpeed may be preferred for a faster encoding. See also kVTCompressionPreset_Balanced, kVTCompressionPreset_HighSpeed, kVTCompressionPreset_VideoConferencing.

func KVTCompressionPreset_HighSpeed

func KVTCompressionPreset_HighSpeed() uintptr

@constant kVTCompressionPreset_HighSpeed @abstract A preset to provide a high-speed encoding. @discussion An encoder configured using this preset is expected to achieve a faster encoding at a lower compression quality than an encoder configured with the preset kVTCompressionPreset_HighQuality or kVTCompressionPreset_Balanced. The presets kVTCompressionPreset_HighQuality and kVTCompressionPreset_Balanced may be preferred for a higher compression quality. See also kVTCompressionPreset_HighQuality, kVTCompressionPreset_Balanced, kVTCompressionPreset_VideoConferencing.

func KVTCompressionPreset_VideoConferencing

func KVTCompressionPreset_VideoConferencing() uintptr

@constant kVTCompressionPreset_VideoConferencing @abstract A preset to achieve low-latency encoding for real-time communication applications. @discussion This preset requires setting kVTVideoEncoderSpecification_EnableLowLatencyRateControl to kCFBooleanTrue for encoding in the low-latency mode. See also kVTCompressionPreset_HighQuality, kVTCompressionPreset_Balanced, kVTCompressionPreset_HighSpeed.

func KVTCompressionPropertyCameraCalibrationKey_ExtrinsicOrientationQuaternion

func KVTCompressionPropertyCameraCalibrationKey_ExtrinsicOrientationQuaternion() uintptr

func KVTCompressionPropertyCameraCalibrationKey_ExtrinsicOriginSource

func KVTCompressionPropertyCameraCalibrationKey_ExtrinsicOriginSource() uintptr

func KVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrix

func KVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrix() uintptr

func KVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrixProjectionOffset

func KVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrixProjectionOffset() uintptr

func KVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrixReferenceDimensions

func KVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrixReferenceDimensions() uintptr

func KVTCompressionPropertyCameraCalibrationKey_LensAlgorithmKind

func KVTCompressionPropertyCameraCalibrationKey_LensAlgorithmKind() uintptr

The following keys are required in each kVTCompressionPropertyKey_CameraCalibrationDataLensCollection dictionary. @constant kVTCompressionPropertyCameraCalibrationKey_LensAlgorithmKind @abstract Specifies the camera calibration methodology. @discussion If the algorithm kind is ParametricLens, the camera lens collection requires camera intrinsic and extrinsic parameters. @constant kVTCompressionPropertyCameraCalibrationKey_LensDomain @abstract Specifies the kind of lens (e.g., color). @constant kVTCompressionPropertyCameraCalibrationKey_LensIdentifier @abstract Specifies a unique number associated with a lens. @constant kVTCompressionPropertyCameraCalibrationKey_LensRole @abstract Specifies the particular use of the lens in the camera system (e.g., left or right for a stereo system). @discussion For a stereoscopic camera system, one lens should have the left role and another should have the right role. @constant kVTCompressionPropertyCameraCalibrationKey_LensDistortions @abstract Specifies the first and second radial distortion coefficients(k1 and k2) used to correct the distortion that appeared as curved lines for straight lines and the first and second tangential distortion coefficients(p1 and p2) used to correct the distortion caused by a lens's improper alignment of physical elements. @discussion The values are in a CFArray of four CFNumbers in k1, k2, p1 and p2 order. @constant kVTCompressionPropertyCameraCalibrationKey_LensFrameAdjustmentsPolynomialX @abstract Specifies a three element polynomial for mapping x axis UV parameters with an adjustment using the equation `x' = polynomialX[0] + polynomialX[1]*x + polynomialX[2]*x^3`. @discussion The values are in a CFArray of three CFNumbers(float) in the order polynomialX[0], polynomialX[1] & polynomialX[2]. The polynomial transform origin is at the center of the frame. The default values of elements of polynomialX[] are [0.0, 1.0, 0.0]. @constant kVTCompressionPropertyCameraCalibrationKey_LensFrameAdjustmentsPolynomialY @abstract Specifies a three element polynomial for mapping y axis UV parameters with an adjustment using the equation `y' = polynomialY[0] + polynomialY[1]*y + polynomialY[2]*y^3`. @discussion The values are in a CFArray of three CFNumbers(float) in the order polynomialY[0], polynomialY[1] & polynomialY[2]. The polynomial transform origin is at the center of the frame. The default values of elements of polynomialY[] are [0.0, 1.0, 0.0]. @constant kVTCompressionPropertyCameraCalibrationKey_RadialAngleLimit @abstract Specifies the outer limit of the calibration validity in degrees of angle eccentric from the optical axis. @discussion The value is linked to radial distortion corrections with k1 and k2. @constant kVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrix @abstract Specifies the 3x3 camera intrinsic matrix for camera calibration. @discussion Camera intrinsic matrix is a CFData containing a matrix_float3x3, which is column-major. Each element is in IEEE754 native-endian 32-bit floating point. It has the following contents: fx s cx 0 fy cy 0 0 1 fx and fy are the focal length in pixels. For square pixels, they will have the same value. cx and cy are the coordinates of the principal point. The origin is the upper left of the frame. s is an optional skew factor. @constant kVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrixProjectionOffset @abstract Specifies the offset of the point of perspective relative to the rectilinear projection. @constant kVTCompressionPropertyCameraCalibrationKey_IntrinsicMatrixReferenceDimensions @abstract Specifies the image dimensions to which the camera’s intrinsic matrix values are relative. @discussion Values are width and height in a CFDictionary. Dictionary keys are compatible with CGSize dictionary, namely "Width" and "Height". @constant kVTCompressionPropertyCameraCalibrationKey_ExtrinsicOriginSource @abstract Identifies how the origin of the camera system's extrinsics are determined. @discussion The 'blin' value indicates the center of transform is determined by the point mid way along the dimensions indicated by the StereoCameraSystemBaselineBox held in the StereoCameraSystemBox. Each left and right lens within a stereoscopic camera system is equidistant from this point, so the 'blin' value is halved when associated with the respective left and right lenses. @constant kVTCompressionPropertyCameraCalibrationKey_ExtrinsicOrientationQuaternion @abstract Specifies a camera’s orientation to a world or scene coordinate system. The orientation value is a unit quaternion(ix, iy, and iz) instead of the classical 3x3 matrix. @discussion The values are in a CFArray of three CFNumbers in ix, iy, and iz order.

func KVTCompressionPropertyCameraCalibrationKey_LensDistortions

func KVTCompressionPropertyCameraCalibrationKey_LensDistortions() uintptr

func KVTCompressionPropertyCameraCalibrationKey_LensDomain

func KVTCompressionPropertyCameraCalibrationKey_LensDomain() uintptr

func KVTCompressionPropertyCameraCalibrationKey_LensFrameAdjustmentsPolynomialX

func KVTCompressionPropertyCameraCalibrationKey_LensFrameAdjustmentsPolynomialX() uintptr

func KVTCompressionPropertyCameraCalibrationKey_LensFrameAdjustmentsPolynomialY

func KVTCompressionPropertyCameraCalibrationKey_LensFrameAdjustmentsPolynomialY() uintptr

func KVTCompressionPropertyCameraCalibrationKey_LensIdentifier

func KVTCompressionPropertyCameraCalibrationKey_LensIdentifier() uintptr

func KVTCompressionPropertyCameraCalibrationKey_LensRole

func KVTCompressionPropertyCameraCalibrationKey_LensRole() uintptr

func KVTCompressionPropertyCameraCalibrationKey_RadialAngleLimit

func KVTCompressionPropertyCameraCalibrationKey_RadialAngleLimit() uintptr

func KVTCompressionPropertyKey_AllowFrameReordering

func KVTCompressionPropertyKey_AllowFrameReordering() uintptr

@constant kVTCompressionPropertyKey_AllowFrameReordering @abstract Enables frame reordering. @discussion In order to encode B frames, a video encoder must reorder frames, which means that the order in which they will be emitted and stored (the decode order) is different from the order in which they were presented to the video encoder (the display order). True by default. Set this to false to prevent frame reordering.

func KVTCompressionPropertyKey_AllowOpenGOP

func KVTCompressionPropertyKey_AllowOpenGOP() uintptr

@constant kVTCompressionPropertyKey_AllowOpenGOP @abstract Enables Open GOP (Group Of Pictures) encoding. @discussion Only applicable to certain video encoders. For HEVC encoding the property value is kCFBooleanTrue by default - which means that the encoder may use Open GOP structures, but it is not guaranteed to. Set this to kCFBooleanFalse to prevent the encoder from using any form of Open GOP during encoding. If set to kCFBooleanFalse, this will mean that the encoder will generate groups of pictures that are independently decodable; there will be no frame dependencies across sync samples (frames where kCMSampleAttachmentKey_NotSync is absent or kCFBooleanFalse) When the value is kCFBooleanTrue, the encoder may use Open GOP frame dependency structures to increase compression efficiency or quality.

func KVTCompressionPropertyKey_AllowTemporalCompression

func KVTCompressionPropertyKey_AllowTemporalCompression() uintptr

@constant kVTCompressionPropertyKey_AllowTemporalCompression @abstract Enables temporal compression. @discussion True by default. Set this to false to require key-frame-only compression.

func KVTCompressionPropertyKey_AlphaChannelMode

func KVTCompressionPropertyKey_AlphaChannelMode() uintptr

@constant kVTCompressionPropertyKey_AlphaChannelMode @abstract Specifies whether the source images' RGB values have been premultiplied by the alpha channel values. @discussion Video compression will fail if source image buffers have a mismatched value in their kCVImageBufferAlphaChannelMode attachment. If this property is not set, the encoder may read the first source image buffer's kCVImageBufferAlphaChannelMode attachment. If neither the property nor the first buffer's attachment is set, defaults to kVTAlphaChannelMode_PremultipliedAlpha.

func KVTCompressionPropertyKey_AspectRatio16x9

func KVTCompressionPropertyKey_AspectRatio16x9() uintptr

@constant kVTCompressionPropertyKey_AspectRatio16x9 @abstract Indicates that the DV video stream should have the 16x9 flag set. @discussion This property is supported by the DV25/50 family of encoders. When false, the picture aspect ratio is 4:3. When true, the picture aspect ratio is 16:9. Either way, a fixed PixelAspectRatio is used (the specific value depends on whether the format is NTSC or PAL).

func KVTCompressionPropertyKey_AverageBitRate

func KVTCompressionPropertyKey_AverageBitRate() uintptr

@constant kVTCompressionPropertyKey_AverageBitRate @abstract The long-term desired average bit rate in bits per second. @discussion This is not a hard limit; the bit rate may peak above this. The default bit rate is zero, which indicates that the video encoder should determine the size of compressed data. Note that bit rate settings only have an effect when timing information is provided for source frames, and that some codecs do not support limiting to specified bit rates.

func KVTCompressionPropertyKey_BaseLayerBitRateFraction

func KVTCompressionPropertyKey_BaseLayerBitRateFraction() uintptr

@constant kVTCompressionPropertyKey_BaseLayerBitRateFraction @abstract This property indicates the desired bit rate fraction of the base layer @discussion This is not a hard limit; the encoder will attempt to satisfy this ratio when possible. If not set, the encoder will manage the ratio. For example: If the target bitrate is set to 500kbps and kVTCompressionPropertyKey_BaseLayerBitRateFraction is set to 0.6, the base layer will be given a budget of 300kbps and the enhancement layer 200kbps.

func KVTCompressionPropertyKey_BaseLayerFrameRate

func KVTCompressionPropertyKey_BaseLayerFrameRate() uintptr

@constant kVTCompressionPropertyKey_BaseLayerFrameRate @abstract This property indicates the desired frame rate for the base temporal layer used in hierarchical video encoding. @discussion The frame rate is measured in frames per second. This property is only implemented by encoders which support hierarchical frame encoding, and requests that this encoding feature be enabled.

func KVTCompressionPropertyKey_BaseLayerFrameRateFraction

func KVTCompressionPropertyKey_BaseLayerFrameRateFraction() uintptr

@constant kVTCompressionPropertyKey_BaseLayerFrameRateFraction @abstract This property indicates the desired frame rate fraction of the base layer. @discussion This property indicates the fraction of total frames submitted that should be encoded in the base layer. For example, a value of 0.5 means that half of the frames are in the base layer, and half are in the enhancement layer.

func KVTCompressionPropertyKey_CalculateMeanSquaredError

func KVTCompressionPropertyKey_CalculateMeanSquaredError() uintptr

@constant kVTCompressionPropertyKey_CalculateMeanSquaredError @abstract This property requests that the encoder measure and output the Mean Squared Error(MSE) quality metric. @discussion The MSE value returned may be measured using an internal representation of the decoded frame which may lack filtering or processing present in the actual decoded frame. Because of this, there may be a small delta between the reported MSE and the true MSE. If supported, the MSE values will be returned as sample buffer attachments on the encoded frame using the kVTSampleAttachmentKey_QualityMetrics key.

func KVTCompressionPropertyKey_CameraCalibrationDataLensCollection

func KVTCompressionPropertyKey_CameraCalibrationDataLensCollection() uintptr

@constant kVTCompressionPropertyKey_CameraCalibrationDataLensCollection @abstract Specifies intrinsic and extrinsic parameters for single or multiple lenses. @discussion The property value is an array of dictionaries describing the camera calibration data for each lens. The camera calibration data includes intrinsics and extrinics with other parameters. For a stereoscopic camera system, the left and right lens signaling can be done with the kVTCompressionPropertyCameraCalibrationKey_LensRole key and its value.

func KVTCompressionPropertyKey_CleanAperture

func KVTCompressionPropertyKey_CleanAperture() uintptr

@constant kVTCompressionPropertyKey_CleanAperture @abstract Describes the clean aperture for encoded frames. @discussion Some video encoders may enforce specific clean apertures; in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr). The clean aperture will be set on the format description for output samples, and may affect source frame scaling. NULL is a valid value for this property, meaning that the clean aperture is the full width and height.

func KVTCompressionPropertyKey_ColorPrimaries

func KVTCompressionPropertyKey_ColorPrimaries() uintptr

@constant kVTCompressionPropertyKey_ColorPrimaries @abstract Indicates color primaries for compressed content. @discussion Some video encoders may enforce specific colorimetry; in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr). The value will be set on the format description for output sample buffers.

func KVTCompressionPropertyKey_ConstantBitRate

func KVTCompressionPropertyKey_ConstantBitRate() uintptr

@constant kVTCompressionPropertyKey_ConstantBitRate @abstract Requires that the encoder use a Constant Bit Rate algorithm. @discussion The property kVTCompressionPropertyKey_ExpectedFrameRate should be set along with kVTCompressionPropertyKey_ConstantBitRate to ensure effective CBR rate control. This property is not compatible with kVTCompressionPropertyKey_DataRateLimits, kVTCompressionPropertyKey_AverageBitRate, and kVTCompressionPropertyKey_VariableBitRate. The encoder will pad the frame if they are smaller than they need to be based on the Constant BitRate. This property is not recommended for general streaming or export scenarios. It is intended for interoperability with certain streaming CDNs which specifically require that data rates not drop even during low motion and activity scenes. This is not supported in all encoders or in all encoder operating modes. kVTPropertyNotSupportedErr will be returned when this option is not supported.

func KVTCompressionPropertyKey_ContentLightLevelInfo

func KVTCompressionPropertyKey_ContentLightLevelInfo() uintptr

@constant kVTCompressionPropertyKey_ContentLightLevelInfo @abstract The value is 4 bytes containing a big-endian structure as defined in the Content Light Level Info SEI message. @discussion The value will be set on the format description for output sample buffers, and incorporated into the appropriate SEI NAL unit where supported by the encoder.

func KVTCompressionPropertyKey_DataRateLimits

func KVTCompressionPropertyKey_DataRateLimits() uintptr

@constant kVTCompressionPropertyKey_DataRateLimits @abstract Zero, one or two hard limits on data rate. @discussion Each hard limit is described by a data size in bytes and a duration in seconds, and requires that the total size of compressed data for any contiguous segment of that duration (in decode time) must not exceed the data size. By default, no data rate limits are set. The property is a CFArray of an even number of CFNumbers, alternating between bytes and seconds. Note that data rate settings only have an effect when timing information is provided for source frames, and that some codecs do not support limiting to specified data rates. When both kVTCompressionPropertyKey_DataRateLimits and kVTCompressionPropertyKey_AverageBitRate are supported, it is recommended that kVTCompressionPropertyKey_AverageBitRate be set when kVTCompressionPropertyKey_DataRateLimits is set. If kVTCompressionPropertyKey_AverageBitRate is not specified, an overall average bit rate target will be selected at a safe margin below the kVTCompressionPropertyKey_DataRateLimits target, so that regional overshoot in the encoding will not exceed the kVTCompressionPropertyKey_DataRateLimits. The overall average bitrate target generated from kVTCompressionPropertyKey_DataRateLimits in the absence of kVTCompressionPropertyKey_AverageBitRate may not be ideal for all scenarios. Encoding is more likely to undershoot a requested kVTCompressionPropertyKey_AverageBitRate if the specified target is too close to a hard limit specified by kVTCompressionPropertyKey_DataRateLimits.

func KVTCompressionPropertyKey_Depth

func KVTCompressionPropertyKey_Depth() uintptr

@constant kVTCompressionPropertyKey_Depth @abstract The pixel depth of the encoded video. @discussion This property is only supported by video encoders for formats that are tied to particular pixel formats (eg, 16-bit RGB, 24-bit RGB).

func KVTCompressionPropertyKey_EnableLTR

func KVTCompressionPropertyKey_EnableLTR() uintptr

@constant kVTCompressionPropertyKey_EnableLTR @abstract Enable Long Term Reference (LTR) frames during encoding @discussion When an LTR frame is encoded, encoder will signal a unique token of the LTR frame in the encoder callback through: kVTSampleAttachmentKey_RequireLTRAcknowledgementToken Clients are responsible for reporting acknowledged LTR frames to the encoder through: kVTEncodeFrameOptionKey_AcknowledgedLTRTokens Client can request a refresh frame at any time through: kVTEncodeFrameOptionKey_ForceLTRRefresh Encoder will encode a P frame by using one of acknowledged LTR frames as the reference. Encoder will encode a new reference frame using an acknowledged LTR, or an IDR if no LTR frames have been acknowledged. Also see: kVTEncodeFrameOptionKey_AcknowledgedLTRTokens kVTEncodeFrameOptionKey_ForceLTRRefresh kVTSampleAttachmentKey_RequireLTRAcknowledgementToken

func KVTCompressionPropertyKey_EncoderID

func KVTCompressionPropertyKey_EncoderID() uintptr

@constant kVTCompressionPropertyKey_EncoderID @abstract Specifies a particular video encoder by its ID string. @discussion Matches the value specified in kVTVideoEncoderSpecification_EncoderID, and the kVTVideoEncoderList_EncoderID value returned from VTCopyVideoEncoderList.

func KVTCompressionPropertyKey_EstimatedAverageBytesPerFrame

func KVTCompressionPropertyKey_EstimatedAverageBytesPerFrame() uintptr

@constant kVTCompressionPropertyKey_EstimatedAverageBytesPerFrame @abstract Returns the encoder's estimate of the expected size of a single encoded frame in bytes, based on current configuration. @discussion When supported, this option is intended to allow clients to estimate the output file size for an encoded video stream. This property is not implemented by all video encoders.

func KVTCompressionPropertyKey_ExpectedDuration

func KVTCompressionPropertyKey_ExpectedDuration() uintptr

@constant kVTCompressionPropertyKey_ExpectedDuration @abstract Indicates the expected total duration for the compression session, if known. @discussion By default, this is zero, indicating "unknown".

func KVTCompressionPropertyKey_ExpectedFrameRate

func KVTCompressionPropertyKey_ExpectedFrameRate() uintptr

@constant kVTCompressionPropertyKey_ExpectedFrameRate @abstract Indicates the expected frame rate of the video to be encoded. @discussion 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".

func KVTCompressionPropertyKey_FieldCount

func KVTCompressionPropertyKey_FieldCount() uintptr

@constant kVTCompressionPropertyKey_FieldCount @abstract Indicates whether the frames should be encoded progressive (1) or interlaced (2). @discussion The field count will be set on the format description for output samples, and may affect source frame scaling. NULL is a valid value for this property.

func KVTCompressionPropertyKey_FieldDetail

func KVTCompressionPropertyKey_FieldDetail() uintptr

@constant kVTCompressionPropertyKey_FieldDetail @abstract Indicates field ordering for encoded interlaced frames. @discussion Some video encoders may enforce specific field ordering; in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr). The field detail will be set on the format description for output samples, and may affect source frame scaling. NULL is a valid value for this property.

func KVTCompressionPropertyKey_GammaLevel

func KVTCompressionPropertyKey_GammaLevel() uintptr

@constant kVTCompressionPropertyKey_GammaLevel @abstract Indicates gamma level for compressed content. @discussion This property allows the caller to specify a gamma value to include in the CMVideoFormatDescription attached to output CMSampleBuffers. It does not change pixel data being encoded.

func KVTCompressionPropertyKey_H264EntropyMode

func KVTCompressionPropertyKey_H264EntropyMode() uintptr

@constant kVTCompressionPropertyKey_H264EntropyMode @abstract The entropy encoding mode for H.264 compression. @discussion If supported by an H.264 encoder, this property controls whether the encoder should use Context-based Adaptive Variable Length Coding (CAVLC) or Context-based Adaptive Binary Arithmetic Coding (CABAC). CABAC generally gives better compression at the expense of higher computational overhead. The default value is encoder-specific and may change depending on other encoder settings. Care should be taken when using this property -- changes may result in a configuration which is not compatible with a requested Profile and Level. Results in this case are undefined, and could include encode errors or a non-compliant output stream.

func KVTCompressionPropertyKey_HDRMetadataInsertionMode

func KVTCompressionPropertyKey_HDRMetadataInsertionMode() uintptr

@constant kVTCompressionPropertyKey_HDRMetadataInsertionMode @abstract The mode for HDR metadata in the output bitstream. @discussion If set to kVTHDRMetadataInsertionMode_None, no HDR metadata will be present in the output bitstream. For other modes, VTCompressionSession will determine what type of HDR metadata to insert based on the output color space. e.g. DolbyVision, HDR10, etc. This property has no effect if the output color space is not HDR, or if there is currently no underlying support for the HDR format. kVTHDRMetadataInsertionMode_RequestSDRRangePreservation will only insert metadata when the following is true: transfer function is kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ color primaries is kCVImageBufferColorPrimaries_ITU_R_2020 color matrix is kCVImageBufferYCbCrMatrix_ITU_R_2020

func KVTCompressionPropertyKey_HasLeftStereoEyeView

func KVTCompressionPropertyKey_HasLeftStereoEyeView() uintptr

@constant kVTCompressionPropertyKey_HasLeftStereoEyeView @abstract Specifies the value of kCMFormatDescriptionExtension_HasLeftStereoEyeView. @discussion The value will be set on the format description for output samples and may affect the decoded frame presentation.

func KVTCompressionPropertyKey_HasRightStereoEyeView

func KVTCompressionPropertyKey_HasRightStereoEyeView() uintptr

@constant kVTCompressionPropertyKey_HasRightStereoEyeView @abstract Specifies the value of kCMFormatDescriptionExtension_HasRightStereoEyeView. @discussion The value will be set on the format description for output samples and may affect the decoded frame presentation.

func KVTCompressionPropertyKey_HeroEye

func KVTCompressionPropertyKey_HeroEye() uintptr

@constant kVTCompressionPropertyKey_HeroEye @abstract Specifies the value of kCMFormatDescriptionExtension_HeroEye. @discussion The value will be set on the format description for output samples and may affect the decoded frame presentation.

func KVTCompressionPropertyKey_HorizontalDisparityAdjustment

func KVTCompressionPropertyKey_HorizontalDisparityAdjustment() uintptr

func KVTCompressionPropertyKey_HorizontalFieldOfView

func KVTCompressionPropertyKey_HorizontalFieldOfView() uintptr

@constant kVTCompressionPropertyKey_HorizontalFieldOfView @abstract Specifies the value of kCMFormatDescriptionExtension_HorizontalFieldOfView. @discussion The value is a CFNumber holding an unsigned 32-bit integer that is interpreted in millidegree or thousandths of a degree (e.g., 123456 is 123.456 degree). This property is optional and should only be specified if the field of view is known.

func KVTCompressionPropertyKey_ICCProfile

func KVTCompressionPropertyKey_ICCProfile() uintptr

@constant kVTCompressionPropertyKey_ICCProfile @abstract Indicates ICC profile for compressed content. @discussion Some video encoders may enforce specific colorimetry; in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr). If this property and any of the previous three are all set, they should be set to consistent values, or undefined behavior may occur. The value will be set on the format description for output sample buffers. NULL can be a valid value for this property.

func KVTCompressionPropertyKey_MVHEVCLeftAndRightViewIDs

func KVTCompressionPropertyKey_MVHEVCLeftAndRightViewIDs() uintptr

@constant kVTCompressionPropertyKey_MVHEVCLeftAndRightViewIDs @abstract Specifies which of the ViewIDs provided via kVTCompressionPropertyKey_MVHEVCViewIDs is the "left view id" and which is the "right view id". @discussion MV-HEVC specific. These ViewIDs will be incorporated into the 3D Reference Displays Info SEI message. The property value is a CFArray containing two ViewIDs as CFNumbers with the first correspponding to the left eye and the second corresponding to the right eye. The property is NULL by default.

func KVTCompressionPropertyKey_MVHEVCVideoLayerIDs

func KVTCompressionPropertyKey_MVHEVCVideoLayerIDs() uintptr

@constant kVTCompressionPropertyKey_MVHEVCVideoLayerIDs @abstract Requests multi-image encoding; advises encoder to expect CMTaggedBufferGroups with specific CMTags referencing these MV-HEVC VideoLayerIDs. @discussion MV-HEVC specific. The property value is a CFArray containing VideoLayerIDs as CFNumbers. The property is NULL by default.

func KVTCompressionPropertyKey_MVHEVCViewIDs

func KVTCompressionPropertyKey_MVHEVCViewIDs() uintptr

@constant kVTCompressionPropertyKey_MVHEVCViewIDs @abstract Specifies the ViewIDs corresponding to the VideoLayerIDs provided via kVTCompressionPropertyKey_MVHEVCVideoLayerIDs. @discussion MV-HEVC specific. The property value is a CFArray containing ViewIDs as CFNumbers. The entries in this array should be in the same order and have the same count as the value set via kVTCompressionPropertyKey_MVHEVCVideoLayerIDs. The property is NULL by default.

func KVTCompressionPropertyKey_MasteringDisplayColorVolume

func KVTCompressionPropertyKey_MasteringDisplayColorVolume() uintptr

@constant kVTCompressionPropertyKey_MasteringDisplayColorVolume @abstract The value is 24 bytes containing a big-endian structure as defined in ISO/IEC 23008-2:2015(E), D.2.28 Mastering display colour volume SEI message. @discussion The value will be set on the format description for output sample buffers, and incorporated into the appropriate SEI NAL unit where supported by the encoder.

func KVTCompressionPropertyKey_MaxAllowedFrameQP

func KVTCompressionPropertyKey_MaxAllowedFrameQP() uintptr

@constant kVTCompressionPropertyKey_MaxAllowedFrameQP @abstract Specifies the maximum allowed encoded frame QP (Quantization Parameter). @discussion This is an optional parameter. Use it only when you have a specific requirement for the video quality and you are familiar with frame QP. To satisfy this requirement, the encoder may drop frames to maintain bitrate and QP goals. This is not supported in all encoders or in all encoder operating modes. kVTPropertyNotSupportedErr will be returned when this option is not supported.

func KVTCompressionPropertyKey_MaxFrameDelayCount

func KVTCompressionPropertyKey_MaxFrameDelayCount() uintptr

@constant kVTCompressionPropertyKey_MaxFrameDelayCount @abstract The maximum frame delay count is the maximum number of frames that a compressor is allowed to hold before it must output a compressed frame. @discussion It limits the number of frames that may be held in the "compression window". If the maximum frame delay count is M, then before the call to encode frame N returns, frame N-M must have been emitted. The default is kVTUnlimitedFrameDelayCount, which sets no limit on the compression window.

func KVTCompressionPropertyKey_MaxH264SliceBytes

func KVTCompressionPropertyKey_MaxH264SliceBytes() uintptr

@constant kVTCompressionPropertyKey_MaxH264SliceBytes @abstract Specifies the maximum slice size for H.264 encoding @discussion If supported by an H.264 encoder, the value limits the size in bytes of slices produced by the encoder, where possible. By default, no limit is specified. A value of zero implies default behavior.

func KVTCompressionPropertyKey_MaxKeyFrameInterval

func KVTCompressionPropertyKey_MaxKeyFrameInterval() uintptr

@constant kVTCompressionPropertyKey_MaxKeyFrameInterval @abstract The maximum interval between key frames, also known as the key frame rate. @discussion Key frames, also known as sync frames, reset inter-frame dependencies; decoding a key frame is sufficient to prepare a decoder for correctly decoding the difference frames that follow. Video encoders are allowed to generate key frames more frequently if this would result in more efficient compression. The default key frame interval is 0, which indicates that the video encoder should choose where to place all key frames. A key frame interval of 1 indicates that every frame must be a key frame, 2 indicates that at least every other frame must be a key frame, etc. See also kVTCompressionPropertyKey_AllowTemporalCompression. This key can be set in conjunction with kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration, and both limits will be enforced - requiring a keyframe every X frames or every Y seconds, whichever comes first.

func KVTCompressionPropertyKey_MaxKeyFrameIntervalDuration

func KVTCompressionPropertyKey_MaxKeyFrameIntervalDuration() uintptr

@constant kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration @abstract The maximum duration from one key frame to the next in seconds. @discussion Zero by default, which means no limit. This property is particularly useful when the frame rate is variable. See kVTCompressionPropertyKey_MaxKeyFrameInterval for more discussion of key frames. This key can be set in conjunction with kVTCompressionPropertyKey_MaxKeyFrameInterval, and both limits will be enforced - requiring a keyframe every X frames or every Y seconds, whichever comes first.

func KVTCompressionPropertyKey_MaximizePowerEfficiency

func KVTCompressionPropertyKey_MaximizePowerEfficiency() uintptr

@constant kVTCompressionPropertyKey_MaximizePowerEfficiency @abstract Hints to the video encoder that it should maximize power efficiency during encode. @discussion For compression where the client is operating in the background, clients may set this property to kCFBooleanTrue, which indicates that the encoder can take steps to minimize impact on power usage and other system activity. Setting the property to NULL is equivalent to setting it to kCFBooleanFalse. Not all video encoders support this property. By default, this property is NULL. If the kVTCompressionPropertyKey_RealTime property is set to kCFBooleanTrue, the video encoder may act as though this property were set to kCFBooleanFalse.

func KVTCompressionPropertyKey_MaximumRealTimeFrameRate

func KVTCompressionPropertyKey_MaximumRealTimeFrameRate() uintptr

@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".

func KVTCompressionPropertyKey_MinAllowedFrameQP

func KVTCompressionPropertyKey_MinAllowedFrameQP() uintptr

@constant kVTCompressionPropertyKey_MinAllowedFrameQP @abstract Specifies the minimum allowed encoded frame QP (Quantization Parameter). @discussion This is an optional parameter. Use it only when you have a specific requirement for the video quality and you are familiar with frame QP. This is not supported in all encoders or in all encoder operating modes. kVTPropertyNotSupportedErr will be returned when this option is not supported.

func KVTCompressionPropertyKey_MoreFramesAfterEnd

func KVTCompressionPropertyKey_MoreFramesAfterEnd() uintptr

@constant kVTCompressionPropertyKey_MoreFramesAfterEnd @abstract Indicates whether and how a compression session's frames will be concatenated with other compressed frames to form a longer series. @discussion True if frames compressed in a separate session will be concatenated following the end of this one. False if this is a stand-alone session, or if this session will encode the last segment of a multi-segment compression. By default, false.

func KVTCompressionPropertyKey_MoreFramesBeforeStart

func KVTCompressionPropertyKey_MoreFramesBeforeStart() uintptr

@constant kVTCompressionPropertyKey_MoreFramesBeforeStart @abstract Indicates whether and how a compression session's frames will be concatenated with other compressed frames to form a longer series. @discussion True if frames compressed in a separate session will be concatenated before the beginning of this one. False if this is a stand-alone session, or if this session will encode the first segment of a multi-segment compression. By default, false. This information enables video encoders to ensure that compressed segments can be concatenated smoothly -- for example, avoiding data rate spikes where segments are joined.

func KVTCompressionPropertyKey_MultiPassStorage

func KVTCompressionPropertyKey_MultiPassStorage() uintptr

@const kVTCompressionPropertyKey_MultiPassStorage @abstract Enables multi-pass compression and provides storage for encoder-private data. @discussion Some video encoders support multi-pass encoding. To determine whether a VTCompressionSession supports multi-pass encoding, you can inspect the dictionary returned by VTSessionCopySupportedPropertyDictionary to see if it contains kVTCompressionPropertyKey_MultiPassStorage. To enable multi-pass encoding, set the kVTCompressionPropertyKey_MultiPassStorage property to a VTMultiPassStorage object, which you can create by calling VTMultiPassStorageCreate. Then make one or more passes over the source frames. Bracket each pass with a call to VTCompressionSessionBeginPass at the beginning and VTCompressionSessionEndPass at the end. In the first pass of multi-pass encoding, call VTCompressionSessionEncodeFrame for every source frame (just as in single-pass encoding). At the end of every pass, call VTCompressionSessionEndPass. This may take some time as the video encoder determines whether it can improve the encoding by performing another pass. If the user cancels encoding during this time, call VTCompressionSessionInvalidate to interrupt the processing. VTCompressionSessionEndPass will indicate via the furtherPassesRequestedOut argument whether the video encoder would like to perform another pass. There is no particular bound on the number of passes the video encoder may request, but the client is free to disregard this request and use the last-emitted set of frames. If *furtherPassesRequestedOut is set to true and you want to perform another pass, call VTCompressionSessionGetTimeRangesForNextPass to determine the time ranges for the next pass. Only the source frames within these time ranges need to be passed to VTCompressionSessionEncodeFrame; the video encoder is satisfied with the already-emitted compressed frames outside these ranges and they can be kept for the final output. In second and successive passes, you must pass identical source frames, frame properties and timestamps to VTCompressionSessionEncodeFrame as in the first pass, with the exception that frames not in the requested time ranges should be skipped. You can create and use a VTFrameSilo object to merge sequences of compressed frames across passes during multi-pass encoding.

func KVTCompressionPropertyKey_NumberOfPendingFrames

func KVTCompressionPropertyKey_NumberOfPendingFrames() uintptr

@constant kVTCompressionPropertyKey_NumberOfPendingFrames @abstract The number of pending frames in the compression session. @discussion This number may decrease asynchronously.

func KVTCompressionPropertyKey_OutputBitDepth

func KVTCompressionPropertyKey_OutputBitDepth() uintptr

@constant kVTCompressionPropertyKey_OutputBitDepth @abstract When set, requires the encoder to output bitstream with the requested bit depth, if supported by the configured profile level setting. In the absence of this property, the video encoder will assume the highest bit depth allowable by the configured profile level setting.

func KVTCompressionPropertyKey_PixelAspectRatio

func KVTCompressionPropertyKey_PixelAspectRatio() uintptr

@constant kVTCompressionPropertyKey_PixelAspectRatio @abstract Describes the pixel aspect ratio for encoded frames. @discussion Some video encoders may enforce specific pixel aspect ratios; in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr). The pixel aspect ratio will be set on the format description for output samples, and may affect source frame scaling. NULL is a valid value for this property, meaning square pixels (1:1).

func KVTCompressionPropertyKey_PixelBufferPoolIsShared

func KVTCompressionPropertyKey_PixelBufferPoolIsShared() uintptr

@constant kVTCompressionPropertyKey_PixelBufferPoolIsShared @abstract Indicates whether the a common pixel buffer pool is shared between the video encoder and the session client. @discussion This is false if separate pools are used because the video encoder's and the client's pixel buffer attributes were incompatible.

func KVTCompressionPropertyKey_PixelTransferProperties

func KVTCompressionPropertyKey_PixelTransferProperties() uintptr

@constant kVTCompressionPropertyKey_PixelTransferProperties @abstract Specifies properties to configure a VTPixelTransferSession used to transfer source frames from the client's image buffers to the video encoder's image buffers, if necessary. @discussion Setting this property alone does not necessarily guarantee that a VTPixelTransferSession will be created. See VTPixelTransferProperties.h.

func KVTCompressionPropertyKey_PreserveAlphaChannel

func KVTCompressionPropertyKey_PreserveAlphaChannel() uintptr

@constant kVTCompressionPropertyKey_PreserveAlphaChannel @abstract Instructs the encoder to encode or discard the alpha channel of input video frames @discussion This property allows a client to specify whether or not the alpha channel in the source pixelBuffers should be encoded. The client may set this to kCFBooleanFalse in cases where they are not interested in preserving alpha, or if the alpha channel is known to be fully opaque. This property is not supported by all encoders.

func KVTCompressionPropertyKey_PreserveDynamicHDRMetadata

func KVTCompressionPropertyKey_PreserveDynamicHDRMetadata() uintptr

@constant kVTCompressionPropertyKey_PreserveDynamicHDRMetadata @abstract Controls whether or not to preserve any dynamic HDR metadata on the input pixel buffer @discussion If set to false, and kVTCompressionPropertyKey_HDRMetadataInsertionMode is not kVTHDRMetadataInsertionMode_None, then VTCompressionSession will generate the dynamic HDR metadata for the pixel buffer, if the HDR format is supported.

func KVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality

func KVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality() uintptr

@constant kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality @abstract Hint for the video encoder that it should maximize its speed during encode, sacrificing quality if needed @discussion Video encoders sometimes have a tradeoff available between encoding speed and quality at a given bitrate. For example, by spending more time refining encoding decisions, it may be possible to make marginal improvements on quality. This property lets a client indicate its preference for any such tradeoff. Clients may set this property to kCFBooleanTrue to indicate that the encoder can take steps to maximize its speed by reducing quality, or to kCFBooleanFalse to indicate that the priority should be maximizing quality (at a given bitrate). When the property value is NULL, the video encoder will choose its default behavior. H.264 and HEVC hardware video encoders prioritize quality over speed by default. ProRes hardware encoders currently prioritize speed over quality by default. Not all video encoders support this property. By default, this property is NULL.

func KVTCompressionPropertyKey_ProfileLevel

func KVTCompressionPropertyKey_ProfileLevel() uintptr

@constant kVTCompressionPropertyKey_ProfileLevel @abstract Specifies the profile and level for the encoded bitstream. @discussion Available profiles and levels vary across formats and between video encoders. Video encoders should use standard keys where available, and follow standard patterns where not.

func KVTCompressionPropertyKey_ProgressiveScan

func KVTCompressionPropertyKey_ProgressiveScan() uintptr

@constant kVTCompressionPropertyKey_ProgressiveScan @abstract Indicates that the DV video stream should have the progressive flag set. @discussion This property is supported by the DV25/50 family of encoders. If false, content is encoded as interlaced. If true, content is encoded as progressive. The value of this property fixes the FieldCount and FieldDetail properties.

func KVTCompressionPropertyKey_ProjectionKind

func KVTCompressionPropertyKey_ProjectionKind() uintptr

@constant kVTCompressionPropertyKey_ProjectionKind @abstract Specifies the value of kCMFormatDescriptionExtension_ProjectionKind. @discussion The value will be set on the format description for output samples and may affect the decoded frame presentation.

func KVTCompressionPropertyKey_Quality

func KVTCompressionPropertyKey_Quality() uintptr

@constant kVTCompressionPropertyKey_Quality @abstract The desired compression quality. @discussion Some encoders, such as JPEG, describe the compression level of each image with a quality value. This value should be specified as a number in the range of 0.0 to 1.0, where low = 0.25, normal = 0.50, high = 0.75, and 1.0 implies lossless compression for encoders that support it.

func KVTCompressionPropertyKey_RealTime

func KVTCompressionPropertyKey_RealTime() uintptr

@constant kVTCompressionPropertyKey_RealTime @abstract Hints the video encoder that compression is, or is not, being performed in real time. @discussion For offline compression, clients are advised to set this property to kCFBooleanFalse. This indicates that the timeline of the frames is not connected to wall-clock time at all. This allows the video encoder to run either slower than real-time or faster than real-time, depending upon the situation and device capabilities. For real-time compression, clients are advised to set this property to kCFBooleanTrue. This indicates that the timeline of frames is connected to real time (so, for example, the client expects to encode one second of frames each second, on average). In such a case, it is important that encoding keep up, but it is also not valuable to encode substantially faster than real time. When this property is set to kCFBooleanTrue, the video encoder may use the value of the kVTCompressionPropertyKey_ExpectedFrameRate property to optimize energy usage, by anticipating that encoding requests will happen at this rate. By default, this property is NULL, indicating unknown.

func KVTCompressionPropertyKey_RecommendedParallelizationLimit

func KVTCompressionPropertyKey_RecommendedParallelizationLimit() uintptr

@constant kVTCompressionPropertyKey_RecommendedParallelizationLimit @abstract If supported by the underlying video encoder, returns the recommended number of VTCompressionSessions to instantiate in a parallel encoding configuration. @discussion Parallel encoding VTCompressionSessions require the use of the properties kVTCompressionPropertyKey_MoreFramesBeforeStart, kVTCompressionPropertyKey_MoreFramesAfterEnd, and kVTCompressionPropertyKey_SourceFrameCount. e.g. If the property returns 4, a setup for 4 VTCompressionSessions on a 400 frame movie might look like: compressionSession1 kVTCompressionPropertyKey_MoreFramesBeforeStart = false kVTCompressionPropertyKey_MoreFramesAfterEnd = true kVTCompressionPropertyKey_SourceFrameCount = 100 compressionSession2 kVTCompressionPropertyKey_MoreFramesBeforeStart = true kVTCompressionPropertyKey_MoreFramesAfterEnd = true kVTCompressionPropertyKey_SourceFrameCount = 100 compressionSession3 kVTCompressionPropertyKey_MoreFramesBeforeStart = true kVTCompressionPropertyKey_MoreFramesAfterEnd = true kVTCompressionPropertyKey_SourceFrameCount = 100 compressionSession4 kVTCompressionPropertyKey_MoreFramesBeforeStart = true kVTCompressionPropertyKey_MoreFramesAfterEnd = false kVTCompressionPropertyKey_SourceFrameCount = 100

func KVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumDuration

func KVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumDuration() uintptr

@constant kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumDuration @abstract If supported by the underlying video encoder, returns the recommended minimum duration for a given subdivision in a parallel encoding configuration. @discussion For best results, ensure that the total duration of a parallelized subdivision is greater than or equal to this returned value. See also kVTCompressionPropertyKey_RecommendedParallelizationLimit See also kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumFrameCount

func KVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumFrameCount

func KVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumFrameCount() uintptr

@constant kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumFrameCount @abstract If supported by the underlying video encoder, returns the recommended minimum number of video frames for a given subdivision in a parallel encoding configuration. @discussion For best results, ensure that the total number of frames of a parallelized subdivision is greater than or equal to this returned value. See also kVTCompressionPropertyKey_RecommendedParallelizationLimit See also kVTCompressionPropertyKey_RecommendedParallelizedSubdivisionMinimumDuration

func KVTCompressionPropertyKey_ReferenceBufferCount

func KVTCompressionPropertyKey_ReferenceBufferCount() uintptr

@constant kVTCompressionPropertyKey_ReferenceBufferCount @abstract The client will be able to control the the maximum allowed ReferenceBufferCount using this optional key. @discussion This is typically used to force the encoder to use lower count than allowed by the stantard for a level/profile. The encoder will fail and report an error if the requested value exceeds the limit set by the standard for such a level/profile.

func KVTCompressionPropertyKey_SourceFrameCount

func KVTCompressionPropertyKey_SourceFrameCount() uintptr

@constant kVTCompressionPropertyKey_SourceFrameCount @abstract Indicates the number of source frames, if known. @discussion This property allows a client to give the video encoder advance guidance as to how many frames will be encoded. If nonzero, this should be the exact number of times that the client calls VTCompressionSessionEncodeFrame in each pass. The default is 0, which indicates that the number of source frames is not known.

func KVTCompressionPropertyKey_SpatialAdaptiveQPLevel

func KVTCompressionPropertyKey_SpatialAdaptiveQPLevel() uintptr

@constant kVTCompressionPropertyKey_SpatialAdaptiveQPLevel @abstract Control spatial adaptation of the quantization parameter (QP) based on per-frame statistics. If set to kVTQPModulationLevel_Disable, spatial QP adaptation is not applied based on per-frame statistics. If set to kVTQPModulationLevel_Default, video encoder is allowed to apply spatial QP adaptation for each macro block (or coding unit) within a video frame. QP adaptation is based on spatial characteristics of a frame and the level of spatial QP adaptation is decided internally by the rate controller. @discussion This property must be disabled when low latency rate control is enabled. Support for this property is codec dependent.

func KVTCompressionPropertyKey_StereoCameraBaseline

func KVTCompressionPropertyKey_StereoCameraBaseline() uintptr

@constant kVTCompressionPropertyKey_StereoCameraBaseline @abstract Specifies the value of kCMFormatDescriptionExtension_StereoCameraBaseline. @discussion The value will be set on the format description for output samples and may affect the decoded frame presentation.

func KVTCompressionPropertyKey_SuggestedLookAheadFrameCount

func KVTCompressionPropertyKey_SuggestedLookAheadFrameCount() uintptr

@constant kVTCompressionPropertyKey_SuggestedLookAheadFrameCount @abstract Requests that the encoder retain the specified number of frames during encoding. These frames will be used for additional analysis and statistics gathering before the frame is finally encoded at the end of the window. When this property is not set, video encoder will automatically determine the number of lookahead frames. @discussion Encoder will choose number of lookahead frames closer to the suggested value based on internal configuration. This property directly affects latency of the video encoder. The following properties also affect look ahead frames: 1. Value of this property must be less than or equal to `kVTCompressionPropertyKey_MaxFrameDelayCount`. 2. This property is ignored when `VTVideoEncoderSpecification_EnableLowLatencyRateControl` is set to true 3. This property is ignored when `kVTCompressionPropertyKey_Quality` is set to 1.0 4. This property can not be used in conjunction with multi-pass feature (`kVTCompressionPropertyKey_MultiPassStorage`)

func KVTCompressionPropertyKey_SupportedPresetDictionaries

func KVTCompressionPropertyKey_SupportedPresetDictionaries() uintptr

@constant kVTCompressionPropertyKey_SupportedPresetDictionaries @abstract Where supported by video encoders, returns a dictionary whose keys are the available compression presets (prefixed by `kVTCompressionPreset_`) and the values are dictionaries containing the corresponding settings property key/value pairs. @discussion Clients can select a compression preset for their encoding needs and use its encoder settings to configure the encoder. Clients may also use the encoder settings as a base configuration that they can customize as they require. See also kVTCompressionPreset_HighQuality, kVTCompressionPreset_Balanced, kVTCompressionPreset_HighSpeed, kVTCompressionPreset_VideoConferencing.

func KVTCompressionPropertyKey_SupportsBaseFrameQP

func KVTCompressionPropertyKey_SupportsBaseFrameQP() uintptr

@constant kVTCompressionPropertyKey_SupportsBaseFrameQP @abstract This property can be queried to determine if the encoder supports base frame QP requests. @discussion If this property returns kCFBooleanTrue, it indicates that the encoder supports base frame QP requests through kVTEncodeFrameOptionKey_BaseFrameQP. If it returns false or kVTPropertyNotSupportedErr, base frame QP requests will cause errors on VTCompressionSessionEncodeFrame calls, or will be ignored.

func KVTCompressionPropertyKey_TargetQualityForAlpha

func KVTCompressionPropertyKey_TargetQualityForAlpha() uintptr

@constant kVTCompressionPropertyKey_TargetQualityForAlpha @abstract The target quality to use for encoding the alpha channel. @discussion The desired compression level to use for encoding the alpha channel. This value should be specified as a number in the range of 0.0 to 1.0. 0.0 is lowest quality and 1.0 implies nearly lossless. Alpha plane bit rates will tend to increase with increasing values. When encoding the alpha channel, quality is given priority over bitrate. Note this parameter is currently only applicable to HEVC with Alpha encoders.

func KVTCompressionPropertyKey_TransferFunction

func KVTCompressionPropertyKey_TransferFunction() uintptr

@constant kVTCompressionPropertyKey_TransferFunction @abstract Indicates transfer function for compressed content. @discussion Some video encoders may enforce specific colorimetry; in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr). The value will be set on the format description for output sample buffers.

func KVTCompressionPropertyKey_UsingGPURegistryID

func KVTCompressionPropertyKey_UsingGPURegistryID() uintptr

@constant kVTCompressionPropertyKey_UsingGPURegistryID @abstract returns CFNumber indicating the gpu registryID of the encoder that was selected. NULL indicates a built-in encoder or software encode was used. @discussion You can query this property using VTSessionCopyProperty after building a VTCompressionSession to find out which GPU the encoder is using. If a encoder based on a built-in GPU was used it will return NULL. If a software encoder is used, it will return NULL

func KVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder

func KVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder() uintptr

@constant kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder @abstract If set to kCFBooleanTrue, a hardware accelerated video encoder is being used. @discussion You can query this property using VTSessionCopyProperty after you have enabled hardware accelerated encode using kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder to see if a hardware accelerated encoder was selected.

func KVTCompressionPropertyKey_VBVBufferDuration

func KVTCompressionPropertyKey_VBVBufferDuration() uintptr

@constant kVTCompressionPropertyKey_VBVBufferDuration @abstract Capacity of the video buffering verifier (VBV) model in seconds. @discussion VBV model allows for larger variations in bitrates while avoiding decoder-side overflows or underflows. A larger VBV model size may improve compression quality, but it requires more memory and may introduce delay. The value of this property must be greater than 0.0. The default value is set as 2.5 seconds. This property key is compatible with constant bitrate (CBR) or variable bitrate (VBR) rate control. This property key is incompatible with: 1. kVTCompressionPropertyKey_AverageBitRate, 2. kVTCompressionPropertyKey_DataRateLimits, 3. VTVideoEncoderSpecification_EnableLowLatencyRateControl=True.

func KVTCompressionPropertyKey_VBVInitialDelayPercentage

func KVTCompressionPropertyKey_VBVInitialDelayPercentage() uintptr

@constant kVTCompressionPropertyKey_VBVInitialDelayPercentage @abstract Initial delay of the VBV model between storing the picture in the VBV buffer model and decoding of that picture, as a percentage of VBV buffer duration. @discussion This value should be specified as a number in the range of 0 to 100. Larger value increases the delay but results in smoother playback. Default value is 90, meaning 90% of the VBV buffer duration. This property key is incompatible with: 1. kVTCompressionPropertyKey_AverageBitRate, 2. kVTCompressionPropertyKey_DataRateLimits, 3. VTVideoEncoderSpecification_EnableLowLatencyRateControl=True.

func KVTCompressionPropertyKey_VBVMaxBitRate

func KVTCompressionPropertyKey_VBVMaxBitRate() uintptr

@constant kVTCompressionPropertyKey_VBVMaxBitRate @abstract Defines the maximum bitrate that can enter the video buffering verifier (VBV) model at any time in variable bitrate (VBR) mode. @discussion The value of this property must be greater than zero. This property key is not compatible with: 1. kVTCompressionPropertyKey_AverageBitRate, 2. kVTCompressionPropertyKey_ConstantBitRate, 3. kVTCompressionPropertyKey_DataRateLimits, 4. VTVideoEncoderSpecification_EnableLowLatencyRateControl=True.

func KVTCompressionPropertyKey_VariableBitRate

func KVTCompressionPropertyKey_VariableBitRate() uintptr

@constant kVTCompressionPropertyKey_VariableBitRate @abstract Requires that the encoder use a variable bitrate (VBR) rate control algorithm and specifies the desired variable bitrate in bits per second. @discussion The actual peak bitrate present in the bitstream may be above or below this value based on other parameters such as kVTCompressionPropertyKey_VBVMaxBitRate. This property key needs to be set to achieve Variable Bitrate (VBR) rate control. This property key is not compatible with: 1. kVTCompressionPropertyKey_AverageBitRate, 2. kVTCompressionPropertyKey_ConstantBitRate, 3. kVTCompressionPropertyKey_DataRateLimits, 4. VTVideoEncoderSpecification_EnableLowLatencyRateControl = True.

func KVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes

func KVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes() uintptr

@constant kVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes @abstract The video encoder's pixel buffer attributes for the compression session. @discussion You can use these to create a pixel buffer pool for source pixel buffers.

func KVTCompressionPropertyKey_ViewPackingKind

func KVTCompressionPropertyKey_ViewPackingKind() uintptr

@constant kVTCompressionPropertyKey_ViewPackingKind @abstract Specifies the value of kCMFormatDescriptionExtension_ViewPackingKind. @discussion The value will be set on the format description for output samples and may affect the decoded frame presentation.

func KVTCompressionPropertyKey_YCbCrMatrix

func KVTCompressionPropertyKey_YCbCrMatrix() uintptr

@constant kVTCompressionPropertyKey_YCbCrMatrix @abstract Indicates YCbCr matrix for compressed content. @discussion Some video encoders may enforce specific colorimetry; in those cases this property will be read-only (SetProperty will return kVTPropertyReadOnlyErr). The value will be set on the format description for output sample buffers.

func KVTDecodeFrameOptionKey_ContentAnalyzerCropRectangle

func KVTDecodeFrameOptionKey_ContentAnalyzerCropRectangle() uintptr

@constant kVTDecodeFrameOptionKey_ContentAnalyzerCropRectangle @abstract CGRect within the image to be used for content analysis, cropped before applying rotation. @discussion This value specifies a rectangle within the original frame that should be used for content analysis. The cropping is applied before any rotation specified by kVTDecodeFrameOptionKey_ContentAnalyzerRotation. The value should be a CFDictionary representing a CGRect created using CGRectCreateDictionaryRepresentation(). This key is not used unless you have attached a “SCVideoStreamAnalyzer“ to the decompression session.

func KVTDecodeFrameOptionKey_ContentAnalyzerRotation

func KVTDecodeFrameOptionKey_ContentAnalyzerRotation() uintptr

@constant kVTDecodeFrameOptionKey_ContentAnalyzerRotation @abstract Clockwise rotation (one of 0, 90, 180, 270) to be applied for proper display orientation. @discussion This value is used for content analysis to properly orient the image before analysis. The value should be a CFNumber with values of 0, 90, 180, or 270, representing degrees of clockwise rotation. This key is not used unless you have attached a “SCVideoStreamAnalyzer“ to the decompression session.

func KVTDecompressionPropertyKey_AllowBitstreamToChangeFrameDimensions

func KVTDecompressionPropertyKey_AllowBitstreamToChangeFrameDimensions() uintptr

func KVTDecompressionPropertyKey_ContentHasInterframeDependencies

func KVTDecompressionPropertyKey_ContentHasInterframeDependencies() uintptr

@constant kVTDecompressionPropertyKey_ContentHasInterframeDependencies @abstract Indicates whether the content being decoded has interframe dependencies, if the decoder knows. @discussion This is an optional property for video decoders to implement.

func KVTDecompressionPropertyKey_DecoderProducesRAWOutput

func KVTDecompressionPropertyKey_DecoderProducesRAWOutput() uintptr

@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.

func KVTDecompressionPropertyKey_DeinterlaceMode

func KVTDecompressionPropertyKey_DeinterlaceMode() uintptr

@constant kVTDecompressionPropertyKey_DeinterlaceMode @abstract Requests a specific deinterlacing technique. @discussion This is an optional property for video decoders to implement. Decoders should only accept the modes that they will implement. This property is only applicable if kVTDecompressionPropertyKey_FieldMode is set to kVTDecompressionProperty_FieldMode_DeinterlaceFields.

func KVTDecompressionPropertyKey_FieldMode

func KVTDecompressionPropertyKey_FieldMode() uintptr

@constant kVTDecompressionPropertyKey_FieldMode @abstract Requests special handling of interlaced content. @discussion This is an optional property for video decoders to implement. Decoders should only accept the modes that they will implement.

func KVTDecompressionPropertyKey_GeneratePerFrameHDRDisplayMetadata

func KVTDecompressionPropertyKey_GeneratePerFrameHDRDisplayMetadata() uintptr

@constant kVTDecompressionPropertyKey_GeneratePerFrameHDRDisplayMetadata @abstract Generates Per Frame HDR Metadata and attaches it to the resulting decoded CVPixelBuffers. @discussion If the color space and YCbCrMatrix matches a supported HDR format such as HLG (kCMFormatDescriptionTransferFunction_ITU_R_2100_HLG) the decoded frame will be analyzed and metadata will be added as an attachment to the CVPixelBuffer.

func KVTDecompressionPropertyKey_MaxOutputPresentationTimeStampOfFramesBeingDecoded

func KVTDecompressionPropertyKey_MaxOutputPresentationTimeStampOfFramesBeingDecoded() uintptr

@constant kVTDecompressionPropertyKey_MaxOutputPresentationTimeStampOfFramesBeingDecoded @abstract The maximum output presentation timestamp of the frames currently being decoded. @discussion This may change asynchronously as frames are output.

func KVTDecompressionPropertyKey_MaximizePowerEfficiency

func KVTDecompressionPropertyKey_MaximizePowerEfficiency() uintptr

@constant kVTDecompressionPropertyKey_MaximizePowerEfficiency @abstract Hints to the video decoder that it should maximize power efficiency during decoding. @discussion For decompression where the client is operating in the background, clients may set this property to kCFBooleanTrue, which indicates that the decoder can take steps to minimize impact on power usage and other system activity. Setting the property to NULL is equivalent to setting it to kCFBooleanFalse. Setting both kVTDecompressionPropertyKey_MaximizePowerEfficiency and kVTDecompressionPropertyKey_RealTime is unsupported and results in undefined behavior. Not all video decoders may support this property By default, this property is NULL.

func KVTDecompressionPropertyKey_MinOutputPresentationTimeStampOfFramesBeingDecoded

func KVTDecompressionPropertyKey_MinOutputPresentationTimeStampOfFramesBeingDecoded() uintptr

@constant kVTDecompressionPropertyKey_MinOutputPresentationTimeStampOfFramesBeingDecoded @abstract The minimum output presentation timestamp of the frames currently being decoded. @discussion This may change asynchronously as frames are output.

func KVTDecompressionPropertyKey_NumberOfFramesBeingDecoded

func KVTDecompressionPropertyKey_NumberOfFramesBeingDecoded() uintptr

@constant kVTDecompressionPropertyKey_NumberOfFramesBeingDecoded @abstract Returns the number of frames currently being decoded. @discussion This number may decrease asynchronously as frames are output.

func KVTDecompressionPropertyKey_OnlyTheseFrames

func KVTDecompressionPropertyKey_OnlyTheseFrames() uintptr

@constant kVTDecompressionPropertyKey_OnlyTheseFrames @abstract Requests that frames be filtered by type. @discussion This is an optional property for video decoders to implement. If kVTDecompressionPropertyKey_ReducedFrameDelivery is supported and used in conjunction with this property, the ReducedFrameDelivery is the proportion of the frames selected by this property: 0.25 and IFrames would indicate that only one I frame in every four should be delivered.

func KVTDecompressionPropertyKey_OutputPoolRequestedMinimumBufferCount

func KVTDecompressionPropertyKey_OutputPoolRequestedMinimumBufferCount() uintptr

@constant kVTDecompressionPropertyKey_OutputPoolRequestedMinimumBufferCount @abstract Requests that the VTDecompressionSession use the value provided as a minimum buffer count for its output CVPixelBufferPool, not releasing buffers while the number in use is below this level. @discussion This property effectively requests that the kCVPixelBufferPoolMinimumBufferCountKey key be used for the creation of the output CVPixelBufferPool. For general playback cases, standard CVPixelBufferPool age-out behaviour should be sufficient and this property should not be needed. This property should only be used in unusual playback scenarios where a peak pool level is known, and the potential memory overhead is an acceptable tradeoff for avoiding possible buffer reallocation. Setting this property to NULL or passing in the value 0 will clear this setting and remove the minimum buffer count. Setting this property while a VTDecompressionSession is in use will result in the creation of a new CVPixelBufferPool. This will cause new buffers to be allocated, and existing buffers to be deallocated when they are released.

func KVTDecompressionPropertyKey_PixelBufferPool

func KVTDecompressionPropertyKey_PixelBufferPool() uintptr

@constant kVTDecompressionPropertyKey_PixelBufferPool @abstract A pixel buffer pool for pixel buffers being output by the decompression session. @discussion This pixel buffer pool is always compatible with the client's pixel buffer attributes as specified when calling VTDecompressionSessionCreate.

func KVTDecompressionPropertyKey_PixelBufferPoolIsShared

func KVTDecompressionPropertyKey_PixelBufferPoolIsShared() uintptr

@constant kVTDecompressionPropertyKey_PixelBufferPoolIsShared @abstract Indicates whether a common pixel buffer pool is shared between the video decoder and the session client. @discussion This is false if separate pools are used because the pixel buffer attributes specified by the video decoder and the client were incompatible.

func KVTDecompressionPropertyKey_PixelFormatsWithReducedResolutionSupport

func KVTDecompressionPropertyKey_PixelFormatsWithReducedResolutionSupport() uintptr

@constant kVTDecompressionPropertyKey_PixelFormatsWithReducedResolutionSupport @abstract Indicates which pixel formats support reduced resolution decoding. @discussion This is an optional property for video decoders to implement. This property value is an array containing CFNumbers holding CMPixelFormatType values.

func KVTDecompressionPropertyKey_PixelTransferProperties

func KVTDecompressionPropertyKey_PixelTransferProperties() uintptr

@constant kVTDecompressionPropertyKey_PixelTransferProperties @abstract Requests particular pixel transfer features. @discussion This property is implemented by the video toolbox. This property value is a CFDictionary containing properties from VTPixelTransferProperties.h.

func KVTDecompressionPropertyKey_PropagatePerFrameHDRDisplayMetadata

func KVTDecompressionPropertyKey_PropagatePerFrameHDRDisplayMetadata() uintptr

@constant kVTDecompressionPropertyKey_PropagatePerFrameHDRDisplayMetadata @abstract This controls whether or not to propagate any per frame HDR display metadata from the input compressed bitstream to the output pixel buffer.

func KVTDecompressionPropertyKey_RealTime

func KVTDecompressionPropertyKey_RealTime() uintptr

@constant kVTDecompressionPropertyKey_RealTime @abstract Hints the video decoder that decompression is, or is not, being performed in real time. @discussion For non-realtime decompression, clients may set this property to kCFBooleanFalse, which indicates that it is OK to run this decode pipeline at a lower priority than is used for realtime decode. By default, the VideoToolbox will treat the VTDecompressionSession as though it is being used for realtime playback. Setting the property to NULL is equivalent to setting it to kCFBooleanTrue.

func KVTDecompressionPropertyKey_ReducedCoefficientDecode

func KVTDecompressionPropertyKey_ReducedCoefficientDecode() uintptr

@constant kVTDecompressionPropertyKey_ReducedCoefficientDecode @abstract Requests approximation during decoding. @discussion This is an optional property for video decoders to implement. Only decoders for which such approximations make sense should implement this property. The meaning of the number of coefficients will be decoder-specific.

func KVTDecompressionPropertyKey_ReducedFrameDelivery

func KVTDecompressionPropertyKey_ReducedFrameDelivery() uintptr

@constant kVTDecompressionPropertyKey_ReducedFrameDelivery @abstract Requests frame dropping. @discussion This is an optional property for video decoders to implement. This number is a fraction between 0.0 and 1.0 that indicates what proportion of frames should be delivered -- others may be dropped. For example, 0.25 would indicate that only one frame in every 4 should be delivered. This is a guideline; actual selection of frames is up to the decoder, which will know which frames can be skipped without harm. If the decoder does not support this property directly, but reports that the content has no interframe dependencies, the video toolbox may step in and perform simple frame dropping.

func KVTDecompressionPropertyKey_ReducedResolutionDecode

func KVTDecompressionPropertyKey_ReducedResolutionDecode() uintptr

@constant kVTDecompressionPropertyKey_ReducedResolutionDecode @abstract Requests decoding at a smaller resolution than full-size. @discussion This is an optional property for video decoders to implement. Decoders that only support a fixed set of resolutions should pick the smallest resolution greater than or equal to the requested width x height.

func KVTDecompressionPropertyKey_RequestRAWOutput

func KVTDecompressionPropertyKey_RequestRAWOutput() uintptr

@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.

func KVTDecompressionPropertyKey_RequestedMVHEVCVideoLayerIDs

func KVTDecompressionPropertyKey_RequestedMVHEVCVideoLayerIDs() uintptr

@constant kVTDecompressionPropertyKey_RequestedMVHEVCVideoLayerIDs @abstract Requests multi-image decoding of specific MV-HEVC VideoLayerIDs. @discussion MV-HEVC specific. Requires that the VTDecompressionSession client use VTDecompressionSessionSetMultiImageCallback to install a callback capable of receiving CMTaggedBufferGroups in response to multi-image DecodeFrame requests. The property value is a CFArray containing VideoLayerIDs as CFNumbers. MV-HEVC VideoLayerIDs not in this list do not need to be output, and the decoder may skip decoding them if not otherwise necessary. The property is NULL by default. If this property is NULL, MV-HEVC shall be decoded ignoring layers other than the base layer. Terminology note: in multi-image decompression, a single video sample (from one CMSampleBuffer) contains a single frame (with one PTS) that is decoded to produce multiple images.

func KVTDecompressionPropertyKey_SuggestedQualityOfServiceTiers

func KVTDecompressionPropertyKey_SuggestedQualityOfServiceTiers() uintptr

@constant kVTDecompressionPropertyKey_SuggestedQualityOfServiceTiers @abstract Suggests how quality-of-service may be lowered in order to maintain realtime playback. @discussion This is an optional property for video decoders to implement. This property value is an array containing either CFDictionaries of property key/value pairs, or the array can contain special key values like kVTDecompressionProperty_TemporalLevelLimit. The first entry in the array should contain the set of properties that restore the default (full) quality of service; later entries should contain property sets with decreasing qualities of service. Clients may work their way down these tiers until they are able to keep up with the frame rate.

func KVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByPerformance

func KVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByPerformance() uintptr

@constant kVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByPerformance @abstract Provides hints about speed tradeoffs between pixel formats. @discussion This is an optional property for video decoders to implement. This property value is an array containing CFNumbers holding CMPixelFormatType values, ordered by speed from fast to slow.

func KVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByQuality

func KVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByQuality() uintptr

@constant kVTDecompressionPropertyKey_SupportedPixelFormatsOrderedByQuality @abstract Provides hints about quality tradeoffs between pixel formats. @discussion This is an optional property for video decoders to implement. This property value is an array containing CFNumbers holding CMPixelFormatType values, ordered by quality from best to worse.

func KVTDecompressionPropertyKey_ThreadCount

func KVTDecompressionPropertyKey_ThreadCount() uintptr

@constant kVTDecompressionPropertyKey_ThreadCount @abstract Gets number of threads used by codec or suggests number of threads to use. @discussion This is an optional property for video decoders to implement.

func KVTDecompressionPropertyKey_UsingGPURegistryID

func KVTDecompressionPropertyKey_UsingGPURegistryID() uintptr

@constant kVTDecompressionPropertyKey_UsingGPURegistryID @abstract returns CFNumber indicating the gpu registryID of the decoder that was selected. NULL indicates a built-in decoder or software decode was used. @discussion You can query this property using VTSessionCopyProperty after building a VTDecompressionSession to find out which GPU the decoder is using. If a decoder based on a built-in GPU was used it will return NULL. If a software decoder is used, it will return NULL

func KVTDecompressionPropertyKey_UsingHardwareAcceleratedVideoDecoder

func KVTDecompressionPropertyKey_UsingHardwareAcceleratedVideoDecoder() uintptr

@constant kVTDecompressionPropertyKey_UsingHardwareAcceleratedVideoDecoder @abstract If set to kCFBooleanTrue, a hardware accelerated video decoder is being used. @discussion You can query this property using VTSessionCopyProperty after you have enabled hardware accelerated decode using kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder to see if a hardware accelerated decoder was selected.

func KVTDecompressionProperty_DeinterlaceMode_Temporal

func KVTDecompressionProperty_DeinterlaceMode_Temporal() uintptr

func KVTDecompressionProperty_DeinterlaceMode_VerticalFilter

func KVTDecompressionProperty_DeinterlaceMode_VerticalFilter() uintptr

func KVTDecompressionProperty_FieldMode_BothFields

func KVTDecompressionProperty_FieldMode_BothFields() uintptr

func KVTDecompressionProperty_FieldMode_BottomFieldOnly

func KVTDecompressionProperty_FieldMode_BottomFieldOnly() uintptr

func KVTDecompressionProperty_FieldMode_DeinterlaceFields

func KVTDecompressionProperty_FieldMode_DeinterlaceFields() uintptr

func KVTDecompressionProperty_FieldMode_SingleField

func KVTDecompressionProperty_FieldMode_SingleField() uintptr

func KVTDecompressionProperty_FieldMode_TopFieldOnly

func KVTDecompressionProperty_FieldMode_TopFieldOnly() uintptr

func KVTDecompressionProperty_OnlyTheseFrames_AllFrames

func KVTDecompressionProperty_OnlyTheseFrames_AllFrames() uintptr

func KVTDecompressionProperty_OnlyTheseFrames_IFrames

func KVTDecompressionProperty_OnlyTheseFrames_IFrames() uintptr

func KVTDecompressionProperty_OnlyTheseFrames_KeyFrames

func KVTDecompressionProperty_OnlyTheseFrames_KeyFrames() uintptr

func KVTDecompressionProperty_OnlyTheseFrames_NonDroppableFrames

func KVTDecompressionProperty_OnlyTheseFrames_NonDroppableFrames() uintptr

func KVTDecompressionProperty_TemporalLevelLimit

func KVTDecompressionProperty_TemporalLevelLimit() uintptr

@constant kVTDecompressionProperty_TemporalLevelLimit @abstract Requests that frames be filtered by temporal level. @discussion This is an optional property for video decoders to implement. If kVTDecompressionProperty_TemporalLevelLimit is supported and the video track is an hierarchical encoding with temporal levels, this property requests that decoding be limited to the specified temporal level and lower. For more information on temporal levels, see kCMSampleAttachmentKey_HEVCTemporalLevelInfo in CoreMedia/CMSampleBuffer.h

func KVTDecompressionResolutionKey_Height

func KVTDecompressionResolutionKey_Height() uintptr

func KVTDecompressionResolutionKey_Width

func KVTDecompressionResolutionKey_Width() uintptr

func KVTDownsamplingMode_Average

func KVTDownsamplingMode_Average() uintptr

func KVTDownsamplingMode_Decimate

func KVTDownsamplingMode_Decimate() uintptr

func KVTEncodeFrameOptionKey_AcknowledgedLTRTokens

func KVTEncodeFrameOptionKey_AcknowledgedLTRTokens() uintptr

@constant kVTEncodeFrameOptionKey_AcknowledgedLTRTokens @abstract A CFArray of CFNumbers containing the kVTSampleAttachmentKey_RequireLTRAcknowledgementToken values which have been successfully sent to the receiver and can be used as references @discussion When an LTR frame is encoded, the encoder will return a unique token for the LTR frame on the output CMSampleBuffer through kVTSampleAttachmentKey_RequireLTRAcknowledgementToken. This token is then returned to the encoder via kVTEncodeFrameOptionKey_AcknowledgedLTRTokens when the LTR frame is received by the remote consumer(s). Also see: kVTCompressionPropertyKey_EnableLTR kVTEncodeFrameOptionKey_ForceLTRRefresh kVTSampleAttachmentKey_RequireLTRAcknowledgementToken

func KVTEncodeFrameOptionKey_BaseFrameQP

func KVTEncodeFrameOptionKey_BaseFrameQP() uintptr

@constant kVTEncodeFrameOptionKey_BaseFrameQP @abstract CFNumberRef requesting the current frame to use the provided base frame QP. @discussion This value is set in the frameProperties CFDictionary passed to VTCompressionSessionEncodeFrame to force the QP value for the current frame. This is an optional parameter. Use it only when you have a specific requirement for the video quality and you are familiar with frame QP and are prepared to assume full responsibility for rate control. Otherwise it is strongly encouraged to rely on the encoder’s rate control for adjusting frame QP. Setting BaseFrameQP turns off standard rate control and will cause the following properties to be ignored:: kVTCompressionPropertyKey_DataRateLimits kVTCompressionPropertyKey_AverageBitRate kVTCompressionPropertyKey_BaseLayerBitRateFraction kVTCompressionPropertyKey_Quality kVTCompressionPropertyKey_MaxAllowedFrameQP kVTCompressionPropertyKey_MinAllowedFrameQP If kVTEncodeFrameOptionKey_BaseFrameQP is used, it must be set for all frames in a session. The QP value specified is frame-level but macro-block level QP may be modulated inside a frame. There will be no rate-control related frame dropping if kVTEncodeFrameOptionKey_BaseFrameQP is used. kVTEncodeFrameOptionKey_BaseFrameQP is only supported if the encoder returns kCFBooleanTrue when the kVTCompressionPropertyKey_SupportsBaseFrameQP is queried. If this FrameOptionKey is set for encoder which does not support it, it will be ignored. Note that it may not be possible for the encoder to accommodate all requests.

func KVTEncodeFrameOptionKey_ForceKeyFrame

func KVTEncodeFrameOptionKey_ForceKeyFrame() uintptr

@constant kVTEncodeFrameOptionKey_ForceKeyFrame @abstract CFBoolean forcing the current frame to be a key frame @discussion This value is set in the frameProperties CFDictionary passed to VTCompressionSessionEncodeFrame to force the current frame to be a keyframe or not. Note that it may not be possible for the encoder to accomodate all requests.

func KVTEncodeFrameOptionKey_ForceLTRRefresh

func KVTEncodeFrameOptionKey_ForceLTRRefresh() uintptr

@constant kVTEncodeFrameOptionKey_ForceLTRRefresh @abstract Set this option to kCFBooleanTrue to force an LTR refresh @discussion When the encoder receives this request on an incoming frame, the encoder will encode a new reference frame using a previously acknowledged LTR, or it will encode a new IDR if no LTR frames have been acknowledged. Also see: kVTCompressionPropertyKey_EnableLTR kVTEncodeFrameOptionKey_AcknowledgedLTRTokens kVTSampleAttachmentKey_RequireLTRAcknowledgementToken

func KVTExtensionProperties_CodecNameKey

func KVTExtensionProperties_CodecNameKey() uintptr

@constant kVTExtensionProperties_CodecNameKey @abstract A CFDictionary key for the user readable name string of the codec. @discussion This key points to a CFStringRef with the name of the codec from the supplied format description. This name will be the one listed in the extension CodecInfo array with the key CodecName.

func KVTExtensionProperties_ContainingBundleNameKey

func KVTExtensionProperties_ContainingBundleNameKey() uintptr

@constant kVTExtensionProperties_ContainingBundleNameKey @abstract A CFDictionary key for the extension host application localized name. @discussion This key points to a CFStringRef value with the localized name of the application hosting the extension.

func KVTExtensionProperties_ContainingBundleURLKey

func KVTExtensionProperties_ContainingBundleURLKey() uintptr

@constant kVTExtensionProperties_ContainingBundleURLKey @abstract A CFDictionary key for the URL of the extension host application. @discussion This key points to a CFURLRef value with the URL of the extension host application.

func KVTExtensionProperties_ExtensionIdentifierKey

func KVTExtensionProperties_ExtensionIdentifierKey() uintptr

@constant kVTExtensionProperties_ExtensionIdentifierKey @abstract A CFDictionary key for the video decoder extension identifier. @discussion This key points to a CFStringRef value with the extension identifier, corresponding to the ClassImplementationID value from the EXAppExtensionAttributes dictionary in the Info.plist file.

func KVTExtensionProperties_ExtensionNameKey

func KVTExtensionProperties_ExtensionNameKey() uintptr

@constant kVTExtensionProperties_ExtensionNameKey @abstract A CFDictionary key for the localized extension name. @discussion This key points to a CFStringRef value with the localized extension name.

func KVTExtensionProperties_ExtensionURLKey

func KVTExtensionProperties_ExtensionURLKey() uintptr

@constant kVTExtensionProperties_ExtensionURLKey @abstract A CFDictionary key for the URL of the extension. @discussion This key points to a CFURLRef value with the URL for the extension.

func KVTH264EntropyMode_CABAC

func KVTH264EntropyMode_CABAC() uintptr

func KVTH264EntropyMode_CAVLC

func KVTH264EntropyMode_CAVLC() uintptr

func KVTHDRMetadataInsertionMode_Auto

func KVTHDRMetadataInsertionMode_Auto() uintptr

func KVTHDRMetadataInsertionMode_None

func KVTHDRMetadataInsertionMode_None() uintptr

func KVTHDRMetadataInsertionMode_RequestSDRRangePreservation

func KVTHDRMetadataInsertionMode_RequestSDRRangePreservation() uintptr

func KVTHDRPerFrameMetadataGenerationHDRFormatType_DolbyVision

func KVTHDRPerFrameMetadataGenerationHDRFormatType_DolbyVision() uintptr

@constant kVTHDRPerFrameMetadataGenerationHDRFormatType_DolbyVision @abstract Specifies that DolbyVision data should be generated and attached for each pixel buffer.

func KVTHDRPerFrameMetadataGenerationOptionsKey_HDRFormats

func KVTHDRPerFrameMetadataGenerationOptionsKey_HDRFormats() uintptr

@constant kVTHDRPerFrameMetadataGenerationOptionsKey_HDRFormats @abstract Specifies an array of HDR formats that should be generated. @discussion This key represents a CFArrayRef. Only one key is supported ( kVTHDRPerFrameMetadataGenerationHDRFormatType_DolbyVision ).

func KVTHeroEye_Left

func KVTHeroEye_Left() uintptr

func KVTHeroEye_Right

func KVTHeroEye_Right() uintptr

func KVTMotionEstimationSessionCreationOption_Label

func KVTMotionEstimationSessionCreationOption_Label() uintptr

A label you use to log and track resources. “VTMotionEstimationSessionCreate“ takes a dictionary of creation options, `motionVectorProcessorSelectionOptions`. You can supply “kVTMotionEstimationSessionCreationOption_Label“ with `CFString` to specify a label used in logging and resource tracking.

func KVTMotionEstimationSessionCreationOption_MotionVectorSize

func KVTMotionEstimationSessionCreationOption_MotionVectorSize() uintptr

The size of the search blocks that motion estimation session uses. “VTMotionEstimationSessionCreate“ takes a dictionary of creation options, `motionVectorProcessorSelectionOptions`. You can supply “kVTMotionEstimationSessionCreationOption_MotionVectorSize“ with `CFNumber` to override the default search block size. Supported motion vector size is 4 or 16, meaning 4x4 or 16x16 respectively. 16x16 is the default if you don't provide this key.

func KVTMotionEstimationSessionCreationOption_UseMultiPassSearch

func KVTMotionEstimationSessionCreationOption_UseMultiPassSearch() uintptr

An option to use for higher quality motion estimation. “VTMotionEstimationSessionCreate“ takes a dictionary of creation options, `motionVectorProcessorSelectionOptions`. You can supply “kVTMotionEstimationSessionCreationOption_UseMultiPassSearch“ with `kCFBooleanTrue` to provide higher quality motion estimation. True-motion achieves higher quality by running the motion estimator in multiple passes. The default is `kCFBooleanFalse`.

func KVTMultiPassStorageCreationOption_DoNotDelete

func KVTMultiPassStorageCreationOption_DoNotDelete() uintptr

func KVTPixelRotationPropertyKey_FlipHorizontalOrientation

func KVTPixelRotationPropertyKey_FlipHorizontalOrientation() uintptr

func KVTPixelRotationPropertyKey_FlipVerticalOrientation

func KVTPixelRotationPropertyKey_FlipVerticalOrientation() uintptr

func KVTPixelRotationPropertyKey_Rotation

func KVTPixelRotationPropertyKey_Rotation() uintptr

func KVTPixelTransferPropertyKey_DestinationCleanAperture

func KVTPixelTransferPropertyKey_DestinationCleanAperture() uintptr

@constant kVTPixelTransferPropertyKey_DestinationCleanAperture @abstract Specifies the clean aperture for destination image buffers. @discussion The value of this property is a CFDictionary with same keys as used in the kCVImageBufferCleanApertureKey dictionary. This property is ignored in kVTScalingMode_Normal. This property defaults to NULL, meaning the clean aperture is the full width and height.

func KVTPixelTransferPropertyKey_DestinationColorPrimaries

func KVTPixelTransferPropertyKey_DestinationColorPrimaries() uintptr

@constant kVTPixelTransferPropertyKey_DestinationColorPrimaries @abstract Specifies the color primaries to be used for destination image buffers. @discussion Specifying this value may lead to performance degradation, as a color matching operation may need to be performed between the source and the destination.

func KVTPixelTransferPropertyKey_DestinationICCProfile

func KVTPixelTransferPropertyKey_DestinationICCProfile() uintptr

@constant kVTPixelTransferPropertyKey_DestinationICCProfile @abstract Specifies the ICC profile for destination image buffers. @discussion Specifying this value may lead to performance degradation, as a color matching operation may need to be performed between the source and the destination.

func KVTPixelTransferPropertyKey_DestinationPixelAspectRatio

func KVTPixelTransferPropertyKey_DestinationPixelAspectRatio() uintptr

@constant kVTPixelTransferPropertyKey_DestinationPixelAspectRatio @abstract Specifies the pixel aspect ratio for destination image buffers. @discussion The value of this property is a CFDictionary with same keys as used in the kCVImageBufferPixelAspectRatioKey dictionary. This property is ignored in kVTScalingMode_Normal. This property defaults to NULL, meaning 1:1 (for kVTScalingMode_CropSourceToCleanAperture) or no change in pixel aspect ratio (for kVTScalingMode_Letterbox and kVTScalingMode_Trim).

func KVTPixelTransferPropertyKey_DestinationTransferFunction

func KVTPixelTransferPropertyKey_DestinationTransferFunction() uintptr

@constant kVTPixelTransferPropertyKey_DestinationTransferFunction @abstract Specifies the color transfer function to be used for destination image buffers. @discussion Specifying this value may lead to performance degradation, as a color matching operation may need to be performed between the source and the destination.

func KVTPixelTransferPropertyKey_DestinationYCbCrMatrix

func KVTPixelTransferPropertyKey_DestinationYCbCrMatrix() uintptr

@constant kVTPixelTransferPropertyKey_DestinationYCbCrMatrix @abstract Specifies the color matrix to be used for YCbCr->RGB conversions involving the destination image buffers. @discussion Specifying this value may lead to performance degradation, as a color matching operation may need to be performed between the source and the destination.

func KVTPixelTransferPropertyKey_DownsamplingMode

func KVTPixelTransferPropertyKey_DownsamplingMode() uintptr

@constant kVTPixelTransferPropertyKey_DownsamplingMode @abstract Requests a specific chroma downsampling technique be used. @discussion This property is ignored if chroma downsampling is not performed.

func KVTPixelTransferPropertyKey_RealTime

func KVTPixelTransferPropertyKey_RealTime() uintptr

@constant kVTPixelTransferPropertyKey_RealTime @abstract Hints the transfer session that the operation is, or is not, being performed in real time. @discussion Set this property to kCFBooleanTrue to indicate that the transfer is part of realtime operation. If set to true, the VTPixelTransferSession may be given precedence over non-realtime tasks. This can be set to false for transfers being performed as part of background operations. By default this value is NULL indicating that it is unspecified.

func KVTPixelTransferPropertyKey_ScalingMode

func KVTPixelTransferPropertyKey_ScalingMode() uintptr

@constant kVTPixelTransferPropertyKey_ScalingMode @abstract Indicates how images should be scaled. @discussion Depending on the scaling mode, scaling may take into account: the full image buffer width and height of the source and destination, the clean aperture attachment (kCVImageBufferCleanApertureKey) on the source image buffer, the pixel aspect ratio attachment (kCVImageBufferPixelAspectRatioKey) on the source image buffer, the destination clean aperture (kVTPixelTransferPropertyKey_DestinationCleanAperture), and/or the destination pixel aspect ratio (kVTPixelTransferPropertyKey_DestinationPixelAspectRatio). The destination image buffer's clean aperture and pixel aspect ratio attachments are not taken into account, and will be overwritten.

func KVTProfileLevel_H263_Profile0_Level10

func KVTProfileLevel_H263_Profile0_Level10() uintptr

func KVTProfileLevel_H263_Profile0_Level45

func KVTProfileLevel_H263_Profile0_Level45() uintptr

func KVTProfileLevel_H263_Profile3_Level45

func KVTProfileLevel_H263_Profile3_Level45() uintptr

func KVTProfileLevel_H264_Baseline_1_3

func KVTProfileLevel_H264_Baseline_1_3() uintptr

func KVTProfileLevel_H264_Baseline_3_0

func KVTProfileLevel_H264_Baseline_3_0() uintptr

func KVTProfileLevel_H264_Baseline_3_1

func KVTProfileLevel_H264_Baseline_3_1() uintptr

func KVTProfileLevel_H264_Baseline_3_2

func KVTProfileLevel_H264_Baseline_3_2() uintptr

func KVTProfileLevel_H264_Baseline_4_0

func KVTProfileLevel_H264_Baseline_4_0() uintptr

func KVTProfileLevel_H264_Baseline_4_1

func KVTProfileLevel_H264_Baseline_4_1() uintptr

func KVTProfileLevel_H264_Baseline_4_2

func KVTProfileLevel_H264_Baseline_4_2() uintptr

func KVTProfileLevel_H264_Baseline_5_0

func KVTProfileLevel_H264_Baseline_5_0() uintptr

func KVTProfileLevel_H264_Baseline_5_1

func KVTProfileLevel_H264_Baseline_5_1() uintptr

func KVTProfileLevel_H264_Baseline_5_2

func KVTProfileLevel_H264_Baseline_5_2() uintptr

func KVTProfileLevel_H264_Baseline_AutoLevel

func KVTProfileLevel_H264_Baseline_AutoLevel() uintptr

func KVTProfileLevel_H264_ConstrainedBaseline_AutoLevel

func KVTProfileLevel_H264_ConstrainedBaseline_AutoLevel() uintptr

func KVTProfileLevel_H264_ConstrainedHigh_AutoLevel

func KVTProfileLevel_H264_ConstrainedHigh_AutoLevel() uintptr

func KVTProfileLevel_H264_Extended_5_0

func KVTProfileLevel_H264_Extended_5_0() uintptr

func KVTProfileLevel_H264_Extended_AutoLevel

func KVTProfileLevel_H264_Extended_AutoLevel() uintptr

func KVTProfileLevel_H264_High_3_0

func KVTProfileLevel_H264_High_3_0() uintptr

func KVTProfileLevel_H264_High_3_1

func KVTProfileLevel_H264_High_3_1() uintptr

func KVTProfileLevel_H264_High_3_2

func KVTProfileLevel_H264_High_3_2() uintptr

func KVTProfileLevel_H264_High_4_0

func KVTProfileLevel_H264_High_4_0() uintptr

func KVTProfileLevel_H264_High_4_1

func KVTProfileLevel_H264_High_4_1() uintptr

func KVTProfileLevel_H264_High_4_2

func KVTProfileLevel_H264_High_4_2() uintptr

func KVTProfileLevel_H264_High_5_0

func KVTProfileLevel_H264_High_5_0() uintptr

func KVTProfileLevel_H264_High_5_1

func KVTProfileLevel_H264_High_5_1() uintptr

func KVTProfileLevel_H264_High_5_2

func KVTProfileLevel_H264_High_5_2() uintptr

func KVTProfileLevel_H264_High_AutoLevel

func KVTProfileLevel_H264_High_AutoLevel() uintptr

func KVTProfileLevel_H264_Main_3_0

func KVTProfileLevel_H264_Main_3_0() uintptr

func KVTProfileLevel_H264_Main_3_1

func KVTProfileLevel_H264_Main_3_1() uintptr

func KVTProfileLevel_H264_Main_3_2

func KVTProfileLevel_H264_Main_3_2() uintptr

func KVTProfileLevel_H264_Main_4_0

func KVTProfileLevel_H264_Main_4_0() uintptr

func KVTProfileLevel_H264_Main_4_1

func KVTProfileLevel_H264_Main_4_1() uintptr

func KVTProfileLevel_H264_Main_4_2

func KVTProfileLevel_H264_Main_4_2() uintptr

func KVTProfileLevel_H264_Main_5_0

func KVTProfileLevel_H264_Main_5_0() uintptr

func KVTProfileLevel_H264_Main_5_1

func KVTProfileLevel_H264_Main_5_1() uintptr

func KVTProfileLevel_H264_Main_5_2

func KVTProfileLevel_H264_Main_5_2() uintptr

func KVTProfileLevel_H264_Main_AutoLevel

func KVTProfileLevel_H264_Main_AutoLevel() uintptr

func KVTProfileLevel_HEVC_Main10_AutoLevel

func KVTProfileLevel_HEVC_Main10_AutoLevel() uintptr

func KVTProfileLevel_HEVC_Main42210_AutoLevel

func KVTProfileLevel_HEVC_Main42210_AutoLevel() uintptr

func KVTProfileLevel_HEVC_Main_AutoLevel

func KVTProfileLevel_HEVC_Main_AutoLevel() uintptr

func KVTProfileLevel_HEVC_Monochrome10_AutoLevel

func KVTProfileLevel_HEVC_Monochrome10_AutoLevel() uintptr

func KVTProfileLevel_HEVC_Monochrome_AutoLevel

func KVTProfileLevel_HEVC_Monochrome_AutoLevel() uintptr

func KVTProfileLevel_MP4V_AdvancedSimple_L0

func KVTProfileLevel_MP4V_AdvancedSimple_L0() uintptr

func KVTProfileLevel_MP4V_AdvancedSimple_L1

func KVTProfileLevel_MP4V_AdvancedSimple_L1() uintptr

func KVTProfileLevel_MP4V_AdvancedSimple_L2

func KVTProfileLevel_MP4V_AdvancedSimple_L2() uintptr

func KVTProfileLevel_MP4V_AdvancedSimple_L3

func KVTProfileLevel_MP4V_AdvancedSimple_L3() uintptr

func KVTProfileLevel_MP4V_AdvancedSimple_L4

func KVTProfileLevel_MP4V_AdvancedSimple_L4() uintptr

func KVTProfileLevel_MP4V_Main_L2

func KVTProfileLevel_MP4V_Main_L2() uintptr

func KVTProfileLevel_MP4V_Main_L3

func KVTProfileLevel_MP4V_Main_L3() uintptr

func KVTProfileLevel_MP4V_Main_L4

func KVTProfileLevel_MP4V_Main_L4() uintptr

func KVTProfileLevel_MP4V_Simple_L0

func KVTProfileLevel_MP4V_Simple_L0() uintptr

func KVTProfileLevel_MP4V_Simple_L1

func KVTProfileLevel_MP4V_Simple_L1() uintptr

func KVTProfileLevel_MP4V_Simple_L2

func KVTProfileLevel_MP4V_Simple_L2() uintptr

func KVTProfileLevel_MP4V_Simple_L3

func KVTProfileLevel_MP4V_Simple_L3() uintptr

func KVTProjectionKind_Equirectangular

func KVTProjectionKind_Equirectangular() uintptr

func KVTProjectionKind_HalfEquirectangular

func KVTProjectionKind_HalfEquirectangular() uintptr

func KVTProjectionKind_ParametricImmersive

func KVTProjectionKind_ParametricImmersive() uintptr

func KVTProjectionKind_Rectilinear

func KVTProjectionKind_Rectilinear() uintptr

func KVTPropertyDocumentationKey

func KVTPropertyDocumentationKey() uintptr

func KVTPropertyReadWriteStatusKey

func KVTPropertyReadWriteStatusKey() uintptr

func KVTPropertyReadWriteStatus_ReadOnly

func KVTPropertyReadWriteStatus_ReadOnly() uintptr

func KVTPropertyReadWriteStatus_ReadWrite

func KVTPropertyReadWriteStatus_ReadWrite() uintptr

func KVTPropertyShouldBeSerializedKey

func KVTPropertyShouldBeSerializedKey() uintptr

func KVTPropertySupportedValueListKey

func KVTPropertySupportedValueListKey() uintptr

func KVTPropertySupportedValueMaximumKey

func KVTPropertySupportedValueMaximumKey() uintptr

func KVTPropertySupportedValueMinimumKey

func KVTPropertySupportedValueMinimumKey() uintptr

func KVTPropertyTypeKey

func KVTPropertyTypeKey() uintptr

func KVTPropertyType_Boolean

func KVTPropertyType_Boolean() uintptr

func KVTPropertyType_Enumeration

func KVTPropertyType_Enumeration() uintptr

func KVTPropertyType_Number

func KVTPropertyType_Number() uintptr

func KVTRAWProcessingParameterListElement_Description

func KVTRAWProcessingParameterListElement_Description() uintptr

func KVTRAWProcessingParameterListElement_Label

func KVTRAWProcessingParameterListElement_Label() uintptr

func KVTRAWProcessingParameterListElement_ListElementID

func KVTRAWProcessingParameterListElement_ListElementID() uintptr

func KVTRAWProcessingParameterValueType_Boolean

func KVTRAWProcessingParameterValueType_Boolean() uintptr

func KVTRAWProcessingParameterValueType_Float

func KVTRAWProcessingParameterValueType_Float() uintptr

func KVTRAWProcessingParameterValueType_Integer

func KVTRAWProcessingParameterValueType_Integer() uintptr

func KVTRAWProcessingParameterValueType_List

func KVTRAWProcessingParameterValueType_List() uintptr

func KVTRAWProcessingParameterValueType_SubGroup

func KVTRAWProcessingParameterValueType_SubGroup() uintptr

func KVTRAWProcessingParameter_CameraValue

func KVTRAWProcessingParameter_CameraValue() uintptr

@constant kVTRAWProcessingParameter_CameraValue @discussion The value corresponding to this key is the "As Shot" value for this parameter as originally captured by the camera. For List types, this is the ListElementID for the List element.

func KVTRAWProcessingParameter_CurrentValue

func KVTRAWProcessingParameter_CurrentValue() uintptr

@constant kVTRAWProcessingParameter_CurrentValue @discussion The value corresponding to this key is the currently configured value for this parameter. For List types, this is the ListElementID for the List element.

func KVTRAWProcessingParameter_Description

func KVTRAWProcessingParameter_Description() uintptr

@constant kVTRAWProcessingParameter_Description @discussion The value corresponding to this key is a localized string with a description of the parameter suitable for display in a tooltip or other descriptive UI.

func KVTRAWProcessingParameter_Enabled

func KVTRAWProcessingParameter_Enabled() uintptr

@constant kVTRAWProcessingParameter_Enabled @discussion The value corresponding to this key is Boolean indicating whether the parameter is enabled and can be modified.

func KVTRAWProcessingParameter_InitialValue

func KVTRAWProcessingParameter_InitialValue() uintptr

@constant kVTRAWProcessingParameter_InitialValue @discussion The value corresponding to this key is the initial value for this parameter as defined by the container and metadata provided at creation time. For List types, this is the ListElementID for the List element.

func KVTRAWProcessingParameter_Key

func KVTRAWProcessingParameter_Key() uintptr

@constant kVTRAWProcessingParameter_Key @discussion The value corresponding to this key is the string used when specifying this parameter when calling VTRAWProcessingSessionSetProcessingParameters.

func KVTRAWProcessingParameter_ListArray

func KVTRAWProcessingParameter_ListArray() uintptr

@constant kVTRAWProcessingParameter_ListArray @discussion The value corresponding to this key is a CFArray of CFDictionaries describing each element in the list..

func KVTRAWProcessingParameter_MaximumValue

func KVTRAWProcessingParameter_MaximumValue() uintptr

@constant kVTRAWProcessingParameter_MaximumValue @discussion The value corresponding to this key is the maximum value allowed for this parameter when calling VTRAWProcessingSessionSetProcessingParameters. This parameter is optional and not required for parameters where it is not appropriate (such as Boolean or List types).

func KVTRAWProcessingParameter_MinimumValue

func KVTRAWProcessingParameter_MinimumValue() uintptr

@constant kVTRAWProcessingParameter_MinimumValue @discussion The value corresponding to this key is the minimum value allowed for this parameter when calling VTRAWProcessingSessionSetProcessingParameters. This parameter is optional and not required for parameters where it is not appropriate (such as Boolean or List types).

func KVTRAWProcessingParameter_Name

func KVTRAWProcessingParameter_Name() uintptr

@constant kVTRAWProcessingParameter_Name @discussion The value corresponding to this key is a localized string which can be displayed in UI representing this parameter.

func KVTRAWProcessingParameter_NeutralValue

func KVTRAWProcessingParameter_NeutralValue() uintptr

@constant kVTRAWProcessingParameter_NeutralValue @discussion The value corresponding to this key is a neutral setting for the processor. For List types, this is the ListElementID for the List element.

func KVTRAWProcessingParameter_SubGroup

func KVTRAWProcessingParameter_SubGroup() uintptr

@constant kVTRAWProcessingParameter_SubGroup @discussion The value corresponding to this key is a CFArray of CFDictionaries representing the individual sub-parameters in this group.

func KVTRAWProcessingParameter_ValueType

func KVTRAWProcessingParameter_ValueType() uintptr

@constant kVTRAWProcessingParameter_ValueType @discussion The value corresponding to this key is the type of the parameter - a Boolean, Integer, Float, List, or SubGroup.

func KVTRAWProcessingPropertyKey_MetadataForSidecarFile

func KVTRAWProcessingPropertyKey_MetadataForSidecarFile() uintptr

@constant kVTRAWProcessingPropertyKey_MetadataForSidecarFile @abstract This property, if supported, returns the current processing metadata on the RAW Processor. The returned value can be used by the caller to create, or overwrite an existing sidecar file. @discussion This property is not supported by all RAWProcessors. The metadata returned represents a fully-formed sidecar file, and should be compatible with the MediaExtension FormatReader.

func KVTRAWProcessingPropertyKey_MetalDeviceRegistryID

func KVTRAWProcessingPropertyKey_MetalDeviceRegistryID() uintptr

@constant kVTRAWProcessingPropertyKey_MetalDeviceRegistryID @abstract This property, if supported, requests that the Metal device corresponding to the specified registryID be used for any Metal related processing @discussion This property is not supported by all RAWProcessors

func KVTRAWProcessingPropertyKey_OutputColorAttachments

func KVTRAWProcessingPropertyKey_OutputColorAttachments() uintptr

@constant kVTRAWProcessingPropertyKey_OutputColorAttachments @abstract Returns the color-related CVImageBuffer keys and values that will be attachments to the returned pixel buffers. @discussion This property may not be supported by all RAW Processors. Only color-related keys from CVImageBuffer.h are permitted in the returned dictionary.

func KVTRotation_0

func KVTRotation_0() uintptr

func KVTRotation_180

func KVTRotation_180() uintptr

func KVTRotation_CCW90

func KVTRotation_CCW90() uintptr

func KVTRotation_CW90

func KVTRotation_CW90() uintptr

func KVTSampleAttachmentKey_QualityMetrics

func KVTSampleAttachmentKey_QualityMetrics() uintptr

@constant kVTSampleAttachmentKey_QualityMetrics @abstract The value for this key contain quality-related metadata from the video encoder for a video frame. @discussion The video encoder will attach this via the CMSampleBufferGetSampleAttachmentsArray interface before emitting the sample buffer.

func KVTSampleAttachmentKey_RequireLTRAcknowledgementToken

func KVTSampleAttachmentKey_RequireLTRAcknowledgementToken() uintptr

@constant kVTSampleAttachmentKey_RequireLTRAcknowledgementToken @abstract CFNumber containing a unique token for this LTR @discussion This CMSampleBuffer attachment contains a unique token which can be returned to the encoder through kVTEncodeFrameOptionKey_AcknowledgedLTRTokens to indicate that the LTR has been received and may be used as a reference. Also see: kVTCompressionPropertyKey_EnableLTR kVTEncodeFrameOptionKey_AcknowledgedLTRTokens kVTEncodeFrameOptionKey_ForceLTRRefresh

func KVTSampleAttachmentQualityMetricsKey_ChromaBlueMeanSquaredError

func KVTSampleAttachmentQualityMetricsKey_ChromaBlueMeanSquaredError() uintptr

@constant kVTSampleAttachmentQualityMetricsKey_ChromaBlueMeanSquaredError @abstract Key for mean squared error (MSE) of the encoded Chroma Blue channel from the video encoder. @discussion For single-view video, a CFNumber value is returned. For multi-view video, a CFArray value is returned, and each element (CFNumber) in the CFArray includes MSE for the corresponding view. The video encoder will attach this in kVTSampleAttachmentKey_QualityMetrics via the CMSampleBufferGetSampleAttachmentsArray interface before emitting the sample buffer.

func KVTSampleAttachmentQualityMetricsKey_ChromaRedMeanSquaredError

func KVTSampleAttachmentQualityMetricsKey_ChromaRedMeanSquaredError() uintptr

@constant kVTSampleAttachmentQualityMetricsKey_ChromaRedMeanSquaredError @abstract Key for mean squared error (MSE) of the encoded Chroma Red channel from the video encoder. @discussion For single-view video, a CFNumber value is returned. For multi-view video, a CFArray value is returned, and each element (CFNumber) in the CFArray includes MSE for the corresponding view. The video encoder will attach this in kVTSampleAttachmentKey_QualityMetrics via the CMSampleBufferGetSampleAttachmentsArray interface before emitting the sample buffer.

func KVTSampleAttachmentQualityMetricsKey_LumaMeanSquaredError

func KVTSampleAttachmentQualityMetricsKey_LumaMeanSquaredError() uintptr

@constant kVTSampleAttachmentQualityMetricsKey_LumaMeanSquaredError @abstract Key for mean squared error (MSE) of the encoded Luma channel from the video encoder. @discussion For single-view video, a CFNumber value is returned. For multi-view video, a CFArray value is returned, and each element (CFNumber) in the CFArray includes MSE for the corresponding view. The video encoder will attach this in kVTSampleAttachmentKey_QualityMetrics via the CMSampleBufferGetSampleAttachmentsArray interface before emitting the sample buffer.

func KVTScalingMode_CropSourceToCleanAperture

func KVTScalingMode_CropSourceToCleanAperture() uintptr

func KVTScalingMode_Letterbox

func KVTScalingMode_Letterbox() uintptr

func KVTScalingMode_Normal

func KVTScalingMode_Normal() uintptr

func KVTScalingMode_Trim

func KVTScalingMode_Trim() uintptr

func KVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder

func KVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder() uintptr

@constant kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder @abstract If set to kCFBooleanTrue, the VideoToolbox will use a hardware accelerated video decoder if available. If set to kCFBooleanFalse, hardware decode will never be used. @discussion This key is set in the decoderSpecification passed in to VTDecompressionSessionCreate. Set it to kCFBooleanTrue to allow hardware accelerated decode. To prevent hardware decode, this property can be set to kCFBooleanFalse. In MacOS 10.15 and later, hardware decode is enabled in VTDecompressionSessions by default.

func KVTVideoDecoderSpecification_PreferredDecoderGPURegistryID

func KVTVideoDecoderSpecification_PreferredDecoderGPURegistryID() uintptr

@constant kVTVideoDecoderSpecification_PreferredDecoderGPURegistryID @abstract If set, the VideoToolbox will try to use a hardware decoder running on the GPU specified by the provided GPU registryID. If the GPU does not support decode of the specified format, the VideoToolbox will fall back to alternate decoders. @discussion This specification implies kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder. A separate hardware decode opt-in is not required. If both kVTVideoDecoderSpecification_PreferredDecoderGPURegistryID and kVTVideoDecoderSpecification_RequiredDecoderGPURegistryID are set, kVTVideoDecoderSpecification_PreferredDecoderGPURegistryID will be ignored. This specification can be used in conjunction with kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder to prevent a fallback to software decode. The GPU registryID can be obtained from a MTLDevice using [MTLDevice registryID] or can be obtained from OpenGL or OpenCL. This option can only be used to specify a GPU registryID corresponding to a removable GPU (eGPU).

func KVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder

func KVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder() uintptr

@constant kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder @abstract If set to kCFBooleanTrue, the VideoToolbox will try to allocate a hardware accelerated decoder and return an error if that isn't possible. Setting this key automatically implies kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder -- there is no need to set both and the Enable key does nothing if the Require key is set. @discussion This key is set in the decoderSpecification passed in to VTDecompressionSessionCreate. Set it to kCFBooleanTrue to require hardware accelerated decode. If hardware acceleration is not possible, the VTDecompressionSessionCreate call will fail. This key is useful for clients that have their own software decode implementation or those that may want to configure software and hardware decode sessions differently. Hardware acceleration may be unavailable for a number of reasons. A few common cases are: - the machine does not have hardware acceleration capabilities - the requested decoding format or configuration is not supported - the hardware decode resources on the machine are busy

func KVTVideoDecoderSpecification_RequiredDecoderGPURegistryID

func KVTVideoDecoderSpecification_RequiredDecoderGPURegistryID() uintptr

@constant kVTVideoDecoderSpecification_RequiredDecoderGPURegistryID @abstract If set, the VideoToolbox will only use a hardware decoder running on the GPU specified by the provided GPU registryID. @discussion This specification implies kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder. A separate hardware decode opt-in is not required. The GPU registryID can be obtained from a MTLDevice using [MTLDevice registryID] or can be obtained from OpenGL or OpenCL. This option can only be used to specify a GPU registryID corresponding to a removable GPU (eGPU). If 0 is specified for the required GPU registryID, the VideoToolbox will not utilize removable GPUs for decode.

func KVTVideoEncoderListOption_IncludeStandardDefinitionDVEncoders

func KVTVideoEncoderListOption_IncludeStandardDefinitionDVEncoders() uintptr

func KVTVideoEncoderList_CodecName

func KVTVideoEncoderList_CodecName() uintptr

func KVTVideoEncoderList_CodecType

func KVTVideoEncoderList_CodecType() uintptr

func KVTVideoEncoderList_DisplayName

func KVTVideoEncoderList_DisplayName() uintptr

func KVTVideoEncoderList_EncoderID

func KVTVideoEncoderList_EncoderID() uintptr

func KVTVideoEncoderList_EncoderName

func KVTVideoEncoderList_EncoderName() uintptr

func KVTVideoEncoderList_GPURegistryID

func KVTVideoEncoderList_GPURegistryID() uintptr

func KVTVideoEncoderList_InstanceLimit

func KVTVideoEncoderList_InstanceLimit() uintptr

func KVTVideoEncoderList_IsHardwareAccelerated

func KVTVideoEncoderList_IsHardwareAccelerated() uintptr

func KVTVideoEncoderList_PerformanceRating

func KVTVideoEncoderList_PerformanceRating() uintptr

func KVTVideoEncoderList_QualityRating

func KVTVideoEncoderList_QualityRating() uintptr

func KVTVideoEncoderList_SupportedSelectionProperties

func KVTVideoEncoderList_SupportedSelectionProperties() uintptr

func KVTVideoEncoderList_SupportsFrameReordering

func KVTVideoEncoderList_SupportsFrameReordering() uintptr

func KVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder

func KVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder() uintptr

@constant kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder @abstract If set to kCFBooleanTrue, use a hardware accelerated video encoder if available. If set to kCFBooleanFalse, hardware encode will never be used. @discussion This key is set in the encoderSpecification passed in to VTCompressionSessionCreate. Set it to kCFBooleanTrue to allow hardware accelerated encode. To prevent hardware encode, this property can be set to kCFBooleanFalse. In MacOS 10.15 and later, hardware encode is enabled in VTCompressionSessions by default.

func KVTVideoEncoderSpecification_EnableLowLatencyRateControl

func KVTVideoEncoderSpecification_EnableLowLatencyRateControl() uintptr

@constant kVTVideoEncoderSpecification_EnableLowLatencyRateControl @abstract Requires that an encoder which supports low-latency operation be selected, and enables low-latency mode. @discussion Low latency RateControl enforces the following behaviors: - Infinite GOP (all P frames following the beginning IDR). - No frame reordering (B frame) or looking ahead. - Only High profiles. Levels are left for the encoder to automatically set. - Temporal Layer structure. Also see: kVTCompressionPropertyKey_AverageBitRate kVTCompressionPropertyKey_BaseLayerFrameRateFraction kVTEncodeFrameOptionKey_ForceKeyFrame

func KVTVideoEncoderSpecification_EncoderID

func KVTVideoEncoderSpecification_EncoderID() uintptr

@constant kVTVideoEncoderSpecification_EncoderID @abstract Specifies a particular video encoder by its ID string. @discussion To specify a particular video encoder when creating a compression session, pass an encoderSpecification CFDictionary containing this key and the EncoderID as its value. The EncoderID CFString may be obtained from the kVTVideoEncoderList_EncoderID entry in the array returned by VTCopyVideoEncoderList.

func KVTVideoEncoderSpecification_PreferredEncoderGPURegistryID

func KVTVideoEncoderSpecification_PreferredEncoderGPURegistryID() uintptr

@constant kVTVideoEncoderSpecification_PreferredEncoderGPURegistryID @abstract If set, the VideoToolbox will try to use a hardware encoder running on the GPU specified by the provided GPU registryID. If the GPU does not support encode of the specified format, the VideoToolbox will fall back to alternate encoders. @discussion This specification implies kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder. A separate hardware encode opt-in is not required. If both kVTVideoEncoderSpecification_PreferredEncoderGPURegistryID and kVTVideoEncoderSpecification_RequiredEncoderGPURegistryID are set, kVTVideoEncoderSpecification_PreferredEncoderGPURegistryID will be ignored. This specification can be used in conjunction with kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder to prevent a fallback to software encode. The GPU registryID can be obtained from a MTLDevice using [MTLDevice registryID] or can be obtained from OpenGL or OpenCL.

func KVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder

func KVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder() uintptr

@constant kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder @abstract If set to kCFBooleanTrue, only use hardware encode and return an error if this isn't possible. Setting this key automatically implies kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder -- there is no need to set both and the Enable key does nothing if the Require key is set. @discussion This key is set in the encoderSpecification passed in to VTCompressionSessionCreate. Set it to kCFBooleanTrue to require hardware accelerated encode. If hardware acceleration is not possible, the VTCompressionSessionCreate call will fail. This key is useful for clients that have their own software encode implementation or those that may want to configure software and hardware encode sessions differently. Hardware acceleration may be unavailable for a number of reasons. A few common cases are: - the machine does not have hardware acceleration capabilities - the requested encoding format or encoding configuration is not supported - the hardware encoding resources on the machine are busy

func KVTVideoEncoderSpecification_RequiredEncoderGPURegistryID

func KVTVideoEncoderSpecification_RequiredEncoderGPURegistryID() uintptr

@constant kVTVideoEncoderSpecification_RequiredEncoderGPURegistryID @abstract If set, the VideoToolbox will only use a hardware encoder running on the GPU specified by the provided GPU registryID. @discussion This specification implies kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder. A separate hardware encode opt-in is not required. The GPU registryID can be obtained from a MTLDevice using [MTLDevice registryID] or can be obtained from OpenGL or OpenCL.

func KVTViewPackingKind_OverUnder

func KVTViewPackingKind_OverUnder() uintptr

func KVTViewPackingKind_SideBySide

func KVTViewPackingKind_SideBySide() uintptr

func SymbolAvailable

func SymbolAvailable(symbol string) bool

SymbolAvailable reports whether the named C symbol was bound when the library loaded. Calling a generated wrapper whose symbol is unavailable dereferences a nil function variable and panics.

func VTCompressionSessionBeginPass

func VTCompressionSessionBeginPass(session unsafe.Pointer, beginPassFlags VTCompressionSessionOptionFlags, reserved *uint32) int

func VTCompressionSessionCompleteFrames

func VTCompressionSessionCompleteFrames(session unsafe.Pointer, completeUntilPresentationTimeStamp coremedia.CMTime) int

func VTCompressionSessionCreate

func VTCompressionSessionCreate(allocator unsafe.Pointer, width int32, height int32, codecType uint, encoderSpecification unsafe.Pointer, sourceImageBufferAttributes unsafe.Pointer, compressedDataAllocator unsafe.Pointer, outputCallback unsafe.Pointer, outputCallbackRefCon unsafe.Pointer, compressionSessionOut unsafe.Pointer) int

func VTCompressionSessionEncodeFrame

func VTCompressionSessionEncodeFrame(session unsafe.Pointer, imageBuffer unsafe.Pointer, presentationTimeStamp coremedia.CMTime, duration coremedia.CMTime, frameProperties unsafe.Pointer, sourceFrameRefcon unsafe.Pointer, infoFlagsOut *VTEncodeInfoFlags) int

func VTCompressionSessionEncodeFrameWithOutputHandler

func VTCompressionSessionEncodeFrameWithOutputHandler(session unsafe.Pointer, imageBuffer unsafe.Pointer, presentationTimeStamp coremedia.CMTime, duration coremedia.CMTime, frameProperties unsafe.Pointer, infoFlagsOut *VTEncodeInfoFlags, outputHandler func(int, VTEncodeInfoFlags, unsafe.Pointer)) int

func VTCompressionSessionEncodeMultiImageFrame

func VTCompressionSessionEncodeMultiImageFrame(session unsafe.Pointer, taggedBufferGroup unsafe.Pointer, presentationTimeStamp coremedia.CMTime, duration coremedia.CMTime, frameProperties unsafe.Pointer, sourceFrameRefcon unsafe.Pointer, infoFlagsOut *VTEncodeInfoFlags) int

func VTCompressionSessionEncodeMultiImageFrameWithOutputHandler

func VTCompressionSessionEncodeMultiImageFrameWithOutputHandler(session unsafe.Pointer, taggedBufferGroup unsafe.Pointer, presentationTimeStamp coremedia.CMTime, duration coremedia.CMTime, frameProperties unsafe.Pointer, infoFlagsOut *VTEncodeInfoFlags, outputHandler func(int, VTEncodeInfoFlags, unsafe.Pointer)) int

func VTCompressionSessionEndPass

func VTCompressionSessionEndPass(session unsafe.Pointer, furtherPassesRequestedOut *uint8, reserved *uint32) int

func VTCompressionSessionGetPixelBufferPool

func VTCompressionSessionGetPixelBufferPool(session unsafe.Pointer) unsafe.Pointer

func VTCompressionSessionGetTimeRangesForNextPass

func VTCompressionSessionGetTimeRangesForNextPass(session unsafe.Pointer, timeRangeCountOut *int, timeRangeArrayOut *coremedia.CMTimeRange) int

func VTCompressionSessionGetTypeID

func VTCompressionSessionGetTypeID() uint

func VTCompressionSessionInvalidate

func VTCompressionSessionInvalidate(session unsafe.Pointer)

func VTCompressionSessionPrepareToEncodeFrames

func VTCompressionSessionPrepareToEncodeFrames(session unsafe.Pointer) int

func VTCopyRAWProcessorExtensionProperties

func VTCopyRAWProcessorExtensionProperties(formatDesc unsafe.Pointer, mediaExtensionPropertiesOut unsafe.Pointer) int

@function VTCopyRAWProcessorExtensionProperties @abstract Returns information about the Media Extension RAW processor supporting the specified format. @discussion If a Media Extension RAW processor will be used to process the specified format, this function will return information about the Media Extension that will be used. @param formatDesc The format description for the video format for which information is being requested. @param mediaExtensionPropertiesOut If a Media Extension RAW processor will be used to process the specified format, this pointer will return a dictionary with a set of properties describing the extension RAW processor. The dictionary keys VTExtensionPropertiesKey values. @result If the function succeeds and a Media Extension RAW processor will be used to process this format, the return value will be noErr. If the function succeeds but a Media Extension RAW processor will not be used to process this format, the return value will be kVTCouldNotFindExtensionErr. If a Media Extension RAW processor for the format was found but is disabled, the function will return kVTExtensionDisabledErr. Otherwise, the return value will be an error code describing the failure.

func VTCopySupportedPropertyDictionaryForEncoder

func VTCopySupportedPropertyDictionaryForEncoder(width int32, height int32, codecType uint, encoderSpecification unsafe.Pointer, encoderIDOut unsafe.Pointer, supportedPropertiesOut unsafe.Pointer) int

@function VTCopySupportedPropertyDictionaryForEncoder @abstract Builds a list of supported properties and encoder ID for an encoder @discussion The caller must CFRelease the returned supported properties and encoder ID.

func VTCopyVideoDecoderExtensionProperties

func VTCopyVideoDecoderExtensionProperties(formatDesc unsafe.Pointer, mediaExtensionPropertiesOut unsafe.Pointer) int

@function VTCopyVideoDecoderExtensionProperties @abstract Returns information about the Media Extension video decoder required to decode the specified format. @discussion If a Media Extension video decoder will be used to decode the specified format, this function will return information about the Media Extension that will be used. @param formatDesc The format description for the video format for which information is being requested. @param mediaExtensionPropertiesOut If a Media Extension video decoder will be used to decode the specified format, this pointer will return a dictionary with a set of properties describing the extension video decoder. The dictionary keys are VTExtensionPropertiesKey values. @result If the function succeeds and a Media Extension video decoder will be used to decode this format, the return value will be noErr. If the function succeeds but a Media Extension video decoder will not be used to decode this format, the return value will be kVTCouldNotFindExtensionErr. If a Media Extension video decoder for the format was found but is disabled, the function will return kVTExtensionDisabledErr. Otherwise, the return value will be an error code describing the failure.

func VTCopyVideoEncoderList

func VTCopyVideoEncoderList(options unsafe.Pointer, listOfVideoEncodersOut unsafe.Pointer) int

@function VTCopyVideoEncoderList @abstract Builds a list of available video encoders. @discussion The caller must CFRelease the returned list.

func VTCreateCGImageFromCVPixelBuffer

func VTCreateCGImageFromCVPixelBuffer(pixelBuffer unsafe.Pointer, options unsafe.Pointer, imageOut unsafe.Pointer) int

func VTDecompressionSessionCanAcceptFormatDescription

func VTDecompressionSessionCanAcceptFormatDescription(session unsafe.Pointer, newFormatDesc unsafe.Pointer) uint8

func VTDecompressionSessionCopyBlackPixelBuffer

func VTDecompressionSessionCopyBlackPixelBuffer(session unsafe.Pointer, pixelBufferOut unsafe.Pointer) int

func VTDecompressionSessionCreate

func VTDecompressionSessionCreate(allocator unsafe.Pointer, videoFormatDescription unsafe.Pointer, videoDecoderSpecification unsafe.Pointer, destinationImageBufferAttributes unsafe.Pointer, outputCallback *VTDecompressionOutputCallbackRecord, decompressionSessionOut unsafe.Pointer) int

func VTDecompressionSessionDecodeFrame

func VTDecompressionSessionDecodeFrame(session unsafe.Pointer, sampleBuffer unsafe.Pointer, decodeFlags VTDecodeFrameFlags, sourceFrameRefCon unsafe.Pointer, infoFlagsOut *VTDecodeInfoFlags) int

func VTDecompressionSessionDecodeFrameWithMultiImageCapableOutputHandler

func VTDecompressionSessionDecodeFrameWithMultiImageCapableOutputHandler(session unsafe.Pointer, sampleBuffer unsafe.Pointer, decodeFlags VTDecodeFrameFlags, infoFlagsOut *VTDecodeInfoFlags, multiImageCapableOutputHandler objc.Block) int

func VTDecompressionSessionDecodeFrameWithOptions

func VTDecompressionSessionDecodeFrameWithOptions(session unsafe.Pointer, sampleBuffer unsafe.Pointer, decodeFlags VTDecodeFrameFlags, frameOptions unsafe.Pointer, sourceFrameRefCon unsafe.Pointer, infoFlagsOut *VTDecodeInfoFlags) int

func VTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler

func VTDecompressionSessionDecodeFrameWithOptionsAndOutputHandler(session unsafe.Pointer, sampleBuffer unsafe.Pointer, decodeFlags VTDecodeFrameFlags, frameOptions unsafe.Pointer, infoFlagsOut *VTDecodeInfoFlags, outputHandler objc.Block) int

func VTDecompressionSessionDecodeFrameWithOutputHandler

func VTDecompressionSessionDecodeFrameWithOutputHandler(session unsafe.Pointer, sampleBuffer unsafe.Pointer, decodeFlags VTDecodeFrameFlags, infoFlagsOut *VTDecodeInfoFlags, outputHandler objc.Block) int

func VTDecompressionSessionFinishDelayedFrames

func VTDecompressionSessionFinishDelayedFrames(session unsafe.Pointer) int

func VTDecompressionSessionGetTypeID

func VTDecompressionSessionGetTypeID() uint

func VTDecompressionSessionInvalidate

func VTDecompressionSessionInvalidate(session unsafe.Pointer)

func VTDecompressionSessionSetMultiImageCallback

func VTDecompressionSessionSetMultiImageCallback(decompressionSession unsafe.Pointer, outputMultiImageCallback unsafe.Pointer, outputMultiImageRefcon unsafe.Pointer) int

func VTDecompressionSessionWaitForAsynchronousFrames

func VTDecompressionSessionWaitForAsynchronousFrames(session unsafe.Pointer) int

func VTFrameProcessorErrorDomain

func VTFrameProcessorErrorDomain() uintptr

func VTFrameRateConversionConfigurationIsSupported

func VTFrameRateConversionConfigurationIsSupported() bool

Reports whether the system supports this processor.

func VTFrameRateConversionConfigurationProcessorSupported deprecated

func VTFrameRateConversionConfigurationProcessorSupported() uint8

Deprecated: since macOS 26.0.

func VTFrameRateConversionConfigurationSupportedRevisions

func VTFrameRateConversionConfigurationSupportedRevisions() *foundation.NSIndexSet

Provides the collection of currently supported algorithms or configuration revisions for the class of configuration. A property you use to introspect at runtime which revisions are available for each configuration.

func VTFrameSiloAddSampleBuffer

func VTFrameSiloAddSampleBuffer(silo unsafe.Pointer, sampleBuffer unsafe.Pointer) int

func VTFrameSiloCallBlockForEachSampleBuffer

func VTFrameSiloCallBlockForEachSampleBuffer(silo unsafe.Pointer, timeRange coremedia.CMTimeRange, handler func(unsafe.Pointer) unsafe.Pointer) int

func VTFrameSiloCallFunctionForEachSampleBuffer

func VTFrameSiloCallFunctionForEachSampleBuffer(silo unsafe.Pointer, timeRange coremedia.CMTimeRange, refcon unsafe.Pointer, callback unsafe.Pointer) int

func VTFrameSiloCreate

func VTFrameSiloCreate(allocator unsafe.Pointer, fileURL unsafe.Pointer, timeRange coremedia.CMTimeRange, options unsafe.Pointer, frameSiloOut unsafe.Pointer) int

func VTFrameSiloGetProgressOfCurrentPass

func VTFrameSiloGetProgressOfCurrentPass(silo unsafe.Pointer, progressOut *float32) int

func VTFrameSiloGetTypeID

func VTFrameSiloGetTypeID() uint

func VTFrameSiloSetTimeRangesForNextPass

func VTFrameSiloSetTimeRangesForNextPass(silo unsafe.Pointer, timeRangeCount int, timeRangeArray *coremedia.CMTimeRange) int

func VTHDRPerFrameMetadataGenerationSessionAttachMetadata

func VTHDRPerFrameMetadataGenerationSessionAttachMetadata(hdrPerFrameMetadataGenerationSession unsafe.Pointer, pixelBuffer unsafe.Pointer, sceneChange uint8) int

func VTHDRPerFrameMetadataGenerationSessionCreate

func VTHDRPerFrameMetadataGenerationSessionCreate(allocator unsafe.Pointer, framesPerSecond float32, options unsafe.Pointer, hdrPerFrameMetadataGenerationSessionOut unsafe.Pointer) int

func VTHDRPerFrameMetadataGenerationSessionGetTypeID

func VTHDRPerFrameMetadataGenerationSessionGetTypeID() uint

func VTIsHardwareDecodeSupported

func VTIsHardwareDecodeSupported(codecType uint) uint8

func VTIsStereoMVHEVCDecodeSupported

func VTIsStereoMVHEVCDecodeSupported() uint8

func VTIsStereoMVHEVCEncodeSupported

func VTIsStereoMVHEVCEncodeSupported() uint8

func VTLowLatencyFrameInterpolationConfigurationIsSupported

func VTLowLatencyFrameInterpolationConfigurationIsSupported() bool

Reports whether the system supports this processor.

func VTLowLatencySuperResolutionScalerConfigurationIsSupported

func VTLowLatencySuperResolutionScalerConfigurationIsSupported() bool

Reports whether the system supports this processor on the current configuration.

func VTLowLatencySuperResolutionScalerConfigurationMaximumDimensions

func VTLowLatencySuperResolutionScalerConfigurationMaximumDimensions() coremedia.CMVideoDimensions

Maximum dimensions for a source frame for the processor.

func VTLowLatencySuperResolutionScalerConfigurationMinimumDimensions

func VTLowLatencySuperResolutionScalerConfigurationMinimumDimensions() coremedia.CMVideoDimensions

Minimum dimensions for a source frame for the processor.

func VTLowLatencySuperResolutionScalerConfigurationSupportedScaleFactorsForFrameWidthFrameHeight

func VTLowLatencySuperResolutionScalerConfigurationSupportedScaleFactorsForFrameWidthFrameHeight(frameWidth int, frameHeight int) *foundation.NSArray[*foundation.NSNumber]

Returns an array of supported scale factors values, or an empty list if the processor doesn't support the dimensions.

func VTMotionBlurConfigurationIsSupported

func VTMotionBlurConfigurationIsSupported() bool

Reports whether the system supports this processor.

func VTMotionBlurConfigurationProcessorSupported deprecated

func VTMotionBlurConfigurationProcessorSupported() uint8

Deprecated: since macOS 26.0.

func VTMotionBlurConfigurationSupportedRevisions

func VTMotionBlurConfigurationSupportedRevisions() *foundation.NSIndexSet

Provides the collection of currently supported algorithms or configuration revisions for the class of configuration. A property you use to introspect at runtime which revisions are available for each configuration.

func VTMotionEstimationSessionCompleteFrames

func VTMotionEstimationSessionCompleteFrames(session unsafe.Pointer) int

func VTMotionEstimationSessionCopySourcePixelBufferAttributes

func VTMotionEstimationSessionCopySourcePixelBufferAttributes(motionEstimationSession unsafe.Pointer, attributesOut unsafe.Pointer) int

func VTMotionEstimationSessionCreate

func VTMotionEstimationSessionCreate(allocator unsafe.Pointer, motionVectorProcessorSelectionOptions unsafe.Pointer, width uint32, height uint32, motionEstimationSessionOut unsafe.Pointer) int

func VTMotionEstimationSessionEstimateMotionVectors

func VTMotionEstimationSessionEstimateMotionVectors(session unsafe.Pointer, referenceImage unsafe.Pointer, currentImage unsafe.Pointer, motionEstimationFrameFlags VTMotionEstimationFrameFlags, additionalFrameOptions unsafe.Pointer, outputHandler func(int, VTMotionEstimationInfoFlags, unsafe.Pointer, unsafe.Pointer)) int

func VTMotionEstimationSessionGetTypeID

func VTMotionEstimationSessionGetTypeID() uint

Get the CoreFoundation type identifier for motion-estimation session type.

func VTMotionEstimationSessionInvalidate

func VTMotionEstimationSessionInvalidate(session unsafe.Pointer)

func VTMultiPassStorageClose

func VTMultiPassStorageClose(multiPassStorage unsafe.Pointer) int

func VTMultiPassStorageCreate

func VTMultiPassStorageCreate(allocator unsafe.Pointer, fileURL unsafe.Pointer, timeRange coremedia.CMTimeRange, options unsafe.Pointer, multiPassStorageOut unsafe.Pointer) int

func VTMultiPassStorageGetTypeID

func VTMultiPassStorageGetTypeID() uint

func VTOpticalFlowConfigurationIsSupported

func VTOpticalFlowConfigurationIsSupported() bool

Reports whether the system supports this processor.

func VTOpticalFlowConfigurationProcessorSupported deprecated

func VTOpticalFlowConfigurationProcessorSupported() uint8

Deprecated: since macOS 26.0.

func VTOpticalFlowConfigurationSupportedRevisions

func VTOpticalFlowConfigurationSupportedRevisions() *foundation.NSIndexSet

Provides the collection of currently supported algorithms or configuration revisions for the class of configuration. A property you use to introspect at runtime which revisions are available for each configuration.

func VTPixelRotationSessionCreate

func VTPixelRotationSessionCreate(allocator unsafe.Pointer, pixelRotationSessionOut unsafe.Pointer) int

func VTPixelRotationSessionGetTypeID

func VTPixelRotationSessionGetTypeID() uint

func VTPixelRotationSessionInvalidate

func VTPixelRotationSessionInvalidate(session unsafe.Pointer)

func VTPixelRotationSessionRotateImage

func VTPixelRotationSessionRotateImage(session unsafe.Pointer, sourceBuffer unsafe.Pointer, destinationBuffer unsafe.Pointer) int

func VTPixelTransferSessionCreate

func VTPixelTransferSessionCreate(allocator unsafe.Pointer, pixelTransferSessionOut unsafe.Pointer) int

func VTPixelTransferSessionGetTypeID

func VTPixelTransferSessionGetTypeID() uint

func VTPixelTransferSessionInvalidate

func VTPixelTransferSessionInvalidate(session unsafe.Pointer)

func VTPixelTransferSessionTransferImage

func VTPixelTransferSessionTransferImage(session unsafe.Pointer, sourceBuffer unsafe.Pointer, destinationBuffer unsafe.Pointer) int

func VTRAWProcessingSessionCompleteFrames

func VTRAWProcessingSessionCompleteFrames(session unsafe.Pointer) int

func VTRAWProcessingSessionCopyProcessingParameters

func VTRAWProcessingSessionCopyProcessingParameters(session unsafe.Pointer, outParameterArray unsafe.Pointer) int

func VTRAWProcessingSessionCreate

func VTRAWProcessingSessionCreate(allocator unsafe.Pointer, formatDescription unsafe.Pointer, outputPixelBufferAttributes unsafe.Pointer, processingSessionOptions unsafe.Pointer, processingSessionOut unsafe.Pointer) int

func VTRAWProcessingSessionGetTypeID

func VTRAWProcessingSessionGetTypeID() uint

func VTRAWProcessingSessionInvalidate

func VTRAWProcessingSessionInvalidate(session unsafe.Pointer)

func VTRAWProcessingSessionProcessFrame

func VTRAWProcessingSessionProcessFrame(session unsafe.Pointer, inputPixelBuffer unsafe.Pointer, frameOptions unsafe.Pointer, outputHandler func(int, unsafe.Pointer)) int

func VTRAWProcessingSessionSetParameterChangedHander deprecated

func VTRAWProcessingSessionSetParameterChangedHander(session unsafe.Pointer, parameterChangeHandler func(unsafe.Pointer)) int

Deprecated: since macOS 26.0.

func VTRAWProcessingSessionSetParameterChangedHandler

func VTRAWProcessingSessionSetParameterChangedHandler(session unsafe.Pointer, parameterChangeHandler func(unsafe.Pointer)) int

func VTRAWProcessingSessionSetProcessingParameters

func VTRAWProcessingSessionSetProcessingParameters(session unsafe.Pointer, processingParameters unsafe.Pointer) int

func VTRegisterProfessionalVideoWorkflowVideoDecoders

func VTRegisterProfessionalVideoWorkflowVideoDecoders()

@function VTRegisterProfessionalVideoWorkflowVideoDecoders @abstract Allows the client to use video decoders appropriate for professional video workflows. @discussion By calling this function, a client indicates to VideoToolbox that it wishes to support Media Extension video decoders. Any associated Video RAW Processors will also be supported as well. Note that this functionality is intended for applications supporting professional video workflows. It is not recommended for network-facing applications such as web browsers, messaging clients, mail clients, etc.

func VTRegisterProfessionalVideoWorkflowVideoEncoders

func VTRegisterProfessionalVideoWorkflowVideoEncoders()

@function VTRegisterProfessionalVideoWorkflowVideoEncoders @abstract Allows the client to use encoders appropriate for professional video workflows.

func VTRegisterSupplementalVideoDecoderIfAvailable

func VTRegisterSupplementalVideoDecoderIfAvailable(codecType uint)

@function VTRegisterSupplementalVideoDecoderIfAvailable @abstract Requests that a video decoder, if available, be registered for the specified CMVideoCodecType @param codecType The CMVideoCodecType corresponding the format being requested @discussion This call will register a video decoder for the provided CMVideoCodecType if such a decoder is present on the system but not registered by default. You can call VTIsHardwareDecodeAvailable to confirm availability of the decoder after calling VTRegisterSupplementalVideoDecoderIfAvailable. Supplemental video decoders registered through this API will not work in applications which have not performed this opt in. For broadest ecosystem compatibility, we encourage use of platform-standard formats such as H.264, HEVC, and AV1.

func VTSessionCopyProperty

func VTSessionCopyProperty(session unsafe.Pointer, propertyKey unsafe.Pointer, allocator unsafe.Pointer, propertyValueOut unsafe.Pointer) int

func VTSessionCopySerializableProperties

func VTSessionCopySerializableProperties(session unsafe.Pointer, allocator unsafe.Pointer, dictionaryOut unsafe.Pointer) int

func VTSessionCopySupportedPropertyDictionary

func VTSessionCopySupportedPropertyDictionary(session unsafe.Pointer, supportedPropertyDictionaryOut unsafe.Pointer) int

func VTSessionSetProperties

func VTSessionSetProperties(session unsafe.Pointer, propertyDictionary unsafe.Pointer) int

func VTSessionSetProperty

func VTSessionSetProperty(session unsafe.Pointer, propertyKey unsafe.Pointer, propertyValue unsafe.Pointer) int

func VTSuperResolutionScalerConfigurationIsSupported

func VTSuperResolutionScalerConfigurationIsSupported() bool

Reports whether the system supports this processor.

func VTSuperResolutionScalerConfigurationSupportedRevisions

func VTSuperResolutionScalerConfigurationSupportedRevisions() *foundation.NSIndexSet

Provides the collection of currently supported algorithms or configuration revisions for the class of configuration. A property you use to introspect at runtime which revisions are available for each configuration.

func VTSuperResolutionScalerConfigurationSupportedScaleFactors

func VTSuperResolutionScalerConfigurationSupportedScaleFactors() *foundation.NSArray[*foundation.NSNumber]

Reports the set of supported scale factors to use when initializing a super-resolution scaler configuration.

func VTTemporalNoiseFilterConfigurationIsSupported

func VTTemporalNoiseFilterConfigurationIsSupported() bool

Reports whether the system supports this processor.

func VTTemporalNoiseFilterConfigurationMaximumDimensions

func VTTemporalNoiseFilterConfigurationMaximumDimensions() coremedia.CMVideoDimensions

The maximum dimensions of a source frame that the processor supports.

func VTTemporalNoiseFilterConfigurationMinimumDimensions

func VTTemporalNoiseFilterConfigurationMinimumDimensions() coremedia.CMVideoDimensions

The minimum dimensions of a source frame that the processor supports.

func VTTemporalNoiseFilterConfigurationSupportedSourcePixelFormats

func VTTemporalNoiseFilterConfigurationSupportedSourcePixelFormats() *foundation.NSArray[*foundation.NSNumber]

List of all supported pixel formats for source frames.

Types

type Acl_entry_id_t

type Acl_entry_id_t int64
const (
	ACL_FIRST_ENTRY Acl_entry_id_t = 0
	ACL_NEXT_ENTRY  Acl_entry_id_t = -1
	ACL_LAST_ENTRY  Acl_entry_id_t = -2
)

func (Acl_entry_id_t) String

func (e Acl_entry_id_t) String() string

type Acl_flag_t

type Acl_flag_t int64
const (
	ACL_FLAG_DEFER_INHERIT      Acl_flag_t = 1
	ACL_FLAG_NO_INHERIT         Acl_flag_t = 131072
	ACL_ENTRY_INHERITED         Acl_flag_t = 16
	ACL_ENTRY_FILE_INHERIT      Acl_flag_t = 32
	ACL_ENTRY_DIRECTORY_INHERIT Acl_flag_t = 64
	ACL_ENTRY_LIMIT_INHERIT     Acl_flag_t = 128
	ACL_ENTRY_ONLY_INHERIT      Acl_flag_t = 256
)

func (Acl_flag_t) String

func (e Acl_flag_t) String() string

type Acl_perm_t

type Acl_perm_t int64
const (
	ACL_READ_DATA           Acl_perm_t = 2
	ACL_LIST_DIRECTORY      Acl_perm_t = 2
	ACL_WRITE_DATA          Acl_perm_t = 4
	ACL_ADD_FILE            Acl_perm_t = 4
	ACL_EXECUTE             Acl_perm_t = 8
	ACL_SEARCH              Acl_perm_t = 8
	ACL_DELETE              Acl_perm_t = 16
	ACL_APPEND_DATA         Acl_perm_t = 32
	ACL_ADD_SUBDIRECTORY    Acl_perm_t = 32
	ACL_DELETE_CHILD        Acl_perm_t = 64
	ACL_READ_ATTRIBUTES     Acl_perm_t = 128
	ACL_WRITE_ATTRIBUTES    Acl_perm_t = 256
	ACL_READ_EXTATTRIBUTES  Acl_perm_t = 512
	ACL_WRITE_EXTATTRIBUTES Acl_perm_t = 1024
	ACL_READ_SECURITY       Acl_perm_t = 2048
	ACL_WRITE_SECURITY      Acl_perm_t = 4096
	ACL_CHANGE_OWNER        Acl_perm_t = 8192
	ACL_SYNCHRONIZE         Acl_perm_t = 1048576
)

func (Acl_perm_t) String

func (e Acl_perm_t) String() string

type Acl_tag_t

type Acl_tag_t int64
const (
	ACL_UNDEFINED_TAG  Acl_tag_t = 0
	ACL_EXTENDED_ALLOW Acl_tag_t = 1
	ACL_EXTENDED_DENY  Acl_tag_t = 2
)

func (Acl_tag_t) String

func (e Acl_tag_t) String() string

type Acl_type_t

type Acl_type_t int64
const (
	ACL_TYPE_EXTENDED Acl_type_t = 256
	ACL_TYPE_ACCESS   Acl_type_t = 0
	ACL_TYPE_DEFAULT  Acl_type_t = 1
	ACL_TYPE_AFS      Acl_type_t = 2
	ACL_TYPE_CODA     Acl_type_t = 3
	ACL_TYPE_NTFS     Acl_type_t = 4
	ACL_TYPE_NWFS     Acl_type_t = 5
)

func (Acl_type_t) String

func (e Acl_type_t) String() string

type CGLCPContextPriorityRequest

type CGLCPContextPriorityRequest int64
const (
	KCGLCPContextPriorityRequestHigh   CGLCPContextPriorityRequest = 0
	KCGLCPContextPriorityRequestNormal CGLCPContextPriorityRequest = 1
	KCGLCPContextPriorityRequestLow    CGLCPContextPriorityRequest = 2
)

func (CGLCPContextPriorityRequest) String

type Clockid_t

type Clockid_t int64

func (Clockid_t) String

func (e Clockid_t) String() string

type Dispatch_autorelease_frequency_t

type Dispatch_autorelease_frequency_t uint64
const (
	DISPATCH_AUTORELEASE_FREQUENCY_INHERIT   Dispatch_autorelease_frequency_t = 0
	DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM Dispatch_autorelease_frequency_t = 1
	DISPATCH_AUTORELEASE_FREQUENCY_NEVER     Dispatch_autorelease_frequency_t = 2
)

func (Dispatch_autorelease_frequency_t) String

type Dispatch_block_flags_t

type Dispatch_block_flags_t uint64
const (
	DISPATCH_BLOCK_BARRIER           Dispatch_block_flags_t = 1
	DISPATCH_BLOCK_DETACHED          Dispatch_block_flags_t = 2
	DISPATCH_BLOCK_ASSIGN_CURRENT    Dispatch_block_flags_t = 4
	DISPATCH_BLOCK_NO_QOS_CLASS      Dispatch_block_flags_t = 8
	DISPATCH_BLOCK_INHERIT_QOS_CLASS Dispatch_block_flags_t = 16
	DISPATCH_BLOCK_ENFORCE_QOS_CLASS Dispatch_block_flags_t = 32
)

func (Dispatch_block_flags_t) String

func (e Dispatch_block_flags_t) String() string

type EvCmd

type EvCmd int64
const (
	EVNOP   EvCmd = 0
	EVHIDE  EvCmd = 1
	EVSHOW  EvCmd = 2
	EVMOVE  EvCmd = 3
	EVLEVEL EvCmd = 4
)

func (EvCmd) String

func (e EvCmd) String() string

type Filesec_property_t

type Filesec_property_t int64
const (
	FILESEC_OWNER         Filesec_property_t = 1
	FILESEC_GROUP         Filesec_property_t = 2
	FILESEC_UUID          Filesec_property_t = 3
	FILESEC_MODE          Filesec_property_t = 4
	FILESEC_ACL           Filesec_property_t = 5
	FILESEC_GRPUUID       Filesec_property_t = 6
	FILESEC_ACL_RAW       Filesec_property_t = 100
	FILESEC_ACL_ALLOCSIZE Filesec_property_t = 101
)

func (Filesec_property_t) String

func (e Filesec_property_t) String() string

type Idtype_t

type Idtype_t int64
const (
	P_ALL  Idtype_t = 0
	P_PID  Idtype_t = 1
	P_PGID Idtype_t = 2
)

func (Idtype_t) String

func (e Idtype_t) String() string

type Ipc_info_object_type_t

type Ipc_info_object_type_t int64
const (
	IPC_OTYPE_NONE                 Ipc_info_object_type_t = 0
	IPC_OTYPE_THREAD_CONTROL       Ipc_info_object_type_t = 1
	IPC_OTYPE_TASK_CONTROL         Ipc_info_object_type_t = 2
	IPC_OTYPE_HOST                 Ipc_info_object_type_t = 3
	IPC_OTYPE_HOST_PRIV            Ipc_info_object_type_t = 4
	IPC_OTYPE_PROCESSOR            Ipc_info_object_type_t = 5
	IPC_OTYPE_PROCESSOR_SET        Ipc_info_object_type_t = 6
	IPC_OTYPE_PROCESSOR_SET_NAME   Ipc_info_object_type_t = 7
	IPC_OTYPE_TIMER                Ipc_info_object_type_t = 8
	IPC_OTYPE_PORT_SUBST_ONCE      Ipc_info_object_type_t = 9
	IPC_OTYPE_MIG                  Ipc_info_object_type_t = 10
	IPC_OTYPE_MEMORY_OBJECT        Ipc_info_object_type_t = 11
	IPC_OTYPE_XMM_PAGER            Ipc_info_object_type_t = 12
	IPC_OTYPE_XMM_KERNEL           Ipc_info_object_type_t = 13
	IPC_OTYPE_XMM_REPLY            Ipc_info_object_type_t = 14
	IPC_OTYPE_UND_REPLY            Ipc_info_object_type_t = 15
	IPC_OTYPE_HOST_NOTIFY          Ipc_info_object_type_t = 16
	IPC_OTYPE_HOST_SECURITY        Ipc_info_object_type_t = 17
	IPC_OTYPE_LEDGER               Ipc_info_object_type_t = 18
	IPC_OTYPE_MAIN_DEVICE          Ipc_info_object_type_t = 19
	IPC_OTYPE_TASK_NAME            Ipc_info_object_type_t = 20
	IPC_OTYPE_SUBSYSTEM            Ipc_info_object_type_t = 21
	IPC_OTYPE_IO_DONE_QUEUE        Ipc_info_object_type_t = 22
	IPC_OTYPE_SEMAPHORE            Ipc_info_object_type_t = 23
	IPC_OTYPE_LOCK_SET             Ipc_info_object_type_t = 24
	IPC_OTYPE_CLOCK                Ipc_info_object_type_t = 25
	IPC_OTYPE_CLOCK_CTRL           Ipc_info_object_type_t = 26
	IPC_OTYPE_IOKIT_IDENT          Ipc_info_object_type_t = 27
	IPC_OTYPE_NAMED_ENTRY          Ipc_info_object_type_t = 28
	IPC_OTYPE_IOKIT_CONNECT        Ipc_info_object_type_t = 29
	IPC_OTYPE_IOKIT_OBJECT         Ipc_info_object_type_t = 30
	IPC_OTYPE_UPL                  Ipc_info_object_type_t = 31
	IPC_OTYPE_MEM_OBJ_CONTROL      Ipc_info_object_type_t = 32
	IPC_OTYPE_AU_SESSIONPORT       Ipc_info_object_type_t = 33
	IPC_OTYPE_FILEPORT             Ipc_info_object_type_t = 34
	IPC_OTYPE_LABELH               Ipc_info_object_type_t = 35
	IPC_OTYPE_TASK_RESUME          Ipc_info_object_type_t = 36
	IPC_OTYPE_VOUCHER              Ipc_info_object_type_t = 37
	IPC_OTYPE_VOUCHER_ATTR_CONTROL Ipc_info_object_type_t = 38
	IPC_OTYPE_WORK_INTERVAL        Ipc_info_object_type_t = 39
	IPC_OTYPE_UX_HANDLER           Ipc_info_object_type_t = 40
	IPC_OTYPE_UEXT_OBJECT          Ipc_info_object_type_t = 41
	IPC_OTYPE_ARCADE_REG           Ipc_info_object_type_t = 42
	IPC_OTYPE_EVENTLINK            Ipc_info_object_type_t = 43
	IPC_OTYPE_TASK_INSPECT         Ipc_info_object_type_t = 44
	IPC_OTYPE_TASK_READ            Ipc_info_object_type_t = 45
	IPC_OTYPE_THREAD_INSPECT       Ipc_info_object_type_t = 46
	IPC_OTYPE_THREAD_READ          Ipc_info_object_type_t = 47
	IPC_OTYPE_SUID_CRED            Ipc_info_object_type_t = 48
	IPC_OTYPE_HYPERVISOR           Ipc_info_object_type_t = 49
	IPC_OTYPE_TASK_ID_TOKEN        Ipc_info_object_type_t = 50
	IPC_OTYPE_TASK_FATAL           Ipc_info_object_type_t = 51
	IPC_OTYPE_KCDATA               Ipc_info_object_type_t = 52
	IPC_OTYPE_EXCLAVES_RESOURCE    Ipc_info_object_type_t = 53
	IPC_OTYPE_THREAD_RESUME        Ipc_info_object_type_t = 54
	IPC_OTYPE_UNKNOWN              Ipc_info_object_type_t = 4294967295
)

func (Ipc_info_object_type_t) String

func (e Ipc_info_object_type_t) String() string

type Launch_data_type_t

type Launch_data_type_t int64
const (
	LAUNCH_DATA_DICTIONARY Launch_data_type_t = 1
	LAUNCH_DATA_ARRAY      Launch_data_type_t = 2
	LAUNCH_DATA_FD         Launch_data_type_t = 3
	LAUNCH_DATA_INTEGER    Launch_data_type_t = 4
	LAUNCH_DATA_REAL       Launch_data_type_t = 5
	LAUNCH_DATA_BOOL       Launch_data_type_t = 6
	LAUNCH_DATA_STRING     Launch_data_type_t = 7
	LAUNCH_DATA_OPAQUE     Launch_data_type_t = 8
	LAUNCH_DATA_ERRNO      Launch_data_type_t = 9
	LAUNCH_DATA_MACHPORT   Launch_data_type_t = 10
)

func (Launch_data_type_t) String

func (e Launch_data_type_t) String() string

type MDLabelDomain

type MDLabelDomain int64

@typedef MDLabelDomain @abstract These constants are used to specify a domain to MDLabelCreate().

const (
	KMDLabelUserDomain  MDLabelDomain = 0
	KMDLabelLocalDomain MDLabelDomain = 1
)

func (MDLabelDomain) String

func (e MDLabelDomain) String() string

type MDQueryOptionFlags

type MDQueryOptionFlags int64
const (
	KMDQuerySynchronous        MDQueryOptionFlags = 1
	KMDQueryWantsUpdates       MDQueryOptionFlags = 4
	KMDQueryAllowFSTranslation MDQueryOptionFlags = 8
)

func (MDQueryOptionFlags) String

func (e MDQueryOptionFlags) String() string

type MDQuerySortOptionFlags

type MDQuerySortOptionFlags int64

@enum MDQuerySortOptionFlags @constant kMDQueryReverseSortOrderFlag Sort the attribute in reverse order.

const (
	KMDQueryReverseSortOrderFlag MDQuerySortOptionFlags = 1
)

func (MDQuerySortOptionFlags) String

func (e MDQuerySortOptionFlags) String() string

type Mach_vm_range_flags_t

type Mach_vm_range_flags_t int64
const (
	MACH_VM_RANGE_NONE Mach_vm_range_flags_t = 0
)

func (Mach_vm_range_flags_t) String

func (e Mach_vm_range_flags_t) String() string

type Mach_vm_range_flavor_t

type Mach_vm_range_flavor_t int64
const (
	MACH_VM_RANGE_FLAVOR_INVALID Mach_vm_range_flavor_t = 0
	MACH_VM_RANGE_FLAVOR_V1      Mach_vm_range_flavor_t = 1
)

func (Mach_vm_range_flavor_t) String

func (e Mach_vm_range_flavor_t) String() string

type Mach_vm_range_tag_t

type Mach_vm_range_tag_t int64
const (
	MACH_VM_RANGE_DEFAULT Mach_vm_range_tag_t = 0
	MACH_VM_RANGE_DATA    Mach_vm_range_tag_t = 1
	MACH_VM_RANGE_FIXED   Mach_vm_range_tag_t = 2
)

func (Mach_vm_range_tag_t) String

func (e Mach_vm_range_tag_t) String() string

type Mpo_flags_t

type Mpo_flags_t int64
const (
	MPO_PORT                            Mpo_flags_t = 0
	MPO_SERVICE_PORT                    Mpo_flags_t = 1024
	MPO_CONNECTION_PORT                 Mpo_flags_t = 2048
	MPO_REPLY_PORT                      Mpo_flags_t = 4096
	MPO_WEAK_REPLY_PORT                 Mpo_flags_t = 16384
	MPO_NOTIFICATION_PORT               Mpo_flags_t = 17408
	MPO_EXCEPTION_PORT                  Mpo_flags_t = 32768
	MPO_CONNECTION_PORT_WITH_PORT_ARRAY Mpo_flags_t = 65536
)

func (Mpo_flags_t) String

func (e Mpo_flags_t) String() string

type NXMouseButton

type NXMouseButton int64
const (
	NX_OneButton   NXMouseButton = 0
	NX_LeftButton  NXMouseButton = 1
	NX_RightButton NXMouseButton = 2
)

func (NXMouseButton) String

func (e NXMouseButton) String() string

type OpaqueVTCompressionSession

type OpaqueVTCompressionSession struct{}

OpaqueVTCompressionSession is an opaque type.

type OpaqueVTDecompressionSession

type OpaqueVTDecompressionSession struct{}

OpaqueVTDecompressionSession is an opaque type.

type OpaqueVTFrameSilo

type OpaqueVTFrameSilo struct{}

OpaqueVTFrameSilo is an opaque type.

type OpaqueVTHDRPerFrameMetadataGenerationSession

type OpaqueVTHDRPerFrameMetadataGenerationSession struct{}

@typedef VTHDRPerFrameMetadataGenerationSessionRef @abstract A mechanism for generating HDR Per Frame Metadata and attaching that metadata to a CVPixelBuffer and the backing IOSurface. @discussion VTHDRPerFrameMetadataGenerationSessionRef is a CF type, so call CFRelease to release your object reference. OpaqueVTHDRPerFrameMetadataGenerationSession is an opaque type.

type OpaqueVTMotionEstimationSession

type OpaqueVTMotionEstimationSession struct{}

A reference to a Video Toolbox motion-estimation session. A motion-estimation session supports two `CVPixelBuffer`s of the same size and type, and returns motion vectors in the form of a “CVPixelBuffer“. The session is a reference-counted CF object. To create a motion-estimation session, call “VTMotionEstimationSessionCreate“; then you can optionally configure the session using `VTSessionSetProperty`. To create motion-estimations, call “VTMotionEstimationSessionCreateMotionEstimation“. When you are done with the session, you should call “VTMotionEstimationSessionInvalidate“ to tear it down and “CFRelease“ to release the session object reference. OpaqueVTMotionEstimationSession is an opaque type.

type OpaqueVTMultiPassStorage

type OpaqueVTMultiPassStorage struct{}

@typedef VTMultiPassStorageRef @abstract A mechanism for storing information for each frame of a multi-pass compression session. @discussion VTMultiPassStorageRef is a CF type, so call CFRelease and CFRetain to manage objects of this type. The data stored in the VTMultiPassStorage is private to the video encoder. OpaqueVTMultiPassStorage is an opaque type.

type OpaqueVTPixelRotationSession

type OpaqueVTPixelRotationSession struct{}

OpaqueVTPixelRotationSession is an opaque type.

type OpaqueVTPixelTransferSession

type OpaqueVTPixelTransferSession struct{}

OpaqueVTPixelTransferSession is an opaque type.

type OpaqueVTRAWProcessingSession

type OpaqueVTRAWProcessingSession struct{}

@typedef VTRAWProcessingSessionRef @abstract A reference to a Video Toolbox RAW Processing Session. @discussion A RAW processing session supports processing of frames that have been output from decoders in camera native formats, for example RAW or bayer formats. The session reference is a reference-counted CF object. OpaqueVTRAWProcessingSession is an opaque type.

type Os_clockid_t

type Os_clockid_t int64
const (
	OS_CLOCK_MACH_ABSOLUTE_TIME Os_clockid_t = 32
)

func (Os_clockid_t) String

func (e Os_clockid_t) String() string

type PMPageToPaperMappingType

type PMPageToPaperMappingType int64
const (
	KPMPageToPaperMappingNone       PMPageToPaperMappingType = 1
	KPMPageToPaperMappingScaleToFit PMPageToPaperMappingType = 2
)

func (PMPageToPaperMappingType) String

func (e PMPageToPaperMappingType) String() string

type Ptrauth_key

type Ptrauth_key int64
const (
	Ptrauth_key_none                     Ptrauth_key = -1
	Ptrauth_key_asia                     Ptrauth_key = 0
	Ptrauth_key_asib                     Ptrauth_key = 1
	Ptrauth_key_asda                     Ptrauth_key = 2
	Ptrauth_key_asdb                     Ptrauth_key = 3
	Ptrauth_key_process_independent_code Ptrauth_key = 0
	Ptrauth_key_process_dependent_code   Ptrauth_key = 1
	Ptrauth_key_process_independent_data Ptrauth_key = 2
	Ptrauth_key_process_dependent_data   Ptrauth_key = 3
	Ptrauth_key_return_address           Ptrauth_key = 1
	Ptrauth_key_frame_pointer            Ptrauth_key = 3
	Ptrauth_key_function_pointer         Ptrauth_key = 0
	Ptrauth_key_block_function           Ptrauth_key = 0
	Ptrauth_key_cxx_vtable_pointer       Ptrauth_key = 2
	Ptrauth_key_method_list_pointer      Ptrauth_key = 2
	Ptrauth_key_objc_isa_pointer         Ptrauth_key = 2
	Ptrauth_key_objc_super_pointer       Ptrauth_key = 2
	Ptrauth_key_objc_sel_pointer         Ptrauth_key = 3
	Ptrauth_key_objc_class_ro_pointer    Ptrauth_key = 2
	Ptrauth_key_block_descriptor_pointer Ptrauth_key = 2
	Ptrauth_key_init_fini_pointer        Ptrauth_key = 0
)

func (Ptrauth_key) String

func (e Ptrauth_key) String() string

type Qos_class_t

type Qos_class_t uint32
const (
	QOS_CLASS_USER_INTERACTIVE Qos_class_t = 33
	QOS_CLASS_USER_INITIATED   Qos_class_t = 25
	QOS_CLASS_DEFAULT          Qos_class_t = 21
	QOS_CLASS_UTILITY          Qos_class_t = 17
	QOS_CLASS_BACKGROUND       Qos_class_t = 9
	QOS_CLASS_UNSPECIFIED      Qos_class_t = 0
)

func (Qos_class_t) String

func (e Qos_class_t) String() string

type VTCompressionSessionOptionFlags

type VTCompressionSessionOptionFlags int64
const (
	KVTCompressionSessionBeginFinalPass VTCompressionSessionOptionFlags = 1
)

func (VTCompressionSessionOptionFlags) String

type VTDecodeFrameFlags

type VTDecodeFrameFlags int64
const (
	KVTDecodeFrame_EnableAsynchronousDecompression VTDecodeFrameFlags = 1
	KVTDecodeFrame_DoNotOutputFrame                VTDecodeFrameFlags = 2
	KVTDecodeFrame_1xRealTimePlayback              VTDecodeFrameFlags = 4
	KVTDecodeFrame_EnableTemporalProcessing        VTDecodeFrameFlags = 8
)

func (VTDecodeFrameFlags) String

func (e VTDecodeFrameFlags) String() string

type VTDecodeInfoFlags

type VTDecodeInfoFlags int64
const (
	KVTDecodeInfo_Asynchronous               VTDecodeInfoFlags = 1
	KVTDecodeInfo_FrameDropped               VTDecodeInfoFlags = 2
	KVTDecodeInfo_ImageBufferModifiable      VTDecodeInfoFlags = 4
	KVTDecodeInfo_SkippedLeadingFrameDropped VTDecodeInfoFlags = 8
	KVTDecodeInfo_FrameInterrupted           VTDecodeInfoFlags = 16
)

func (VTDecodeInfoFlags) String

func (e VTDecodeInfoFlags) String() string

type VTDecompressionOutputCallbackRecord

type VTDecompressionOutputCallbackRecord struct {
	DecompressionOutputCallback unsafe.Pointer
	DecompressionOutputRefCon   unsafe.Pointer
}

type VTEncodeInfoFlags

type VTEncodeInfoFlags int64
const (
	KVTEncodeInfo_Asynchronous VTEncodeInfoFlags = 1
	KVTEncodeInfo_FrameDropped VTEncodeInfoFlags = 2
)

func (VTEncodeInfoFlags) String

func (e VTEncodeInfoFlags) String() string

type VTFrameProcessor

type VTFrameProcessor struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtframeprocessor

func VTFrameProcessorFromID

func VTFrameProcessorFromID(id objc.ID) *VTFrameProcessor

func (*VTFrameProcessor) EndSession

func (o *VTFrameProcessor) EndSession()

Performs all necessary tasks to end the session. After this call completes, you can process no new frames unless you call “startSessionWithConfiguration“ again.

func (*VTFrameProcessor) Init

Create a new instance of the frame processor.

func (*VTFrameProcessor) ProcessWithCommandBufferParameters

func (o *VTFrameProcessor) ProcessWithCommandBufferParameters(commandBuffer metal.MTLCommandBuffer, parameters VTFrameProcessorParameters)

Performs effects in a Metal command buffer. This function allows you to add the effect to an existing Metal command buffer. The clients that have an existing Metal pipeline and want to add this effect to it can use this function. > Note: this function waits until all previously inserted tasks in the command buffer finish before running. Tasks inserted after the `processWithCommandBuffer` returns are run by the system after the effect is applied. Processing does not happen until the commandBuffer is executed. - Parameters: - commandBuffer: An existing Metal command buffer where the frame processing is inserted. - parameters: A `VTFrameProcessorParameters` based object to specify additional frame based parameters to use during processing. It needs to match the configuration type used during start session.

func (*VTFrameProcessor) ProcessWithParametersCompletionHandler

func (o *VTFrameProcessor) ProcessWithParametersCompletionHandler(parameters VTFrameProcessorParameters, completionHandler func(objc.ID, unsafe.Pointer))

Asynchronously performs the processor effects. - Parameters: - parameters: A `VTFrameProcessorParameters` based object to specify additional frame based parameters to use during processing. It needs to match the configuration type used during start session. - completionHandler: This completion handler is called when frame processing is completed. The completion handler receives the same parameters object that you provided to the original call, as well as an `NSError` which contains an error code if processing was not successful.

func (*VTFrameProcessor) ProcessWithParametersError

func (o *VTFrameProcessor) ProcessWithParametersError(parameters VTFrameProcessorParameters) (bool, error)

Synchronously performs the processor effects. Use the respective “VTFrameProcessorParameters“ to pass frame level settings and frame level input/output parameters for the effect that you configured this session for by calling “startSessionWithConfiguration:error“. - Parameters: - parameters: A `VTFrameProcessorParameters` based object to specify additional frame based parameters to use during processing. It needs to match the configuration type used during start session. - error: Contains error information if any. You may specify NULL for this parameter if you do not want the error information.

func (*VTFrameProcessor) ProcessWithParametersFrameOutputHandler

func (o *VTFrameProcessor) ProcessWithParametersFrameOutputHandler(parameters VTFrameProcessorParameters, frameOutputHandler objc.Block)

Asynchronously performs the processor effects and outputs each frame separately. Use with frame processor configurations which allow multiple output frames from a single processing call, such as frame rate conversion processor cases when you need access to output frames as they become available, rather than waiting for all output frames to be complete. This interface is suitable for low-latency scenarios when a call would generate multiple output frames, but waiting for all frames to be generated before beginning to use the frames is not ideal. Because the processor may use the output frames as references for frames still being generated, the output frames are strictly read-only. If you want to modify the frames, you must create a copy first. - Parameters: - parameters: A `VTFrameProcessorParameters` based object to specify additional frame based parameters to use during processing. It needs to match the configuration type used during start session. - frameOutputHandler: This frame output handler is called once for each destination frame in the provided parameters if no errors are encountered. The output handler receives the same parameters object that you provided to the original call, a flag indicating if this is the final output to be called for this processing request, and the presentation timestamp associated with the `VTFrameProcessorFrame` that it is being called for. The `NSError` parameter contains an error code if processing was not successful.

func (*VTFrameProcessor) StartSessionWithConfigurationError

func (o *VTFrameProcessor) StartSessionWithConfigurationError(configuration VTFrameProcessorConfiguration) (bool, error)

Starts a new session and configures the processor pipeline for an effect. - Parameters: - configuration: The system uses this parameter to create an effect pipeline for processing frames. This object must conform to the “VTFrameProcessorConfiguration“ interface. - error: Contains error information if any. You may specify NULL for this parameter if you do not want the error information.

type VTFrameProcessorConfiguration

type VTFrameProcessorConfiguration interface {
	IsSupported() bool
	FrameSupportedPixelFormats() *foundation.NSArray[*foundation.NSNumber]
	SourcePixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]
	DestinationPixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]
}

VTFrameProcessorConfiguration wraps the ObjC protocol VTFrameProcessorConfiguration.

type VTFrameProcessorError

type VTFrameProcessorError int64
const (
	// Returned if the processor failed for unknown reason.
	VTFrameProcessorUnknownError VTFrameProcessorError = -19730
	// Returned if the processor failed due to an unsupported resolution.
	VTFrameProcessorUnsupportedResolution VTFrameProcessorError = -19731
	// Returned if the session is used to process frames without being started.
	VTFrameProcessorSessionNotStarted VTFrameProcessorError = -19732
	// Returned if a `startSessionWithConfiguration` call is made on a session which has already been started.
	VTFrameProcessorSessionAlreadyActive VTFrameProcessorError = -19733
	// Returned if a fatal error is encoutnered during processing.
	VTFrameProcessorFatalError VTFrameProcessorError = -19734
	// Returned if processing failed and current session should be stopped.
	VTFrameProcessorSessionLevelError VTFrameProcessorError = -19735
	// Returned if the session failed to initialize the processing pipeline.
	VTFrameProcessorInitializationFailed VTFrameProcessorError = -19736
	// Returned to indicate that one or more frames is in a format which is not supproted by the processor.
	VTFrameProcessorUnsupportedInput VTFrameProcessorError = -19737
	// Returned if the session or processor is unable to allocate required memory.
	VTFrameProcessorMemoryAllocationFailure VTFrameProcessorError = -19738
	// Returned if the specifed revision is not supported by the configured processor.
	VTFrameProcessorRevisionNotSupported VTFrameProcessorError = -19739
	// Returned if the processor encountered an issue preventing it from processing the provided frame.
	VTFrameProcessorProcessingError VTFrameProcessorError = -19740
	// Returned if one of the provided parameters is not valid.
	VTFrameProcessorInvalidParameterError VTFrameProcessorError = -19741
	// Returned if one of the provided `VTFrameProcessorFrame` objects has a presentation time which is not supported by the processor, either invalid or out-of-order.
	VTFrameProcessorInvalidFrameTiming VTFrameProcessorError = -19742
	// Returned if download of a required model asset for the processor failed
	VTFrameProcessorAssetDownloadFailed VTFrameProcessorError = -19743
)

func (VTFrameProcessorError) String

func (e VTFrameProcessorError) String() string

type VTFrameProcessorFrame

type VTFrameProcessorFrame struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtframeprocessorframe

func VTFrameProcessorFrameFromID

func VTFrameProcessorFrameFromID(id objc.ID) *VTFrameProcessorFrame

func (*VTFrameProcessorFrame) Buffer

func (o *VTFrameProcessorFrame) Buffer() unsafe.Pointer

Pixel buffer that you provided when you initialized the object.

func (*VTFrameProcessorFrame) InitWithBufferPresentationTimeStamp

func (o *VTFrameProcessorFrame) InitWithBufferPresentationTimeStamp(buffer unsafe.Pointer, presentationTimeStamp coremedia.CMTime) *VTFrameProcessorFrame

Creates a new instance of frame with a pixel buffer and presentation timestamp. The `CVPixelBuffer` is retained in this object. Returns `nil` if the “CVPixelBuffer“ you provided is NULL or the “CVPixelBuffer“ is not backed by “IOSurface“. - Parameters: - buffer: The “CVPixelBuffer“ that this frame wraps; it must not be `nil` and must be “IOSurface“ backed. - presentationTimeStamp: The presentation timestamp of the buffer.

func (*VTFrameProcessorFrame) PresentationTimeStamp

func (o *VTFrameProcessorFrame) PresentationTimeStamp() coremedia.CMTime

Presentation timestamp that you provided when you initialized the object.

type VTFrameProcessorOpticalFlow

type VTFrameProcessorOpticalFlow struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtframeprocessoropticalflow

func VTFrameProcessorOpticalFlowFromID

func VTFrameProcessorOpticalFlowFromID(id objc.ID) *VTFrameProcessorOpticalFlow

func (*VTFrameProcessorOpticalFlow) BackwardFlow

func (o *VTFrameProcessorOpticalFlow) BackwardFlow() unsafe.Pointer

Returns the backward optical flow `CVPixelBuffer` that you provided when you initialized the object.

func (*VTFrameProcessorOpticalFlow) ForwardFlow

func (o *VTFrameProcessorOpticalFlow) ForwardFlow() unsafe.Pointer

Returns the forward optical flow `CVPixelBuffer` that you provided when you initialized the object.

func (*VTFrameProcessorOpticalFlow) InitWithForwardFlowBackwardFlow

func (o *VTFrameProcessorOpticalFlow) InitWithForwardFlowBackwardFlow(forwardFlow unsafe.Pointer, backwardFlow unsafe.Pointer) *VTFrameProcessorOpticalFlow

Creates a new instance of forward and backward optical flow with pixel buffers. Create a new instance with forward and backward optical flow “CVPixelBuffer“s. Instances retain the pixel buffers you provide to this method. Returns `nil` if either `CVPixelBuffer` is NULL or the `CVPixelBuffer`s are not `IOSurface` backed. - Parameters: - forwardFlow: `CVPixelBuffer` that contains forward optical flow; it must not be `nil` and must be `IOSurface` backed. - backwardFlow: `CVPixelBuffer` that contains backward optical flow; it must not be `nil` and must be `IOSurface` backed.

type VTFrameProcessorParameters

type VTFrameProcessorParameters interface {
	SourceFrame() *VTFrameProcessorFrame
}

VTFrameProcessorParameters wraps the ObjC protocol VTFrameProcessorParameters.

type VTFrameRateConversionConfiguration

type VTFrameRateConversionConfiguration struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtframerateconversionconfiguration

func VTFrameRateConversionConfigurationFromID

func VTFrameRateConversionConfigurationFromID(id objc.ID) *VTFrameRateConversionConfiguration

func (*VTFrameRateConversionConfiguration) DestinationPixelBufferAttributes

func (o *VTFrameRateConversionConfiguration) DestinationPixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent destination frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTFrameRateConversionConfiguration) FrameHeight

func (o *VTFrameRateConversionConfiguration) FrameHeight() int

Height of source frame in pixels.

func (*VTFrameRateConversionConfiguration) FrameSupportedPixelFormats

func (o *VTFrameRateConversionConfiguration) FrameSupportedPixelFormats() *foundation.NSArray[*foundation.NSNumber]

Supported pixel formats available for source frames for current configuration.

func (*VTFrameRateConversionConfiguration) FrameWidth

func (o *VTFrameRateConversionConfiguration) FrameWidth() int

Width of source frame in pixels.

func (*VTFrameRateConversionConfiguration) InitWithFrameWidthFrameHeightUsePrecomputedFlowQualityPrioritizationRevision

func (o *VTFrameRateConversionConfiguration) InitWithFrameWidthFrameHeightUsePrecomputedFlowQualityPrioritizationRevision(frameWidth int, frameHeight int, usePrecomputedFlow bool, qualityPrioritization VTFrameRateConversionConfigurationQualityPrioritization, revision VTFrameRateConversionConfigurationRevision) *VTFrameRateConversionConfiguration

Creates a new frame-rate conversion configuration. Returns `nil` if dimensions are out of range or revision is unsupported. - Parameters: - frameWidth: Width of source frame in pixels; the maximum value is 8192 for macOS, and 4096 for iOS. - frameHeight: Height of source frame in pixels; the maximum value is 4320 for macOS, and 2160 for iOS. - usePrecomputedFlow: A Boolean value that indicates whether you are providing Optical Flow. If false, optical flow is computed on the fly. - qualityPrioritization: A level you use to prioritize quality or performance; for more information about supported levels, see “VTFrameRateConversionConfigurationQualityPrioritization“. - revision: The specific algorithm or configuration revision you use to perform the request.

func (*VTFrameRateConversionConfiguration) QualityPrioritization

A parameter you use to control quality and performance levels. For more information about supported levels, see “VTFrameRateConversionConfigurationQualityPrioritization“.

func (*VTFrameRateConversionConfiguration) Revision

The specific algorithm or configuration revision you use to perform the request.

func (*VTFrameRateConversionConfiguration) SourcePixelBufferAttributes

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent source frames and reference frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTFrameRateConversionConfiguration) UsePrecomputedFlow

func (o *VTFrameRateConversionConfiguration) UsePrecomputedFlow() bool

Indicates that caller provides optical flow.

type VTFrameRateConversionConfigurationQualityPrioritization

type VTFrameRateConversionConfigurationQualityPrioritization int64
const (
	VTFrameRateConversionConfigurationQualityPrioritizationNormal  VTFrameRateConversionConfigurationQualityPrioritization = 1
	VTFrameRateConversionConfigurationQualityPrioritizationQuality VTFrameRateConversionConfigurationQualityPrioritization = 2
)

func (VTFrameRateConversionConfigurationQualityPrioritization) String

type VTFrameRateConversionConfigurationRevision

type VTFrameRateConversionConfigurationRevision int64
const (
	VTFrameRateConversionConfigurationRevision1 VTFrameRateConversionConfigurationRevision = 1
)

func VTFrameRateConversionConfigurationDefaultRevision

func VTFrameRateConversionConfigurationDefaultRevision() VTFrameRateConversionConfigurationRevision

Provides the default revision of a specific algorithm or configuration.

func (VTFrameRateConversionConfigurationRevision) String

type VTFrameRateConversionParameters

type VTFrameRateConversionParameters struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtframerateconversionparameters

func VTFrameRateConversionParametersFromID

func VTFrameRateConversionParametersFromID(id objc.ID) *VTFrameRateConversionParameters

func (*VTFrameRateConversionParameters) DestinationFrames

Caller-allocated array of video frame objects that contain pixel buffers to receive the results. Must contain the same number of elements as `interpolationPhase` NSArray.

func (*VTFrameRateConversionParameters) InitWithSourceFrameNextFrameOpticalFlowInterpolationPhaseSubmissionModeDestinationFrames

func (o *VTFrameRateConversionParameters) InitWithSourceFrameNextFrameOpticalFlowInterpolationPhaseSubmissionModeDestinationFrames(sourceFrame *VTFrameProcessorFrame, nextFrame *VTFrameProcessorFrame, opticalFlow *VTFrameProcessorOpticalFlow, interpolationPhase *foundation.NSArray[*foundation.NSNumber], submissionMode VTFrameRateConversionParametersSubmissionMode, destinationFrame *foundation.NSArray[*VTFrameProcessorFrame]) *VTFrameRateConversionParameters

Creates new frame rate conversion parameters. Returns `nil` if `sourceFrame` or `nextFrame` is `nil`, if `sourceFrame` and reference frames don't have the same pixel format, or if `interpolationPhase` array count does not match `destinationFrames` array count. - Parameters: - sourceFrame: Current source frame; must be non `nil`. - nextFrame: Next source frame in presentation time order; must be non `nil`. - opticalFlow: Optional “VTFrameProcessorOpticalFlow“ object that contains forward and backward optical flow with next frame. You only need to use this if the optical flow is pre-computed. For the first frame this is always `nil`. - interpolationPhase: Array of float numbers that indicate intervals at which the processor inserts a frame between current and next frame. The array size indicates how many frames to interpolate and this size must match `destinationFrames` size, with one interval for each destination frame. Use float number values between 0 and 1, for example, to insert one frame in the middle use a value of 0.5. - submissionMode: Provides a hint to let the processor know whether you are submitting frames in presentation sequence. For more information about supported modes see “VTFrameRateConversionParametersSubmissionMode“. - destinationFrames: Caller-allocated array of “VTFrameProcessorFrame“ that contains pixel buffers to receive the results. Must contain the same number of elements as `interpolationPhase`.

func (*VTFrameRateConversionParameters) InterpolationPhase

Array of float numbers that indicate intervals at which the processor inserts a frame between the current and next frame. Array size indicates how many frames to interpolate and must match `destinationFrames` size, one interval for each destination frame. Use float number values between 0 and 1, for example, to insert one frame in the middle use a value of 0.5.

func (*VTFrameRateConversionParameters) NextFrame

The next source frame in presentation time order, which is `nil` for the last frame.

func (*VTFrameRateConversionParameters) OpticalFlow

An optional object that contains forward and backward optical flow with next frame. Only needed if optical flow is pre-computed. For the last frame this is `nil`.

func (*VTFrameRateConversionParameters) SourceFrame

Current source frame, which must be non `nil`.

func (*VTFrameRateConversionParameters) SubmissionMode

Ordering of the input frames in this submission relative to the previous submission.

type VTFrameRateConversionParametersSubmissionMode

type VTFrameRateConversionParametersSubmissionMode int64
const (
	// You are submitting frames in non-sequential order.
	VTFrameRateConversionParametersSubmissionModeRandom VTFrameRateConversionParametersSubmissionMode = 1
	// You are submitting frames sequentially following presentation time order.
	VTFrameRateConversionParametersSubmissionModeSequential VTFrameRateConversionParametersSubmissionMode = 2
	// You are submitting frames sequentially. This processing request uses the same source and next reference frames as the previous submission.
	VTFrameRateConversionParametersSubmissionModeSequentialReferencesUnchanged VTFrameRateConversionParametersSubmissionMode = 3
)

func (VTFrameRateConversionParametersSubmissionMode) String

type VTInt32Point

type VTInt32Point struct {
	X int32
	Y int32
}

type VTInt32Size

type VTInt32Size struct {
	Width  int32
	Height int32
}

type VTLowLatencyFrameInterpolationConfiguration

type VTLowLatencyFrameInterpolationConfiguration struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtlowlatencyframeinterpolationconfiguration

func VTLowLatencyFrameInterpolationConfigurationFromID

func VTLowLatencyFrameInterpolationConfigurationFromID(id objc.ID) *VTLowLatencyFrameInterpolationConfiguration

func (*VTLowLatencyFrameInterpolationConfiguration) DestinationPixelBufferAttributes

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent destination frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTLowLatencyFrameInterpolationConfiguration) FrameHeight

Height of source frames in pixels.

func (*VTLowLatencyFrameInterpolationConfiguration) FrameSupportedPixelFormats

Available supported pixel formats for current configuration.

func (*VTLowLatencyFrameInterpolationConfiguration) FrameWidth

Width of source frames in pixels.

func (*VTLowLatencyFrameInterpolationConfiguration) InitWithFrameWidthFrameHeightNumberOfInterpolatedFrames

func (o *VTLowLatencyFrameInterpolationConfiguration) InitWithFrameWidthFrameHeightNumberOfInterpolatedFrames(frameWidth int, frameHeight int, numberOfInterpolatedFrames int) *VTLowLatencyFrameInterpolationConfiguration

Creates a new low-latency frame interpolation configuration for frame-rate conversion. The available interpolation points are the equal to the value of (2^x - 1), where x is equal to `numberOfInterpolatedFrames`. For example, - If you request 1 interpolated frame, 1 interpolation point at 0.5 is available. - If you request 2 interpolated frames, 3 interpolation points at 0.25, 0.5 and 0.75 are available. You don't need to use all available interpolation points. Setting a higher `numberOfInterpolatedFrames` increases the resolution of interpolation in some cases, but also increases latency. - Parameters: - frameWidth: Width of source frame in pixels. - frameHeight: Height of source frame in pixels. - numberOfInterpolatedFrames: The number of uniformly spaced frames that you want to be used for interpolation.

func (*VTLowLatencyFrameInterpolationConfiguration) InitWithFrameWidthFrameHeightSpatialScaleFactor

func (o *VTLowLatencyFrameInterpolationConfiguration) InitWithFrameWidthFrameHeightSpatialScaleFactor(frameWidth int, frameHeight int, spatialScaleFactor int) *VTLowLatencyFrameInterpolationConfiguration

Creates a new low-latency frame interpolation configuration for spatial scaling and temporal scaling. When you configure the processor for spatial scaling, the low-latency frame interpolation processor only supports 2x spatial upscaling and a single frame of temporal interpolation at a 0.5 interpolation phase. - Parameters: - frameWidth: Width of source frame in pixels. - frameHeight: Height of source frame in pixels. - spatialScaleFactor: The requested spatial scale factor as an integer. Currently, the processor supports only 2x spatial scaling.

func (*VTLowLatencyFrameInterpolationConfiguration) NumberOfInterpolatedFrames

func (o *VTLowLatencyFrameInterpolationConfiguration) NumberOfInterpolatedFrames() int

Number of uniformly spaced frames for which you configured the processor.

func (*VTLowLatencyFrameInterpolationConfiguration) SourcePixelBufferAttributes

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent source frames and reference frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTLowLatencyFrameInterpolationConfiguration) SpatialScaleFactor

func (o *VTLowLatencyFrameInterpolationConfiguration) SpatialScaleFactor() int

Configured spatial scale factor as an integer.

type VTLowLatencyFrameInterpolationParameters

type VTLowLatencyFrameInterpolationParameters struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtlowlatencyframeinterpolationparameters

func VTLowLatencyFrameInterpolationParametersFromID

func VTLowLatencyFrameInterpolationParametersFromID(id objc.ID) *VTLowLatencyFrameInterpolationParameters

func (*VTLowLatencyFrameInterpolationParameters) DestinationFrames

Array of destination frames that you provided when creating the low-latency frame interpolation parameters object.

func (*VTLowLatencyFrameInterpolationParameters) InitWithSourceFramePreviousFrameInterpolationPhaseDestinationFrames

func (o *VTLowLatencyFrameInterpolationParameters) InitWithSourceFramePreviousFrameInterpolationPhaseDestinationFrames(sourceFrame *VTFrameProcessorFrame, previousFrame *VTFrameProcessorFrame, interpolationPhase *foundation.NSArray[*foundation.NSNumber], destinationFrames *foundation.NSArray[*VTFrameProcessorFrame]) *VTLowLatencyFrameInterpolationParameters

Creates a new low-latency frame interpolation parameters object. - Parameters: - sourceFrame: Current frame to use for interpolation; must be non `nil`. - previousFrame: Previous frame used for interpolation; must be non `nil`. - interpolationPhase: Array of float numbers that indicate interpolation phase locations at which the processor interpolates the frames. Must be greater than 0 and less than 1.0; for example 0.5 is midway between the previous frame and the source frame. If you enable spatial scaling, the only supported interpolation phase is 0.5. - destinationFrames: Caller-allocated array of `VTFrameProcessorFrame` to receive the interpolated frames. This must have the same number of elements as the the `interpolationPhase`. If you enable spatial scaling, it must also contain an element to hold the scaled version of sourceFrame.

func (*VTLowLatencyFrameInterpolationParameters) InterpolationPhase

Array of interpolation phases that you provided when creating the low-latency frame interpolation parameters object.

func (*VTLowLatencyFrameInterpolationParameters) PreviousFrame

Previous frame that you provided when creating the low-latency frame interpolation parameters object.

func (*VTLowLatencyFrameInterpolationParameters) SourceFrame

Source frame that you provided when creating the low-latency frame interpolation parameters object.

type VTLowLatencySuperResolutionScalerConfiguration

type VTLowLatencySuperResolutionScalerConfiguration struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtlowlatencysuperresolutionscalerconfiguration

func VTLowLatencySuperResolutionScalerConfigurationFromID

func VTLowLatencySuperResolutionScalerConfigurationFromID(id objc.ID) *VTLowLatencySuperResolutionScalerConfiguration

func (*VTLowLatencySuperResolutionScalerConfiguration) DestinationPixelBufferAttributes

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent destination frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTLowLatencySuperResolutionScalerConfiguration) FrameHeight

Height of source frame in pixels.

func (*VTLowLatencySuperResolutionScalerConfiguration) FrameSupportedPixelFormats

Available supported pixel formats for source frames for current configuration.

func (*VTLowLatencySuperResolutionScalerConfiguration) FrameWidth

Width of source frame in pixels.

func (*VTLowLatencySuperResolutionScalerConfiguration) InitWithFrameWidthFrameHeightScaleFactor

func (o *VTLowLatencySuperResolutionScalerConfiguration) InitWithFrameWidthFrameHeightScaleFactor(frameWidth int, frameHeight int, scaleFactor float32) *VTLowLatencySuperResolutionScalerConfiguration

Creates a new low-latency super-resolution scaler configuration with specified frame width and height. - Parameters: - frameWidth: Width of source frame in pixels. - frameHeight: Height of source frame in pixels. - scaleFactor: The scale factor to apply. This must be a supported value that “supportedScaleFactorsForFrameWidth:frameHeight:“ returns.

func (*VTLowLatencySuperResolutionScalerConfiguration) ScaleFactor

Scale factor with which you initialized the configuration.

func (*VTLowLatencySuperResolutionScalerConfiguration) SourcePixelBufferAttributes

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent source frames and reference frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

type VTLowLatencySuperResolutionScalerParameters

type VTLowLatencySuperResolutionScalerParameters struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtlowlatencysuperresolutionscalerparameters

func VTLowLatencySuperResolutionScalerParametersFromID

func VTLowLatencySuperResolutionScalerParametersFromID(id objc.ID) *VTLowLatencySuperResolutionScalerParameters

func (*VTLowLatencySuperResolutionScalerParameters) DestinationFrame

Destination frame that contains user-allocated pixel buffer that receives the scaled processor output.

func (*VTLowLatencySuperResolutionScalerParameters) InitWithSourceFrameDestinationFrame

Creates a new low-latency, super-resolution scaler parameters object. - Parameters: - sourceFrame: Current source frame; must be non `nil`. - destinationFrame: User-allocated pixel buffer that receives the scaled processor output; must be non `nil`.

func (*VTLowLatencySuperResolutionScalerParameters) SourceFrame

Current source frame, which must be non `nil`.

type VTMotionBlurConfiguration

type VTMotionBlurConfiguration struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtmotionblurconfiguration

func VTMotionBlurConfigurationFromID

func VTMotionBlurConfigurationFromID(id objc.ID) *VTMotionBlurConfiguration

func (*VTMotionBlurConfiguration) DestinationPixelBufferAttributes

func (o *VTMotionBlurConfiguration) DestinationPixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent destination frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTMotionBlurConfiguration) FrameHeight

func (o *VTMotionBlurConfiguration) FrameHeight() int

Height of source frame in pixels.

func (*VTMotionBlurConfiguration) FrameSupportedPixelFormats

func (o *VTMotionBlurConfiguration) FrameSupportedPixelFormats() *foundation.NSArray[*foundation.NSNumber]

Available supported pixel formats for source frames for current configuration.

func (*VTMotionBlurConfiguration) FrameWidth

func (o *VTMotionBlurConfiguration) FrameWidth() int

Width of source frame in pixels.

func (*VTMotionBlurConfiguration) InitWithFrameWidthFrameHeightUsePrecomputedFlowQualityPrioritizationRevision

func (o *VTMotionBlurConfiguration) InitWithFrameWidthFrameHeightUsePrecomputedFlowQualityPrioritizationRevision(frameWidth int, frameHeight int, usePrecomputedFlow bool, qualityPrioritization VTMotionBlurConfigurationQualityPrioritization, revision VTMotionBlurConfigurationRevision) *VTMotionBlurConfiguration

Creates a new motion blur configuration. Returns `nil` if dimensions are out of range or revision is unsupported. - Parameters: - frameWidth: Width of source frame in pixels; the maximum value is 8192 for macOS, and 4096 for iOS. - frameHeight: Height of source frame in pixels; the maximum value is 4320 for macOS, and 2160 for iOS. - usePrecomputedFlow: Boolean value that indicates whether you will provide optical flow; if false, this configuration computes the optical flow on the fly. - qualityPrioritization: A level you use to prioritize quality or performance; for more information about supported levels, see “VTMotionBlurConfigurationQualityPrioritization“. - revision: The specific algorithm or configuration revision you use to perform the request.

func (*VTMotionBlurConfiguration) QualityPrioritization

A parameter you use to control quality and performance levels. For more information about supported levels, see “VTMotionBlurConfigurationQualityPrioritization“.

func (*VTMotionBlurConfiguration) Revision

The specific algorithm or configuration revision you use to perform the request.

func (*VTMotionBlurConfiguration) SourcePixelBufferAttributes

func (o *VTMotionBlurConfiguration) SourcePixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent source frames and reference frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTMotionBlurConfiguration) UsePrecomputedFlow

func (o *VTMotionBlurConfiguration) UsePrecomputedFlow() bool

Indicates that you provide optical flow.

type VTMotionBlurConfigurationQualityPrioritization

type VTMotionBlurConfigurationQualityPrioritization int64
const (
	VTMotionBlurConfigurationQualityPrioritizationNormal  VTMotionBlurConfigurationQualityPrioritization = 1
	VTMotionBlurConfigurationQualityPrioritizationQuality VTMotionBlurConfigurationQualityPrioritization = 2
)

func (VTMotionBlurConfigurationQualityPrioritization) String

type VTMotionBlurConfigurationRevision

type VTMotionBlurConfigurationRevision int64
const (
	VTMotionBlurConfigurationRevision1 VTMotionBlurConfigurationRevision = 1
)

func VTMotionBlurConfigurationDefaultRevision

func VTMotionBlurConfigurationDefaultRevision() VTMotionBlurConfigurationRevision

Provides the default revision of a specific algorithm or configuration.

func (VTMotionBlurConfigurationRevision) String

type VTMotionBlurParameters

type VTMotionBlurParameters struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtmotionblurparameters

func VTMotionBlurParametersFromID

func VTMotionBlurParametersFromID(id objc.ID) *VTMotionBlurParameters

func (*VTMotionBlurParameters) DestinationFrame

func (o *VTMotionBlurParameters) DestinationFrame() *VTFrameProcessorFrame

Destination frame that contains user-allocated pixel buffer that receive a frame with motion blur applied by the processor.

func (*VTMotionBlurParameters) InitWithSourceFrameNextFramePreviousFrameNextOpticalFlowPreviousOpticalFlowMotionBlurStrengthSubmissionModeDestinationFrame

func (o *VTMotionBlurParameters) InitWithSourceFrameNextFramePreviousFrameNextOpticalFlowPreviousOpticalFlowMotionBlurStrengthSubmissionModeDestinationFrame(sourceFrame *VTFrameProcessorFrame, nextFrame *VTFrameProcessorFrame, previousFrame *VTFrameProcessorFrame, nextOpticalFlow *VTFrameProcessorOpticalFlow, previousOpticalFlow *VTFrameProcessorOpticalFlow, motionBlurStrength int, submissionMode VTMotionBlurParametersSubmissionMode, destinationFrame *VTFrameProcessorFrame) *VTMotionBlurParameters

Creates a new motion blur parameters object. Returns `nil` if `sourceFrame` or `destinationFrame` is `nil`, `sourceFrame` and reference frames are different pixel formats, or `motionBlurStrength` is out of range. - Parameters: - sourceFrame: Current source frame; must be non `nil`. - nextFrame: Next source frame in presentation time order; for the last frame you can set this to `nil`. - previousFrame: Previous source frame in presentation time order; for the first frame you can set this to `nil`. - nextOpticalFlow: Optional `VTFrameProcessorOpticalFlow` object that contains forward and backward optical flow with `nextFrame`. You only need this object if optical flow is pre-computed. For the last frame this is always `nil`. - previousOpticalFlow: Optional VTFrameProcessorOpticalFlow object that contains forward and backward optical flow with `previousFrame`. You only need to use this if the optical flow is pre-computed. For the first frame this is always `nil`. - motionBlurStrength: Number that indicates the strength of blur applied by the processor. Range is from 1 to 100. Default value is 50. - submissionMode: Provides a hint to let the processor know whether you are submitting frames in presenatation sequence. For more information about supported modes see “VTMotionBlurParametersSubmissionMode“. - destinationFrame: User-allocated pixel buffer that receives a frame with motion blur applied by the processor.

func (*VTMotionBlurParameters) MotionBlurStrength

func (o *VTMotionBlurParameters) MotionBlurStrength() int

Number that indicates the strength of motion blur. The range is from 1 to 100; the default value is 50.

func (*VTMotionBlurParameters) NextFrame

The next source frame in presentation time order, which is `nil` for the last frame.

func (*VTMotionBlurParameters) NextOpticalFlow

Optional frame processor optical flow object that contains forward and backward optical flow with next frame. You only need to use this object if the optical flow is pre-computed. For the last frame this is `nil`.

func (*VTMotionBlurParameters) PreviousFrame

func (o *VTMotionBlurParameters) PreviousFrame() *VTFrameProcessorFrame

Previous source frame in presentation time order, which is `nil` for the first frame.

func (*VTMotionBlurParameters) PreviousOpticalFlow

func (o *VTMotionBlurParameters) PreviousOpticalFlow() *VTFrameProcessorOpticalFlow

Optional frame processor optical flow object that contains forward and backward optical flow with previous frame. You only need to use this object if the optical flow is pre-computed. For the first frame this is `nil`.

func (*VTMotionBlurParameters) SourceFrame

Current source frame, which must be non `nil`.

func (*VTMotionBlurParameters) SubmissionMode

Ordering of the input frames this submission related to the previous submission.

type VTMotionBlurParametersSubmissionMode

type VTMotionBlurParametersSubmissionMode int64
const (
	VTMotionBlurParametersSubmissionModeRandom     VTMotionBlurParametersSubmissionMode = 1
	VTMotionBlurParametersSubmissionModeSequential VTMotionBlurParametersSubmissionMode = 2
)

func (VTMotionBlurParametersSubmissionMode) String

type VTMotionEstimationFrameFlags

type VTMotionEstimationFrameFlags int64
const (
	// A hint to the motion-estimation session that you are going to reuse the `currentBuffer` as `referenceBuffer` in the next call to “VTMotionEstimationSessionEstimateMotionVectors“. Using this flag allows the motion-estimation processor to deliver better performance.
	KVTMotionEstimationFrameFlags_CurrentBufferWillBeNextReferenceBuffer VTMotionEstimationFrameFlags = 1
)

func (VTMotionEstimationFrameFlags) String

type VTMotionEstimationInfoFlags

type VTMotionEstimationInfoFlags int64
const (
	KVTMotionEstimationInfoFlags_Reserved0 VTMotionEstimationInfoFlags = 1
)

func (VTMotionEstimationInfoFlags) String

type VTOpticalFlowConfiguration

type VTOpticalFlowConfiguration struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtopticalflowconfiguration

func VTOpticalFlowConfigurationFromID

func VTOpticalFlowConfigurationFromID(id objc.ID) *VTOpticalFlowConfiguration

func (*VTOpticalFlowConfiguration) DestinationPixelBufferAttributes

func (o *VTOpticalFlowConfiguration) DestinationPixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent destination frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTOpticalFlowConfiguration) FrameHeight

func (o *VTOpticalFlowConfiguration) FrameHeight() int

Height of source frame in pixels.

func (*VTOpticalFlowConfiguration) FrameSupportedPixelFormats

func (o *VTOpticalFlowConfiguration) FrameSupportedPixelFormats() *foundation.NSArray[*foundation.NSNumber]

Supported pixel formats for source frames for current configuration.

func (*VTOpticalFlowConfiguration) FrameWidth

func (o *VTOpticalFlowConfiguration) FrameWidth() int

Width of source frame in pixels.

func (*VTOpticalFlowConfiguration) InitWithFrameWidthFrameHeightQualityPrioritizationRevision

func (o *VTOpticalFlowConfiguration) InitWithFrameWidthFrameHeightQualityPrioritizationRevision(frameWidth int, frameHeight int, qualityPrioritization VTOpticalFlowConfigurationQualityPrioritization, revision VTOpticalFlowConfigurationRevision) *VTOpticalFlowConfiguration

Creates a new optical flow configuration. Returns “nil“ if dimensions are out of range or revision is unsupported. - Parameters: - frameWidth: Width of source frame in pixels; the maximum value is 8192 for macOS, and 4096 for iOS. - frameHeight: Height of source frame in pixels; the maximum value is 4320 for macOS, and 2160 for iOS. - qualityPrioritization: A level you use to prioritize quality or performance; for more information about supported levels, see “VTOpticalFlowConfigurationQualityPrioritization“. - revision: The specific algorithm or configuration revision you use to perform the request.

func (*VTOpticalFlowConfiguration) QualityPrioritization

A parameter you use to control quality and performance levels. For more information about supported levels, see “VTOpticalFlowConfigurationQualityPrioritization“.

func (*VTOpticalFlowConfiguration) Revision

The specific algorithm or configuration revision you use to perform the request.

func (*VTOpticalFlowConfiguration) SourcePixelBufferAttributes

func (o *VTOpticalFlowConfiguration) SourcePixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent source frames and reference frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

type VTOpticalFlowConfigurationQualityPrioritization

type VTOpticalFlowConfigurationQualityPrioritization int64
const (
	VTOpticalFlowConfigurationQualityPrioritizationNormal  VTOpticalFlowConfigurationQualityPrioritization = 1
	VTOpticalFlowConfigurationQualityPrioritizationQuality VTOpticalFlowConfigurationQualityPrioritization = 2
)

func (VTOpticalFlowConfigurationQualityPrioritization) String

type VTOpticalFlowConfigurationRevision

type VTOpticalFlowConfigurationRevision int64
const (
	VTOpticalFlowConfigurationRevision1 VTOpticalFlowConfigurationRevision = 1
)

func VTOpticalFlowConfigurationDefaultRevision

func VTOpticalFlowConfigurationDefaultRevision() VTOpticalFlowConfigurationRevision

Provides the default revision of a specific algorithm or configuration.

func (VTOpticalFlowConfigurationRevision) String

type VTOpticalFlowParameters

type VTOpticalFlowParameters struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtopticalflowparameters

func VTOpticalFlowParametersFromID

func VTOpticalFlowParametersFromID(id objc.ID) *VTOpticalFlowParameters

func (*VTOpticalFlowParameters) DestinationOpticalFlow

func (o *VTOpticalFlowParameters) DestinationOpticalFlow() *VTFrameProcessorOpticalFlow

Output optical flow calculated by the processor.

func (*VTOpticalFlowParameters) InitWithSourceFrameNextFrameSubmissionModeDestinationOpticalFlow

func (o *VTOpticalFlowParameters) InitWithSourceFrameNextFrameSubmissionModeDestinationOpticalFlow(sourceFrame *VTFrameProcessorFrame, nextFrame *VTFrameProcessorFrame, submissionMode VTOpticalFlowParametersSubmissionMode, destinationOpticalFlow *VTFrameProcessorOpticalFlow) *VTOpticalFlowParameters

Creates a new optical flow parameters object. Returns `nil` if `sourceFrame` or `nextFrame` is `nil`, or if `sourceFrame` and `nextFrame` have different pixel formats. - Parameters: - sourceFrame: Current source frame; must be non `nil`. - nextFrame: Next source frame in presentation time order. - submissionMode: Provides a hint to let the processor know whether you are submitting frames in presentation sequence. For more information about supported modes see “VTOpticalFlowParametersSubmissionMode“. - destinationOpticalFlow: User allocated `VTFrameProcessorOpticalFlow` that receives the results.

func (*VTOpticalFlowParameters) NextFrame

The next source frame in presentation time order.

func (*VTOpticalFlowParameters) SourceFrame

Current source frame, which must be non `nil`.

func (*VTOpticalFlowParameters) SubmissionMode

Ordering of the input frames in this submission relative to the previous submission.

type VTOpticalFlowParametersSubmissionMode

type VTOpticalFlowParametersSubmissionMode int64
const (
	VTOpticalFlowParametersSubmissionModeRandom     VTOpticalFlowParametersSubmissionMode = 1
	VTOpticalFlowParametersSubmissionModeSequential VTOpticalFlowParametersSubmissionMode = 2
)

func (VTOpticalFlowParametersSubmissionMode) String

type VTSuperResolutionScalerConfiguration

type VTSuperResolutionScalerConfiguration struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtsuperresolutionscalerconfiguration

func VTSuperResolutionScalerConfigurationFromID

func VTSuperResolutionScalerConfigurationFromID(id objc.ID) *VTSuperResolutionScalerConfiguration

func (*VTSuperResolutionScalerConfiguration) ConfigurationModelPercentageAvailable

func (o *VTSuperResolutionScalerConfiguration) ConfigurationModelPercentageAvailable() float32

Returns a floating point value between 0.0 and 1.0 indicating the percentage of required model assets that have been downloaded.

func (*VTSuperResolutionScalerConfiguration) ConfigurationModelStatus

Reports the download status of models that the system needs for the current configuration.

func (*VTSuperResolutionScalerConfiguration) DestinationPixelBufferAttributes

func (o *VTSuperResolutionScalerConfiguration) DestinationPixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent destination frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTSuperResolutionScalerConfiguration) DownloadConfigurationModelWithCompletionHandler

func (o *VTSuperResolutionScalerConfiguration) DownloadConfigurationModelWithCompletionHandler(completionHandler func(unsafe.Pointer))

Downloads models that the system needs for the current configuration. This method downloads model assets required for the current configuration in background. You should call this method if “configurationModelStatus“ is “VTSuperResolutionScalerConfigurationModelStatusDownloadRequired“. After this method is called, you can query “configurationModelPercentageAvailable“ to determine progress of model asset download process. If the download fails, the completion handler is invoked with an `NSError`, and the “configurationModelStatus“ goes back to “VTSuperResolutionScalerConfigurationModelStatusDownloadRequired“. If the download succeeds, the completion handler is invoked with `nil` NSError.

func (*VTSuperResolutionScalerConfiguration) FrameHeight

func (o *VTSuperResolutionScalerConfiguration) FrameHeight() int

Height of source frame in pixels.

func (*VTSuperResolutionScalerConfiguration) FrameSupportedPixelFormats

func (o *VTSuperResolutionScalerConfiguration) FrameSupportedPixelFormats() *foundation.NSArray[*foundation.NSNumber]

Available supported pixel formats for source frames for current configuration.

func (*VTSuperResolutionScalerConfiguration) FrameWidth

func (o *VTSuperResolutionScalerConfiguration) FrameWidth() int

Width of source frame in pixels.

func (*VTSuperResolutionScalerConfiguration) InitWithFrameWidthFrameHeightScaleFactorInputTypeUsePrecomputedFlowQualityPrioritizationRevision

func (o *VTSuperResolutionScalerConfiguration) InitWithFrameWidthFrameHeightScaleFactorInputTypeUsePrecomputedFlowQualityPrioritizationRevision(frameWidth int, frameHeight int, scaleFactor int, inputType VTSuperResolutionScalerConfigurationInputType, usePrecomputedFlow bool, qualityPrioritization VTSuperResolutionScalerConfigurationQualityPrioritization, revision VTSuperResolutionScalerConfigurationRevision) *VTSuperResolutionScalerConfiguration

Creates a new super-resolution scaler processor configuration. This processor increases resolution of an image or video. Returns `nil` if dimensions are out of range or revision is unsupported. - Parameters: - frameWidth: Width of source frame in pixels. With “VTSuperResolutionScalerConfigurationInputTypeVideo“, maximum width is 1920 on macOS and 1440 on iOS. With “VTSuperResolutionScalerConfigurationInputTypeImage“, maximum width is 1920. - frameHeight: Height of source frame in pixels. With “VTSuperResolutionScalerConfigurationInputTypeVideo“, maximum height is 1080. With “VTSuperResolutionScalerConfigurationInputTypeImage“, maximum height is 1920 on macOS and 1080 on iOS. - scaleFactor: Indicates the scale factor between input and output. - inputType: Indicates the type of input, either video or image. - usePrecomputedFlow: Boolean value to indicate that you provide optical flow; if false, this configuration computes the optical flow on the fly. - qualityPrioritization: A level you use to prioritize quality or performance; for more information about supported levels, see “VTSuperResolutionScalerConfigurationQualityPrioritization“. - revision: The specific algorithm or configuration revision you use to perform the request.

func (*VTSuperResolutionScalerConfiguration) InputType

Indicates the type of input.

func (*VTSuperResolutionScalerConfiguration) QualityPrioritization

A parameter to control quality and performance levels. For more information about supported levels, see “VTSuperResolutionScalerConfigurationQualityPrioritization“.

func (*VTSuperResolutionScalerConfiguration) Revision

The specific algorithm or configuration revision you use to perform the request.

func (*VTSuperResolutionScalerConfiguration) ScaleFactor

func (o *VTSuperResolutionScalerConfiguration) ScaleFactor() int

Indicates the scale factor between input and output.

func (*VTSuperResolutionScalerConfiguration) SourcePixelBufferAttributes

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent source frames and reference frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTSuperResolutionScalerConfiguration) UsesPrecomputedFlow

func (o *VTSuperResolutionScalerConfiguration) UsesPrecomputedFlow() bool

Indicates that you provide optical flow.

type VTSuperResolutionScalerConfigurationInputType

type VTSuperResolutionScalerConfigurationInputType int64
const (
	VTSuperResolutionScalerConfigurationInputTypeVideo VTSuperResolutionScalerConfigurationInputType = 1
	VTSuperResolutionScalerConfigurationInputTypeImage VTSuperResolutionScalerConfigurationInputType = 2
)

func (VTSuperResolutionScalerConfigurationInputType) String

type VTSuperResolutionScalerConfigurationModelStatus

type VTSuperResolutionScalerConfigurationModelStatus int64
const (
	VTSuperResolutionScalerConfigurationModelStatusDownloadRequired VTSuperResolutionScalerConfigurationModelStatus = 0
	VTSuperResolutionScalerConfigurationModelStatusDownloading      VTSuperResolutionScalerConfigurationModelStatus = 1
	VTSuperResolutionScalerConfigurationModelStatusReady            VTSuperResolutionScalerConfigurationModelStatus = 2
)

func (VTSuperResolutionScalerConfigurationModelStatus) String

type VTSuperResolutionScalerConfigurationQualityPrioritization

type VTSuperResolutionScalerConfigurationQualityPrioritization int64
const (
	VTSuperResolutionScalerConfigurationQualityPrioritizationNormal VTSuperResolutionScalerConfigurationQualityPrioritization = 1
)

func (VTSuperResolutionScalerConfigurationQualityPrioritization) String

type VTSuperResolutionScalerConfigurationRevision

type VTSuperResolutionScalerConfigurationRevision int64
const (
	VTSuperResolutionScalerConfigurationRevision1 VTSuperResolutionScalerConfigurationRevision = 1
)

func VTSuperResolutionScalerConfigurationDefaultRevision

func VTSuperResolutionScalerConfigurationDefaultRevision() VTSuperResolutionScalerConfigurationRevision

Provides the default revision of a specific algorithm or configuration.

func (VTSuperResolutionScalerConfigurationRevision) String

type VTSuperResolutionScalerParameters

type VTSuperResolutionScalerParameters struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vtsuperresolutionscalerparameters

func VTSuperResolutionScalerParametersFromID

func VTSuperResolutionScalerParametersFromID(id objc.ID) *VTSuperResolutionScalerParameters

func (*VTSuperResolutionScalerParameters) DestinationFrame

Destination frame that contains user-allocated pixel buffer that receives the results.

func (*VTSuperResolutionScalerParameters) InitWithSourceFramePreviousFramePreviousOutputFrameOpticalFlowSubmissionModeDestinationFrame

func (o *VTSuperResolutionScalerParameters) InitWithSourceFramePreviousFramePreviousOutputFrameOpticalFlowSubmissionModeDestinationFrame(sourceFrame *VTFrameProcessorFrame, previousFrame *VTFrameProcessorFrame, previousOutputFrame *VTFrameProcessorFrame, opticalFlow *VTFrameProcessorOpticalFlow, submissionMode VTSuperResolutionScalerParametersSubmissionMode, destinationFrame *VTFrameProcessorFrame) *VTSuperResolutionScalerParameters

Creates a new super-resolution scaler parameters instance. Returns `nil` if `sourceFrame` or `destinationFrame` is `nil`, or if `sourceFrame` and reference frames have different pixel formats. - Parameters: - sourceFrame: Current source frame; must be non `nil`. - previousFrame: The previous source frame in presentation time order. For the first frame you can set this to `nil`. - previousOutputFrame: The previous output frame in presentation time order. For the first frame you can set this to `nil`. - opticalFlow: Optional `VTFrameProcessorOpticalFlow` object that contains forward and backward optical flow between the `sourceFrame` and `previousFrame`. You only need this if optical flow is pre-computed. - submissionMode: Provides a hint to let the processor know whether you are submitting frames in presentation sequence. For more information about supported modes see “VTSuperResolutionScalerParametersSubmissionMode“. - destinationFrame: User-allocated pixel buffer that receives the results.

func (*VTSuperResolutionScalerParameters) OpticalFlow

Optional object that contains forward and backward optical flow with the previous frame. You only need this if optical flow is pre-computed. For the first frame this is `nil`.

func (*VTSuperResolutionScalerParameters) PreviousFrame

Previous source frame in presentation time order, which is `nil` for the first frame.

func (*VTSuperResolutionScalerParameters) PreviousOutputFrame

func (o *VTSuperResolutionScalerParameters) PreviousOutputFrame() *VTFrameProcessorFrame

Previous output frame in presentation time order, which is `nil` for the first frame.

func (*VTSuperResolutionScalerParameters) SourceFrame

Current source frame, which must be non `nil`.

func (*VTSuperResolutionScalerParameters) SubmissionMode

Ordering of the input frames in this submission relative to the previous submission.

type VTSuperResolutionScalerParametersSubmissionMode

type VTSuperResolutionScalerParametersSubmissionMode int64
const (
	VTSuperResolutionScalerParametersSubmissionModeRandom     VTSuperResolutionScalerParametersSubmissionMode = 1
	VTSuperResolutionScalerParametersSubmissionModeSequential VTSuperResolutionScalerParametersSubmissionMode = 2
)

func (VTSuperResolutionScalerParametersSubmissionMode) String

type VTTemporalNoiseFilterConfiguration

type VTTemporalNoiseFilterConfiguration struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vttemporalnoisefilterconfiguration

func VTTemporalNoiseFilterConfigurationFromID

func VTTemporalNoiseFilterConfigurationFromID(id objc.ID) *VTTemporalNoiseFilterConfiguration

func (*VTTemporalNoiseFilterConfiguration) DestinationPixelBufferAttributes

func (o *VTTemporalNoiseFilterConfiguration) DestinationPixelBufferAttributes() *foundation.NSDictionary[*foundation.NSString, objc.ID]

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent destination frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

func (*VTTemporalNoiseFilterConfiguration) FrameHeight

func (o *VTTemporalNoiseFilterConfiguration) FrameHeight() int

Height of source frame in pixels.

func (*VTTemporalNoiseFilterConfiguration) FrameSupportedPixelFormats

func (o *VTTemporalNoiseFilterConfiguration) FrameSupportedPixelFormats() *foundation.NSArray[*foundation.NSNumber]

Supported pixel formats for source frames for current configuration.

func (*VTTemporalNoiseFilterConfiguration) FrameWidth

func (o *VTTemporalNoiseFilterConfiguration) FrameWidth() int

Width of source frame in pixels.

func (*VTTemporalNoiseFilterConfiguration) InitWithFrameWidthFrameHeightSourcePixelFormat

func (o *VTTemporalNoiseFilterConfiguration) InitWithFrameWidthFrameHeightSourcePixelFormat(frameWidth int, frameHeight int, sourcePixelFormat uint) *VTTemporalNoiseFilterConfiguration

Creates a new temporal noise-processor configuration. Returns nil if frameWidth, frameHeight, or sourcePixelFormat is unsupported. - Parameters: - frameWidth: Width of source frame in pixels. - frameHeight: Height of source frame in pixels.

func (*VTTemporalNoiseFilterConfiguration) NextFrameCount

func (o *VTTemporalNoiseFilterConfiguration) NextFrameCount() int

Maximum number of future reference frames that the processor can use to process a source frame.

func (*VTTemporalNoiseFilterConfiguration) PreviousFrameCount

func (o *VTTemporalNoiseFilterConfiguration) PreviousFrameCount() int

Maximum number of past reference frames that the processor can use to process a source frame.

func (*VTTemporalNoiseFilterConfiguration) SourcePixelBufferAttributes

Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent source frames and reference frames. Use “CVPixelBufferCreateResolvedAttributesDictionary“ to combine this dictionary with your pixel buffer attributes dictionary.

type VTTemporalNoiseFilterParameters

type VTTemporalNoiseFilterParameters struct {
	foundation.NSObject
}

Apple documentation: https://developer.apple.com/documentation/videotoolbox/vttemporalnoisefilterparameters

func VTTemporalNoiseFilterParametersFromID

func VTTemporalNoiseFilterParametersFromID(id objc.ID) *VTTemporalNoiseFilterParameters

func (*VTTemporalNoiseFilterParameters) DestinationFrame

Destination frame that contains a user-allocated pixel buffer that receives the output frame.

func (*VTTemporalNoiseFilterParameters) FilterStrength

func (o *VTTemporalNoiseFilterParameters) FilterStrength() float32

A parameter to control the strength of noise-filtering. The value can range from the minimum strength of 0.0 to the maximum strength of 1.0. Change in filter strength causes the processor to flush all frames in the queue prior to processing the source frame.

func (*VTTemporalNoiseFilterParameters) HasDiscontinuity

func (o *VTTemporalNoiseFilterParameters) HasDiscontinuity() bool

A Boolean that indicates sequence discontinuity, forcing the processor to reset prior to processing the source frame.

func (*VTTemporalNoiseFilterParameters) InitWithSourceFrameNextFramesPreviousFramesDestinationFrameFilterStrengthHasDiscontinuity

func (o *VTTemporalNoiseFilterParameters) InitWithSourceFrameNextFramesPreviousFramesDestinationFrameFilterStrengthHasDiscontinuity(sourceFrame *VTFrameProcessorFrame, nextFrames *foundation.NSArray[*VTFrameProcessorFrame], previousFrames *foundation.NSArray[*VTFrameProcessorFrame], destinationFrame *VTFrameProcessorFrame, filterStrength float32, hasDiscontinuity uint8) *VTTemporalNoiseFilterParameters

Creates a new `VTTemporalNoiseFilterParameters` object. - Parameters: - sourceFrame: Current source frame; must be non `nil`. - nextFrames: Future reference frames in presentation time order to use for processing the source frame. The number of frames can vary from 0 to the number specified by “VTTemporalNoiseFilterConfiguration/nextFrameCount“ property. - previousFrames: Past reference frames in presentation time order to use for processing the source frame. The number of frames can vary from 0 to the number specified by “VTTemporalNoiseFilterConfiguration/previousFrameCount“ property. - destinationFrame: User-allocated pixel buffer that receives the output frame. The pixel format of `destinationFrame` must match with that of the `sourceFrame`. - filterStrength: Strength of the noise-filtering to use. The value can range from the minimum strength of 0.0 to the maximum strength of 1.0. Change in filter strength causes the processor to flush all frames in the queue prior to processing the source frame. - hasDiscontinuity: Marks sequence discontinuity, forcing the processor to reset prior to processing the source frame.

func (*VTTemporalNoiseFilterParameters) NextFrames

Future reference frames in presentation time order that you use to process the source frame. The number of frames can vary from 0 to the number specified by the `nextFrameCount` property in `VTTemporalNoiseFilterConfiguration`.

func (*VTTemporalNoiseFilterParameters) PreviousFrames

Past reference frames in presentation time order that you use to process the source frame. The number of frames can vary from 0 to the number specified by the `previousFrameCount` property in `VTTemporalNoiseFilterConfiguration`.

func (*VTTemporalNoiseFilterParameters) SetFilterStrength

func (o *VTTemporalNoiseFilterParameters) SetFilterStrength(filterStrength float32)

func (*VTTemporalNoiseFilterParameters) SetHasDiscontinuity

func (o *VTTemporalNoiseFilterParameters) SetHasDiscontinuity(hasDiscontinuity bool)

func (*VTTemporalNoiseFilterParameters) SourceFrame

Current source frame; must be non `nil`.

type Virtual_memory_guard_exception_code_t

type Virtual_memory_guard_exception_code_t int64
const (
	KGUARD_EXC_DEALLOC_GAP                   Virtual_memory_guard_exception_code_t = 1
	KGUARD_EXC_RECLAIM_COPYIO_FAILURE        Virtual_memory_guard_exception_code_t = 2
	KGUARD_EXC_RECLAIM_INDEX_FAILURE         Virtual_memory_guard_exception_code_t = 4
	KGUARD_EXC_RECLAIM_DEALLOCATE_FAILURE    Virtual_memory_guard_exception_code_t = 8
	KGUARD_EXC_RECLAIM_ACCOUNTING_FAILURE    Virtual_memory_guard_exception_code_t = 9
	KGUARD_EXC_SEC_IOPL_ON_EXEC_PAGE         Virtual_memory_guard_exception_code_t = 10
	KGUARD_EXC_SEC_EXEC_ON_IOPL_PAGE         Virtual_memory_guard_exception_code_t = 11
	KGUARD_EXC_SEC_UPL_WRITE_ON_EXEC_REGION  Virtual_memory_guard_exception_code_t = 12
	KGUARD_EXC_LARGE_ALLOCATION_TELEMETRY    Virtual_memory_guard_exception_code_t = 13
	KGUARD_EXC_SEC_ACCESS_FAULT              Virtual_memory_guard_exception_code_t = 98
	KGUARD_EXC_SEC_ASYNC_ACCESS_FAULT        Virtual_memory_guard_exception_code_t = 99
	KGUARD_EXC_SEC_COPY_DENIED               Virtual_memory_guard_exception_code_t = 100
	KGUARD_EXC_SEC_SHARING_DENIED            Virtual_memory_guard_exception_code_t = 101
	KGUARD_EXC_MTE_SYNC_FAULT                Virtual_memory_guard_exception_code_t = 200
	KGUARD_EXC_MTE_ASYNC_USER_FAULT          Virtual_memory_guard_exception_code_t = 201
	KGUARD_EXC_MTE_ASYNC_KERN_FAULT          Virtual_memory_guard_exception_code_t = 202
	KGUARD_EXC_GUARD_OBJECT_ASYNC_USER_FAULT Virtual_memory_guard_exception_code_t = 203
	KGUARD_EXC_GUARD_OBJECT_ASYNC_KERN_FAULT Virtual_memory_guard_exception_code_t = 204
)

func (Virtual_memory_guard_exception_code_t) String

type Xpc_listener_create_flags_t

type Xpc_listener_create_flags_t int64
const (
	XPC_LISTENER_CREATE_NONE             Xpc_listener_create_flags_t = 0
	XPC_LISTENER_CREATE_INACTIVE         Xpc_listener_create_flags_t = 1
	XPC_LISTENER_CREATE_FORCE_MACH       Xpc_listener_create_flags_t = 2
	XPC_LISTENER_CREATE_FORCE_XPCSERVICE Xpc_listener_create_flags_t = 4
)

func (Xpc_listener_create_flags_t) String

type Xpc_session_create_flags_t

type Xpc_session_create_flags_t int64
const (
	XPC_SESSION_CREATE_NONE            Xpc_session_create_flags_t = 0
	XPC_SESSION_CREATE_INACTIVE        Xpc_session_create_flags_t = 1
	XPC_SESSION_CREATE_MACH_PRIVILEGED Xpc_session_create_flags_t = 2
)

func (Xpc_session_create_flags_t) String

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL