What's New / Graphics & Metal

What's new in CoreVideo

+88 New−2 RemovediOS · macOS · tvOS · watchOS

CoreVideo manages video frames and image buffers on Apple platforms, including pixel buffers, buffer pools, and the metadata (attachments) carried on those buffers.

This release adds 88 APIs, mostly a typed attachment system. New types include CVAttachmentContainer, CVAttachmentAccess, CVAttachmentRawValue, CVAttachmentKeyDefinition (with CVAttachmentKeyDefinitionWithDefault and CVAttachmentCompositeKeyDefinition), the CVAttachmentKeyDefinitions, CVAttachmentModePreference, and CVAttachmentValueRepresentable protocols, the CVAttachmentModePreferenceShouldPropagate and ShouldNotPropagate cases, CVImageBufferAttachmentKeyDefinitions, and CVImageAlphaChannelMode. Two symbols were removed, COREVIDEO_USE_IOSURFACEREF and COREVIDEO_INCLUDED_IOSURFACE_HEADER_FILE. No deprecations.

New

88
extension

Array

NewiOSmacOStvOSwatchOS
extension Array : CVAttachmentValueRepresentable where Element : CVAttachmentValueRepresentable
Declaration
extension Array : CVAttachmentValueRepresentable where Element : CVAttachmentValueRepresentable {

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> [Element]?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }
}
extension

Bool

NewiOSmacOStvOSwatchOS
extension Bool : CVAttachmentValueRepresentable
Declaration
extension Bool : CVAttachmentValueRepresentable {
}
extension

CGColorSpace

NewiOSmacOStvOSwatchOS
extension CGColorSpace : CVAttachmentValueRepresentable
Declaration
extension CGColorSpace : CVAttachmentValueRepresentable {
}
extension

CGFloat

NewiOSmacOStvOSwatchOS
extension CGFloat : CVAttachmentValueRepresentable
Declaration
extension CGFloat : CVAttachmentValueRepresentable {
}
extension

CGRect

NewiOSmacOStvOSwatchOS
extension CGRect : CVAttachmentValueRepresentable
Declaration
extension CGRect : CVAttachmentValueRepresentable {

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> CGRect?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }
}
extension

CGSize

NewiOSmacOStvOSwatchOS
extension CGSize : CVAttachmentValueRepresentable
Declaration
extension CGSize : CVAttachmentValueRepresentable {

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> CGSize?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }
}
struct

CVAttachmentAccess

NewiOSmacOStvOSwatchOS
public struct CVAttachmentAccess<Keys> : ~Escapable, ~Copyable where Keys : CVAttachmentKeyDefinitions

Provides access to the attachments of a buffer.

Lifetime of an instance of this type is tied to the lifetime of the buffer carrying attachments. The properties of this object are dynamically resolved to the static properties of the Keys type.

For example, when custom attachment keys are defined as follows:

extension CVImageBufferAttachmentKeyDefinitions {
	static var imageBufferName: Key<ShouldPropagate, String> {
		"com.app.imageBufferName"
	}
}
extension CVPixelBufferAttachmentKeyDefinitions {
	static var pixelBufferNumber: Key<ShouldPropagate, Int> {
		"com.app.pixelBufferNumber"
	}
}

Both keys can be accessed as a property of an CVAttachmentAccess instance. As CVImageBufferAttachmentKeyDefinitions is the superclass of CVPixelBufferAttachmentKeyDefinitions.

func inspect(attachments: borrowing CVAttachmentAccess<CVPixelBufferAttachmentKeyDefinitions>) {
	let value1: String? = attachments.imageBufferName
	let value2: Int? = attachments.pixelBufferNumber
}

It is also possible to access the keys by directly specifying raw string value:

let num: Int? = pixelBuffer.attachments["com.app.pixelBufferNumber"]
pixelBuffer.attachments["com.app.pixelBufferNumber"] = (100, .shouldPropagate)

// To set an attachment value by ignoring the preferred mode requires using rawValue of the key
pixelBuffer.attachments[CVPixelBufferAttachmentKeyDefinitions.displayDimensions.rawValue] = (CGSize(width: 600, height: 400), .shouldNotPropagate)
Declaration
@dynamicMemberLookup public struct CVAttachmentAccess<Keys> : ~Escapable, ~Copyable where Keys : CVAttachmentKeyDefinitions {

    /// Get or set attachment value as a property of this object.
    ///
    /// This subscript provides access to an attachment key as a property. The key to be accessed must be defined as a
    /// static property on the ``Keys`` type.
    ///
    /// ```swift
    /// extension CVPixelBufferAttachmentKeyDefinitions {
    /// 	static var pixelBufferNumber: Key<ShouldPropagate, Int> {
    /// 		"com.app.pixelBufferNumber"
    /// 	}
    /// }
    ///
    /// func inspect(attachments: borrowing CVAttachmentAccess<CVPixelBufferAttachmentKeyDefinitions>) {
    /// 	let value: Int? = attachments.pixelBufferNumber
    /// }
    /// ```
    public subscript<ModePreference, Value>(dynamicMember keyPath: KeyPath<Keys.Type, CVAttachmentKeyDefinition<ModePreference, Value>>) -> Value? where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable

    /// Get or set attachment value as a property of this object with default value.
    ///
    /// This subscript provides access to an attachment key as a property. The key to be accessed must be defined as a
    /// static property on the ``Keys`` type.
    ///
    /// ```swift
    /// extension CVPixelBufferAttachmentKeyDefinitions {
    /// 	static var isSpecialPicture: KeyWithDefault<ShouldPropagate, Bool> {
    /// 		.init("com.app.isSpecialPicture", default: false)
    /// 	}
    /// }
    ///
    /// func inspect(attachments: borrowing CVAttachmentAccess<CVPixelBufferAttachmentKeyDefinitions>) {
    /// 	if attachments.isSpecialPicture {
    /// 		...
    /// 	}
    /// }
    /// ```
    public subscript<ModePreference, Value>(dynamicMember keyPath: KeyPath<Keys.Type, CVAttachmentKeyDefinitionWithDefault<ModePreference, Value>>) -> Value where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable, Value : Equatable, Value : Sendable

    /// Get or set composite attachment value as a property of this object.
    ///
    /// This subscript provides access to an attachment key as a property. The key to be accessed must be defined as a
    /// static property on the ``Keys`` type. This accessor is intended to be used with legacy keys which are not grouped
    /// together in a single container. For new keys, use ``CVAttachmentKeyDefinitions/Key`` instead of using a composite
    /// key group.
    ///
    /// ```swift
    /// enum MyImageTag: CVAttachmentValueRepresentable {
    /// 	case int(Int)
    /// 	case string(String)
    ///
    /// 	static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> Self? {
    /// 		guard let kind: String = repr["com.app.MyImageTag.Kind"] else { return nil }
    /// 		switch kind {
    /// 		case "int":
    /// 			guard let value: Int = repr["com.app.MyImageTag.Value"] else { return nil }
    /// 			return .int(value)
    /// 		case "str":
    /// 			guard let value: String = repr["com.app.MyImageTag.Value"] else { return nil }
    /// 			return .string(value)
    /// 		default:
    /// 			return nil
    /// 		}
    /// 	}
    ///
    /// 	var rawAttachmentValueRepresentation: CVAttachmentRawValue {
    /// 		switch self {
    /// 		case .int(let value):
    /// 			[
    /// 				"com.app.MyImageTag.Kind": "int",
    /// 				"com.app.MyImageTag.Value": value,
    /// 			]
    /// 		case .string(let value):
    /// 			[
    /// 				"com.app.MyImageTag.Kind": "str",
    /// 				"com.app.MyImageTag.Value": value,
    /// 			]
    /// 		}
    /// 	}

Truncated.

struct

CVAttachmentCompositeKeyDefinition

NewiOSmacOStvOSwatchOS
public struct CVAttachmentCompositeKeyDefinition<ModePreference, Value> : Hashable, Sendable, ExpressibleByArrayLiteral where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable

Associates a set of raw attachment keys with a value type and preferred propagation mode.

The rawValues array should contain raw key strings required to represent any instance of Value. Even if some of the elements in rawValues are not required to represent certain instances of Value.

Declaration
public struct CVAttachmentCompositeKeyDefinition<ModePreference, Value> : Hashable, Sendable, ExpressibleByArrayLiteral where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable {

    public var rawValues: [String]

    public init(_ rawValues: String...)

    /// Creates an instance initialized with the given elements.
    public init(arrayLiteral rawValues: String...)

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVAttachmentCompositeKeyDefinition<ModePreference, Value>, b: CVAttachmentCompositeKeyDefinition<ModePreference, Value>) -> Bool

    /// The type of the elements of an array literal.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias ArrayLiteralElement = String

    /// Hashes the essential components of this value by feeding them into the
    /// given hasher.
    ///
    /// Implement this method to conform to the `Hashable` protocol. The
    /// components used for hashing must be the same as the components compared
    /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
    /// with each of these components.
    ///
    /// - Important: In your implementation of `hash(into:)`,
    ///   don't call `finalize()` on the `hasher` instance provided,
    ///   or replace it with a different instance.
    ///   Doing so may become a compile-time error in the future.
    ///
    /// - Parameter hasher: The hasher to use when combining the components
    ///   of this instance.
    public func hash(into hasher: inout Hasher)

    /// The hash value.
    ///
    /// Hash values are not guaranteed to be equal across different executions of
    /// your program. Do not save hash values to use during a future execution.
    ///
    /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
    ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
    ///   The compiler provides an implementation for `hashValue` for you.
    public var hashValue: Int { get }
}
struct

CVAttachmentContainer

NewiOSmacOStvOSwatchOS
public struct CVAttachmentContainer<Keys> : Sendable, Equatable where Keys : CVAttachmentKeyDefinitions

Provides storage for buffer attachments independent of the buffer lifetime

This object can be used to hold a copy of all buffer attachments. The attachment values can be accessed as properties of this object similar to CVAttachmentAccess.

Declaration
@dynamicMemberLookup public struct CVAttachmentContainer<Keys> : Sendable, Equatable where Keys : CVAttachmentKeyDefinitions {

    public init(propagated: [String : any CVAttachmentValueRepresentable] = [:], nonPropagated: [String : any CVAttachmentValueRepresentable] = [:])

    /// Get or set attachment value as a property of this object.
    public subscript<ModePreference, Value>(dynamicMember keyPath: KeyPath<Keys.Type, CVAttachmentKeyDefinition<ModePreference, Value>>) -> Value? where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable

    /// Get or set attachment value as a property of this object with default value.
    public subscript<ModePreference, Value>(dynamicMember keyPath: KeyPath<Keys.Type, CVAttachmentKeyDefinitionWithDefault<ModePreference, Value>>) -> Value where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable, Value : Equatable, Value : Sendable

    /// Get or set composite attachment value as a property of this object.
    public subscript<ModePreference, Value>(dynamicMember keyPath: KeyPath<Keys.Type, CVAttachmentCompositeKeyDefinition<ModePreference, Value>>) -> Value? where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable

    /// Get or set attachment value associated with a string key
    public subscript<Value>(rawKey: String, as type: Value.Type = Value.self) -> (value: Value, mode: CVAttachmentMode)? where Value : CVAttachmentValueRepresentable

    /// Updates propagated and non-propagated attachment values using the provided container.
    public mutating func update(from other: CVAttachmentContainer<Keys>)

    /// Removes all attachments.
    public mutating func removeAll()

    /// Returns mode of an attached key without retriving value.
    ///
    /// This function can be used to check for the presence of a specific key without converting it's value.
    /// Returns `nil` if the key is not attached.
    public func attachedMode(of key: String) -> CVAttachmentMode?

    /// Returns mode of an attached key without retriving value.
    ///
    /// This function can be used to check for the presence of a specific key without converting it's value.
    /// Returns `nil` if the key is not attached.
    public func attachedMode(of keyPath: KeyPath<Keys.Type, CVAttachmentKeyDefinition<some CVAttachmentModePreference, some CVAttachmentValueRepresentable>>) -> CVAttachmentMode?

    /// Returns mode of an attached key without retriving value.
    ///
    /// This function can be used to check for the presence of a specific key without converting it's value.
    /// Returns `nil` if the key is not attached.
    public func attachedMode(of keyPath: KeyPath<Keys.Type, CVAttachmentKeyDefinitionWithDefault<some CVAttachmentModePreference, some CVAttachmentValueRepresentable & Equatable & Sendable>>) -> CVAttachmentMode?

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVAttachmentContainer<Keys>, b: CVAttachmentContainer<Keys>) -> Bool
}
struct

CVAttachmentKeyDefinition

NewiOSmacOStvOSwatchOS
public struct CVAttachmentKeyDefinition<ModePreference, Value> : Hashable, Sendable, ExpressibleByStringLiteral where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable

Associates a raw attachment key with a value type and preferred propagation mode.

Declaration
public struct CVAttachmentKeyDefinition<ModePreference, Value> : Hashable, Sendable, ExpressibleByStringLiteral where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable {

    public var rawValue: String

    public init(_ rawValue: String)

    /// Creates an instance initialized to the given string value.
    ///
    /// - Parameter value: The value of the new instance.
    public init(stringLiteral rawValue: String)

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVAttachmentKeyDefinition<ModePreference, Value>, b: CVAttachmentKeyDefinition<ModePreference, Value>) -> Bool

    /// A type that represents an extended grapheme cluster literal.
    ///
    /// Valid types for `ExtendedGraphemeClusterLiteralType` are `Character`,
    /// `String`, and `StaticString`.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias ExtendedGraphemeClusterLiteralType = String

    /// A type that represents a string literal.
    ///
    /// Valid types for `StringLiteralType` are `String` and `StaticString`.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias StringLiteralType = String

    /// A type that represents a Unicode scalar literal.
    ///
    /// Valid types for `UnicodeScalarLiteralType` are `Unicode.Scalar`,
    /// `Character`, `String`, and `StaticString`.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias UnicodeScalarLiteralType = String

    /// Hashes the essential components of this value by feeding them into the
    /// given hasher.
    ///
    /// Implement this method to conform to the `Hashable` protocol. The
    /// components used for hashing must be the same as the components compared
    /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
    /// with each of these components.
    ///
    /// - Important: In your implementation of `hash(into:)`,
    ///   don't call `finalize()` on the `hasher` instance provided,
    ///   or replace it with a different instance.
    ///   Doing so may become a compile-time error in the future.
    ///
    /// - Parameter hasher: The hasher to use when combining the components
    ///   of this instance.
    public func hash(into hasher: inout Hasher)

    /// The hash value.
    ///
    /// Hash values are not guaranteed to be equal across different executions of
    /// your program. Do not save hash values to use during a future execution.
    ///
    /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
    ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
    ///   The compiler provides an implementation for `hashValue` for you.
    public var hashValue: Int { get }
}
protocol

CVAttachmentKeyDefinitions

NewiOSmacOStvOSwatchOS
public protocol CVAttachmentKeyDefinitions

Marks a type as a collection of attachment keys for an attachment bearer.

The static properties of a type which implements this protocol provide definitions for the attachment keys. The static properties which have one of Key, KeyWithDefault or CompositeKey type are used by an attachment access provider to get and set attachment values.

For example, a custom attachment key for pixel buffers can be defined as:

extension CVPixelBufferAttachmentKeyDefinitions {
	// This extension makes the key available as a property of `pixelBuffer.attachments`.
	static var customAttachment: Key<ShouldPropagate, CustomAttachmentValue> {
		.init("com.myapp.customAttachmentKey")
	}
}

// This extension facilitates conversion between CustomAttachmentValue and CVAttachmentRawValue
extension CustomAttachmentValue: CVAttachmentValueRepresentable {
	static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> Self? {
		...
	}

	var rawAttachmentValueRepresentation: CVAttachmentRawValue {
		...
	}
}
Declaration
public protocol CVAttachmentKeyDefinitions {

    typealias ShouldPropagate = CVAttachmentModePreferenceShouldPropagate

    typealias ShouldNotPropagate = CVAttachmentModePreferenceShouldNotPropagate

    typealias Key = CVAttachmentKeyDefinition

    typealias KeyWithDefault = CVAttachmentKeyDefinitionWithDefault

    typealias CompositeKey = CVAttachmentCompositeKeyDefinition
}
struct

CVAttachmentKeyDefinitionWithDefault

NewiOSmacOStvOSwatchOS
public struct CVAttachmentKeyDefinitionWithDefault<ModePreference, Value> : Sendable, Equatable where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable, Value : Equatable, Value : Sendable

Associates a raw attachment key with a default value and preferred propagation mode.

Declaration
public struct CVAttachmentKeyDefinitionWithDefault<ModePreference, Value> : Sendable, Equatable where ModePreference : CVAttachmentModePreference, Value : CVAttachmentValueRepresentable, Value : Equatable, Value : Sendable {

    public var rawValue: String

    public var defaultValue: Value

    public init(_ rawValue: String, default defaultValue: Value)

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVAttachmentKeyDefinitionWithDefault<ModePreference, Value>, b: CVAttachmentKeyDefinitionWithDefault<ModePreference, Value>) -> Bool
}
extension

CVAttachmentKeyDefinitionWithDefault

NewiOSmacOStvOSwatchOS
extension CVAttachmentKeyDefinitionWithDefault : Hashable where Value : Hashable
Declaration
extension CVAttachmentKeyDefinitionWithDefault : Hashable where Value : Hashable {

    /// Hashes the essential components of this value by feeding them into the
    /// given hasher.
    ///
    /// Implement this method to conform to the `Hashable` protocol. The
    /// components used for hashing must be the same as the components compared
    /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
    /// with each of these components.
    ///
    /// - Important: In your implementation of `hash(into:)`,
    ///   don't call `finalize()` on the `hasher` instance provided,
    ///   or replace it with a different instance.
    ///   Doing so may become a compile-time error in the future.
    ///
    /// - Parameter hasher: The hasher to use when combining the components
    ///   of this instance.
    public func hash(into hasher: inout Hasher)

    /// The hash value.
    ///
    /// Hash values are not guaranteed to be equal across different executions of
    /// your program. Do not save hash values to use during a future execution.
    ///
    /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
    ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
    ///   The compiler provides an implementation for `hashValue` for you.
    public var hashValue: Int { get }
}
protocol

CVAttachmentModePreference

NewiOSmacOStvOSwatchOS
public protocol CVAttachmentModePreference : Sendable

Defines preferred mode for an attachment key.

This protocol is used to identify the mode preferences in generic context. You should use one of the CVAttachmentModePreferenceShouldPropagate or CVAttachmentModePreferenceShouldNotPropagate instead of defining a custom conformance to this protocol.

Declaration
public protocol CVAttachmentModePreference : Sendable {

    @inlinable static var preferredMode: CVAttachmentMode { get }
}
enum

CVAttachmentModePreferenceShouldNotPropagate

NewiOSmacOStvOSwatchOS
public enum CVAttachmentModePreferenceShouldNotPropagate : CVAttachmentModePreference

Sets preferred mode for attachment to should not propagate

Declaration
public enum CVAttachmentModePreferenceShouldNotPropagate : CVAttachmentModePreference {

    @inlinable public static var preferredMode: CVAttachmentMode { get }
}
enum

CVAttachmentModePreferenceShouldPropagate

NewiOSmacOStvOSwatchOS
public enum CVAttachmentModePreferenceShouldPropagate : CVAttachmentModePreference

Sets preferred mode for attachment to should propagate

Declaration
public enum CVAttachmentModePreferenceShouldPropagate : CVAttachmentModePreference {

    @inlinable public static var preferredMode: CVAttachmentMode { get }
}
struct

CVAttachmentRawValue

NewiOSmacOStvOSwatchOS
public struct CVAttachmentRawValue : Equatable, ExpressibleByDictionaryLiteral

A lightweight wrapper around raw attachment values.

This type encapsulates a raw attachment value and provides dictionary-like access to its content. The subscript(key:)-(String) allows access to internal values in a type safe way.

Declaration
public struct CVAttachmentRawValue : Equatable, ExpressibleByDictionaryLiteral {

    /// Creates an empty raw attachment value.
    public init()

    /// Creates raw attachment value from dictionary literal.
    public init(dictionaryLiteral elements: (String, (any CVAttachmentValueRepresentable)?)...)

    /// Get or set value associated with the specified key.
    public subscript<Value>(key: String, as type: Value.Type = Value.self) -> Value? where Value : CVAttachmentValueRepresentable

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVAttachmentRawValue, b: CVAttachmentRawValue) -> Bool

    /// The key type of a dictionary literal.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias Key = String

    /// The value type of a dictionary literal.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias Value = (any CVAttachmentValueRepresentable)?
}
protocol

CVAttachmentValueRepresentable

NewiOSmacOStvOSwatchOS
public protocol CVAttachmentValueRepresentable

Allows Swift types to be used as buffer attachment value.

A type conforming to this protocol can be used as value for an attachment key. The CVAttachmentRawValue type facilitates conversion to and from raw attachment values. Conformances of standard Swift type to this protocol are provided in CoreVideo framework. Implementing this protocol for a custom struct is as simple as:

	struct MyStruct {
		var number: Int
		var tags: [String]
	}

	extension MyStruct: CVAttachmentValueRepresentable {
		static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> Self? {
			guard let number: Int = repr["number"], tags: [String] = repr["tags"] else { return nil }
			return .init(number: number, tags: tags)
		}

		var rawAttachmentValueRepresentation: CVAttachmentRawValue {
			["number": self.number, "tags": self.tags]
		}
	}

Default implementation is provided for RawRepresentable protocol where RawValue conforms to this protocol. This allow enumeration with raw values to conform to CVAttachmentValueRepresentable protocol without a custom implementation.

Declaration
public protocol CVAttachmentValueRepresentable {

    static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> Self?

    var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }
}
enum

CVImageAlphaChannelMode

NewiOSmacOStvOSwatchOS
public enum CVImageAlphaChannelMode : String, Sendable, Hashable, CVAttachmentValueRepresentable
Declaration
public enum CVImageAlphaChannelMode : String, Sendable, Hashable, CVAttachmentValueRepresentable {

    case straightAlpha

    case premultipliedAlpha

    /// Creates a new instance with the specified raw value.
    ///
    /// If there is no value of the type that corresponds with the specified raw
    /// value, this initializer returns `nil`. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     print(PaperSize(rawValue: "Legal"))
    ///     // Prints "Optional(PaperSize.Legal)"
    ///
    ///     print(PaperSize(rawValue: "Tabloid"))
    ///     // Prints "nil"
    ///
    /// - Parameter rawValue: The raw value to use for the new instance.
    public init?(rawValue: String)

    /// The corresponding value of the raw type.
    ///
    /// A new instance initialized with `rawValue` will be equivalent to this
    /// instance. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     let selectedSize = PaperSize.Letter
    ///     print(selectedSize.rawValue)
    ///     // Prints "Letter"
    ///
    ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
    ///     // Prints "true"
    public var rawValue: String { get }

    /// The raw type that can be used to represent all values of the conforming
    /// type.
    ///
    /// Every distinct value of the conforming type has a corresponding unique
    /// value of the `RawValue` type, but there may be values of the `RawValue`
    /// type that don't have a corresponding value of the conforming type.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias RawValue = String
}
extension

CVImageAlphaChannelMode

NewiOSmacOStvOSwatchOS
extension CVImageAlphaChannelMode : RawRepresentable
Declaration
extension CVImageAlphaChannelMode : RawRepresentable {
}
protocol

CVImageBufferAttachmentKeyDefinitions

NewiOSmacOStvOSwatchOS
public protocol CVImageBufferAttachmentKeyDefinitions : CVAttachmentKeyDefinitions

A namespace for image buffer attachment keys.

Declaration
public protocol CVImageBufferAttachmentKeyDefinitions : CVAttachmentKeyDefinitions {
}
extension

CVImageBufferAttachmentKeyDefinitions

NewiOSmacOStvOSwatchOS
extension CVImageBufferAttachmentKeyDefinitions
Declaration
extension CVImageBufferAttachmentKeyDefinitions {

    /// Color space of the image buffer.
    @inlinable public static var colorSpace: CVAttachmentKeyDefinition<Self.ShouldPropagate, CGColorSpace> { get }

    /// Clean aperture of the image buffer.
    @inlinable public static var cleanAperture: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageCleanAperture> { get }

    /// The order of interlaced video data in the image buffer.
    @inlinable public static var fieldDetail: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageFieldDetail> { get }

    /// Pixel aspect ratio for the image buffer.
    @inlinable public static var pixelAspectRatio: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImagePixelAspectRatio> { get }

    /// Display dimensions for the image buffer.
    @inlinable public static var displayDimensions: CVAttachmentKeyDefinition<Self.ShouldPropagate, CGSize> { get }

    /// The gamma level for the image buffer.
    @inlinable public static var gammaLevel: CVAttachmentKeyDefinition<Self.ShouldPropagate, Double> { get }

    /// ICC color profile for the image buffer.
    @inlinable public static var iccProfile: CVAttachmentKeyDefinition<Self.ShouldPropagate, Data> { get }

    /// The matrix to convert from YCbCr to the RGB color space.
    @inlinable public static var yCbCrMatrix: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageYCbCrMatrix> { get }

    /// The color primaries gamut for the image buffer.
    @inlinable public static var colorPrimaries: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageColorPrimaries> { get }

    /// The transfer characteristic for the image buffer.
    @inlinable public static var transferFunction: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageTransferFunction> { get }

    /// The chroma field information for the image buffer.
    @inlinable public static var chromaField: CVAttachmentCompositeKeyDefinition<Self.ShouldPropagate, CVImageChromaField> { get }

    /// True if the alpha channel in the image data is fully opaque.
    ///
    /// This key is not used if the pixel format type has no alpha channel.
    @inlinable public static var alphaChannelIsOpaque: CVAttachmentKeyDefinition<Self.ShouldPropagate, Bool> { get }

    /// Determines how the alpha channel should be rendered.
    public static var alphaChannelMode: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageAlphaChannelMode> { get }

    /// Mastering display color volume of the image.
    ///
    /// The value for this key is a 44 byte big-endian data sequence to match the payload of ISO/IEC 23008-2:2015(E),
    /// D.2.28 mastering display color volume in the supplemental enhancement information (SEI) message.
    @inlinable public static var masteringDisplayColorVolume: CVAttachmentKeyDefinition<Self.ShouldPropagate, Data> { get }

    /// The content light level information for the image.
    ///
    /// The value for this key is a 4 byte big-endian data sequence to match the payload of the content light level
    /// information metadata in the supplemental enhancement information (SEI) message.
    @inlinable public static var contentLightLevelInfo: CVAttachmentKeyDefinition<Self.ShouldPropagate, Data> { get }

    /// The ambient viewing environment for the image.
    /// The value for this key is an 8 byte big-endian data sequence to match the payload of the Ambient Viewing Environment SEI message.
    @inlinable public static var ambientViewingEnvironment: CVAttachmentKeyDefinition<Self.ShouldPropagate, Data> { get }

    /// Scene illumination measured in millilux.
    @inlinable public static var sceneIllumination: CVAttachmentKeyDefinition<Self.ShouldPropagate, Int> { get }

    /// Specifies region of interest that image statistics cover.
    @inlinable public static var regionOfInterest: CVAttachmentKeyDefinition<Self.ShouldPropagate, CGRect> { get }

    /// Indicates that the transfer function or gamma of the content is a log format and identifies the specific log curve.
    @inlinable public static var logTransferFunction: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageLogTransferFunction> { get }

    /// Specifies the rectangular display area within the image.
    @inlinable public static var displayMaskRectangle: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageDisplayMaskRectangle> { get }

    /// Specifies the rectangular display area within the left eye view of stereo images.
    @inlinable public static var leftStereoDisplayMaskRectangle: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageStereoDisplayMaskRectangle> { get }

    /// Specifies the rectangular display area within the right eye view of stereo images.
    @inlinable public static var rightStereoDisplayMaskRectangle: CVAttachmentKeyDefinition<Self.ShouldPropagate, CVImageStereoDisplayMaskRectangle> { get }

    /// Indicates a relative shift of the left and right images, which changes the zero parallax plane.
    ///
    /// The value encoded in normalized image space is measured over the range of -10000 to 10000 mapping to the uniform

Truncated.

struct

CVImageChromaField

NewiOSmacOStvOSwatchOS
public struct CVImageChromaField : Sendable, CVAttachmentValueRepresentable

Information about chroma field in the 2VUY format image data.

Declaration
public struct CVImageChromaField : Sendable, CVAttachmentValueRepresentable {

    /// Indicates the locations of the chroma sample in the image buffer.
    public enum SampleLocation : String, Sendable, Hashable, CVAttachmentValueRepresentable {

        /// Chroma sample is horizontally co-sited with the left column of luma samples, but centered vertically.
        case left

        /// Chroma sample is fully centered.
        case center

        /// Chroma sample is co-sited with the top-left luma sample.
        case topLeft

        /// Chroma sample is horizontally centered, but is co-sited with the top row of luma samples.
        case top

        /// Chroma sample is co-sited with the bottom-left luma sample.
        case bottomLeft

        /// Chroma sample is horizontally centered, but is co-sited with the bottom row of luma samples.
        case bottom

        /// The Cr and Cb samples are alternatingly co-sited with the left luma samples of the same field.
        case dv420

        /// Creates a new instance with the specified raw value.
        ///
        /// If there is no value of the type that corresponds with the specified raw
        /// value, this initializer returns `nil`. For example:
        ///
        ///     enum PaperSize: String {
        ///         case A4, A5, Letter, Legal
        ///     }
        ///
        ///     print(PaperSize(rawValue: "Legal"))
        ///     // Prints "Optional(PaperSize.Legal)"
        ///
        ///     print(PaperSize(rawValue: "Tabloid"))
        ///     // Prints "nil"
        ///
        /// - Parameter rawValue: The raw value to use for the new instance.
        public init?(rawValue: String)

        /// The corresponding value of the raw type.
        ///
        /// A new instance initialized with `rawValue` will be equivalent to this
        /// instance. For example:
        ///
        ///     enum PaperSize: String {
        ///         case A4, A5, Letter, Legal
        ///     }
        ///
        ///     let selectedSize = PaperSize.Letter
        ///     print(selectedSize.rawValue)
        ///     // Prints "Letter"
        ///
        ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
        ///     // Prints "true"
        public var rawValue: String { get }

        /// The raw type that can be used to represent all values of the conforming
        /// type.
        ///
        /// Every distinct value of the conforming type has a corresponding unique
        /// value of the `RawValue` type, but there may be values of the `RawValue`
        /// type that don't have a corresponding value of the conforming type.
        @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
        public typealias RawValue = String
    }

    /// Indicates chroma sample location for progressive-scan & interlaced image data.
    public enum FieldLocation : Sendable, CVAttachmentValueRepresentable {

        case progressive(CVImageChromaField.SampleLocation)

        case interlaced(top: CVImageChromaField.SampleLocation, bottom: CVImageChromaField.SampleLocation)

        public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> CVImageChromaField.FieldLocation?

Truncated.

extension

CVImageChromaField.ChromaSubsampling

NewiOSmacOStvOSwatchOS
extension CVImageChromaField.ChromaSubsampling : RawRepresentable
Declaration
extension CVImageChromaField.ChromaSubsampling : RawRepresentable {
}
extension

CVImageChromaField.SampleLocation

NewiOSmacOStvOSwatchOS
extension CVImageChromaField.SampleLocation : RawRepresentable
Declaration
extension CVImageChromaField.SampleLocation : RawRepresentable {
}
struct

CVImageCleanAperture

NewiOSmacOStvOSwatchOS
public struct CVImageCleanAperture : Sendable, Hashable, CVAttachmentValueRepresentable

An image’s clean aperture is a region of video to display.

This represents a rectangle within the image that’s free from transition artifacts caused by the encoding of the signal.

Declaration
@frozen public struct CVImageCleanAperture : Sendable, Hashable, CVAttachmentValueRepresentable {

    /// Width of the clean aperture.
    public var width: Float

    /// Height of the clean aperture.
    public var height: Float

    /// Horizontal offset from the center of the image buffer.
    ///
    /// A positive value of this property will move the center of clean aperture towards right side.
    public var horizontalOffset: Float

    /// Vertical offset from the center of the image buffer.
    ///
    /// A positive value of this property will move the center of clean aperture downwards.
    public var verticalOffset: Float

    public init(width: Float, height: Float, horizontalOffset: Float, verticalOffset: Float)

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> CVImageCleanAperture?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVImageCleanAperture, b: CVImageCleanAperture) -> Bool

    /// Hashes the essential components of this value by feeding them into the
    /// given hasher.
    ///
    /// Implement this method to conform to the `Hashable` protocol. The
    /// components used for hashing must be the same as the components compared
    /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
    /// with each of these components.
    ///
    /// - Important: In your implementation of `hash(into:)`,
    ///   don't call `finalize()` on the `hasher` instance provided,
    ///   or replace it with a different instance.
    ///   Doing so may become a compile-time error in the future.
    ///
    /// - Parameter hasher: The hasher to use when combining the components
    ///   of this instance.
    public func hash(into hasher: inout Hasher)

    /// The hash value.
    ///
    /// Hash values are not guaranteed to be equal across different executions of
    /// your program. Do not save hash values to use during a future execution.
    ///
    /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
    ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
    ///   The compiler provides an implementation for `hashValue` for you.
    public var hashValue: Int { get }
}
extension

CVImageCleanAperture

NewiOSmacOStvOSwatchOS
extension CVImageCleanAperture : BitwiseCopyable
Declaration
extension CVImageCleanAperture : BitwiseCopyable {
}
enum

CVImageColorPrimaries

NewiOSmacOStvOSwatchOS
public enum CVImageColorPrimaries : String, Sendable, Hashable, CVAttachmentValueRepresentable

Color primaries describe the gamut used for the rendering intent of an image.

This value is primarily used in color matching operations, along with a transfer function specified as CVImageTransferFunction.

Declaration
public enum CVImageColorPrimaries : String, Sendable, Hashable, CVAttachmentValueRepresentable {

    /// Color primaries gamut for HD video.
    case itu_R_709_2

    /// Color primaries gamut for PAL video.
    case ebu_3213

    /// Color primaries gamut for standard-definition video.
    case smpte_C

    /// Color primaries gamut for sRGB video.
    case p22

    /// Color primaries gamut for DCI P3 theatrical distribution video.
    case dci_P3

    /// Color primaries gamut for DCI P3 video with D65 white point.
    case p3_D65

    /// Color primaries gamut for ITU-R BT2020 HDR video.
    case itu_R_2020

    /// Creates a new instance with the specified raw value.
    ///
    /// If there is no value of the type that corresponds with the specified raw
    /// value, this initializer returns `nil`. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     print(PaperSize(rawValue: "Legal"))
    ///     // Prints "Optional(PaperSize.Legal)"
    ///
    ///     print(PaperSize(rawValue: "Tabloid"))
    ///     // Prints "nil"
    ///
    /// - Parameter rawValue: The raw value to use for the new instance.
    public init?(rawValue: String)

    /// The corresponding value of the raw type.
    ///
    /// A new instance initialized with `rawValue` will be equivalent to this
    /// instance. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     let selectedSize = PaperSize.Letter
    ///     print(selectedSize.rawValue)
    ///     // Prints "Letter"
    ///
    ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
    ///     // Prints "true"
    public var rawValue: String { get }

    /// The raw type that can be used to represent all values of the conforming
    /// type.
    ///
    /// Every distinct value of the conforming type has a corresponding unique
    /// value of the `RawValue` type, but there may be values of the `RawValue`
    /// type that don't have a corresponding value of the conforming type.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias RawValue = String
}
extension

CVImageColorPrimaries

NewiOSmacOStvOSwatchOS
extension CVImageColorPrimaries : RawRepresentable
Declaration
extension CVImageColorPrimaries : RawRepresentable {
}
struct

CVImageDisplayMaskRectangle

NewiOSmacOStvOSwatchOS
public struct CVImageDisplayMaskRectangle : Sendable, Hashable, CVAttachmentValueRepresentable

Specifies the rectangular display area within the image.

The mask is specified relative to a reference raster width and height that should be scaled to the image buffer dimensions. The origin (0, 0) is at the top-left.

Declaration
public struct CVImageDisplayMaskRectangle : Sendable, Hashable, CVAttachmentValueRepresentable {

    /// The horizontal pixel offset of the rectangle from the left of the bounding raster.
    ///
    /// This value is always less than ``referenceRasterWidth``.
    public var left: UInt16

    /// The vertical pixel offset of the rectangle from the top of the bounding raster.
    ///
    /// This value is always less than ``referenceRasterHeight``.
    public var top: UInt16

    /// The width of the rectangle starting at rectangle's left offset toward the rectangle's right edge.
    ///
    /// This value is always less than ``referenceRasterWidth``.
    public var width: UInt16

    /// The height of the rectangle starting at rectangle's top offset toward the rectangle's bottom edge.
    ///
    /// This value is always less than ``referenceRasterHeight``.
    public var height: UInt16

    /// The width in pixels of the 2D coordinate system to define the rectangle.
    ///
    /// Usually matches the width of the video or the output device.
    public var referenceRasterWidth: UInt16

    /// Specifies the height in pixels of the 2D coordinate system to define the rectangle.
    ///
    /// Usually matches the height of the video or the output device.
    public var referenceRasterHeight: UInt16

    public init(left: UInt16, top: UInt16, width: UInt16, height: UInt16, referenceRasterWidth: UInt16, referenceRasterHeight: UInt16)

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> CVImageDisplayMaskRectangle?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVImageDisplayMaskRectangle, b: CVImageDisplayMaskRectangle) -> Bool

    /// Hashes the essential components of this value by feeding them into the
    /// given hasher.
    ///
    /// Implement this method to conform to the `Hashable` protocol. The
    /// components used for hashing must be the same as the components compared
    /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
    /// with each of these components.
    ///
    /// - Important: In your implementation of `hash(into:)`,
    ///   don't call `finalize()` on the `hasher` instance provided,
    ///   or replace it with a different instance.
    ///   Doing so may become a compile-time error in the future.
    ///
    /// - Parameter hasher: The hasher to use when combining the components
    ///   of this instance.
    public func hash(into hasher: inout Hasher)

    /// The hash value.
    ///
    /// Hash values are not guaranteed to be equal across different executions of
    /// your program. Do not save hash values to use during a future execution.
    ///
    /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
    ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
    ///   The compiler provides an implementation for `hashValue` for you.
    public var hashValue: Int { get }
}
enum

CVImageFieldDetail

NewiOSmacOStvOSwatchOS
public enum CVImageFieldDetail : String, Sendable, Hashable, CVAttachmentValueRepresentable
Declaration
public enum CVImageFieldDetail : String, Sendable, Hashable, CVAttachmentValueRepresentable {

    /// The image buffer contains complete fields in alternating order. The top, odd-numbered, fields contain image
    /// data captured at an earlier time than bottom, even-numbered, fields.
    case temporalTopFirst

    /// The image buffer contains complete fields in alternating order. The bottom, even-numbered, fields contain image
    /// data captured at an earlier time than top, odd-numbered, fields.
    case temporalBottomFirst

    /// The image buffer contains interleaved fields. The first line of image data corresponds to the first top,
    /// odd-numbered, field.
    case spatialFirstLineEarly

    /// The image buffer contains interleaved fields. The first line of image data corresponds to the first bottom,
    /// even-numbered, field.
    case spatialFirstLineLate

    /// Creates a new instance with the specified raw value.
    ///
    /// If there is no value of the type that corresponds with the specified raw
    /// value, this initializer returns `nil`. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     print(PaperSize(rawValue: "Legal"))
    ///     // Prints "Optional(PaperSize.Legal)"
    ///
    ///     print(PaperSize(rawValue: "Tabloid"))
    ///     // Prints "nil"
    ///
    /// - Parameter rawValue: The raw value to use for the new instance.
    public init?(rawValue: String)

    /// The corresponding value of the raw type.
    ///
    /// A new instance initialized with `rawValue` will be equivalent to this
    /// instance. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     let selectedSize = PaperSize.Letter
    ///     print(selectedSize.rawValue)
    ///     // Prints "Letter"
    ///
    ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
    ///     // Prints "true"
    public var rawValue: String { get }

    /// The raw type that can be used to represent all values of the conforming
    /// type.
    ///
    /// Every distinct value of the conforming type has a corresponding unique
    /// value of the `RawValue` type, but there may be values of the `RawValue`
    /// type that don't have a corresponding value of the conforming type.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias RawValue = String
}
extension

CVImageFieldDetail

NewiOSmacOStvOSwatchOS
extension CVImageFieldDetail : RawRepresentable
Declaration
extension CVImageFieldDetail : RawRepresentable {
}
enum

CVImageLogTransferFunction

NewiOSmacOStvOSwatchOS
public enum CVImageLogTransferFunction : String, Sendable, Hashable, CVAttachmentValueRepresentable

Identifies the specific log curve transfer function or gamma of the content.

Log is a specific video format usually processed in a camera's ISP. A Log video format usually defines:

  • Scene-referred color primaries designed to preserve the chromaticity range captured by a camera sensor. In

cinematography, "scene-referred" color primaries refers to a color space designed to accurately preserve the chromaticity and dynamic range directly captured by a camera sensor.

  • A specific gamma curve (or transfer characteristic) tailored to capturing the full dynamic range from the sensor.

This gamma curve is usually shaped like a log curve (hence the name Log).

  • A set of matrix transforms to go from RGB to Y'CbCr (Y'CbCr being the most common format used to store the bits

compressed into a file).

As described above, a Log video format defines a whole color space (even though the “log” part of the name comes only from the “transfer characteristic” or gamma curve).

Declaration
public enum CVImageLogTransferFunction : String, Sendable, Hashable, CVAttachmentValueRepresentable {

    /// Apple log profile.
    case appleLog

    /// Apple log 2 profile.
    case appleLog2

    /// Creates a new instance with the specified raw value.
    ///
    /// If there is no value of the type that corresponds with the specified raw
    /// value, this initializer returns `nil`. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     print(PaperSize(rawValue: "Legal"))
    ///     // Prints "Optional(PaperSize.Legal)"
    ///
    ///     print(PaperSize(rawValue: "Tabloid"))
    ///     // Prints "nil"
    ///
    /// - Parameter rawValue: The raw value to use for the new instance.
    public init?(rawValue: String)

    /// The corresponding value of the raw type.
    ///
    /// A new instance initialized with `rawValue` will be equivalent to this
    /// instance. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     let selectedSize = PaperSize.Letter
    ///     print(selectedSize.rawValue)
    ///     // Prints "Letter"
    ///
    ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
    ///     // Prints "true"
    public var rawValue: String { get }

    /// The raw type that can be used to represent all values of the conforming
    /// type.
    ///
    /// Every distinct value of the conforming type has a corresponding unique
    /// value of the `RawValue` type, but there may be values of the `RawValue`
    /// type that don't have a corresponding value of the conforming type.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias RawValue = String
}
extension

CVImageLogTransferFunction

NewiOSmacOStvOSwatchOS
extension CVImageLogTransferFunction : RawRepresentable
Declaration
extension CVImageLogTransferFunction : RawRepresentable {
}
struct

CVImagePixelAspectRatio

NewiOSmacOStvOSwatchOS
public struct CVImagePixelAspectRatio : Sendable, Hashable, CVAttachmentValueRepresentable

Aspect ratio of each pixel in the image buffer.

Declaration
@frozen public struct CVImagePixelAspectRatio : Sendable, Hashable, CVAttachmentValueRepresentable {

    /// The horizontal component of the image buffer aspect ratio.
    public var horizontalSpacing: Float

    /// The vertical component of the image buffer aspect ratio.
    public var verticalSpacing: Float

    public init(horizontalSpacing: Float, verticalSpacing: Float)

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> CVImagePixelAspectRatio?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVImagePixelAspectRatio, b: CVImagePixelAspectRatio) -> Bool

    /// Hashes the essential components of this value by feeding them into the
    /// given hasher.
    ///
    /// Implement this method to conform to the `Hashable` protocol. The
    /// components used for hashing must be the same as the components compared
    /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
    /// with each of these components.
    ///
    /// - Important: In your implementation of `hash(into:)`,
    ///   don't call `finalize()` on the `hasher` instance provided,
    ///   or replace it with a different instance.
    ///   Doing so may become a compile-time error in the future.
    ///
    /// - Parameter hasher: The hasher to use when combining the components
    ///   of this instance.
    public func hash(into hasher: inout Hasher)

    /// The hash value.
    ///
    /// Hash values are not guaranteed to be equal across different executions of
    /// your program. Do not save hash values to use during a future execution.
    ///
    /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
    ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
    ///   The compiler provides an implementation for `hashValue` for you.
    public var hashValue: Int { get }
}
extension

CVImagePixelAspectRatio

NewiOSmacOStvOSwatchOS
extension CVImagePixelAspectRatio : BitwiseCopyable
Declaration
extension CVImagePixelAspectRatio : BitwiseCopyable {
}
struct

CVImageStereoDisplayMaskRectangle

NewiOSmacOStvOSwatchOS
public struct CVImageStereoDisplayMaskRectangle : Sendable, Hashable, CVAttachmentValueRepresentable

Specifies the rectangular display area within a view of stereo image.

To address window violations in stereo video, points insetting the left and right edges of the rectangle are supported through in addition to the mask rectangle, allowing the description of the "extended raster rectangle".

Declaration
public struct CVImageStereoDisplayMaskRectangle : Sendable, Hashable, CVAttachmentValueRepresentable {

    /// Specifies inset point on a vertical edge of the rectangle.
    public struct EdgePoint : Sendable, Hashable {

        /// Offset from left edge (0) towards the right edge (width).
        public var x: UInt16

        /// Offset from top edge (0) towards the bottom edge (height).
        public var y: UInt16

        public init(x: UInt16, y: UInt16)

        /// Returns a Boolean value indicating whether two values are equal.
        ///
        /// Equality is the inverse of inequality. For any values `a` and `b`,
        /// `a == b` implies that `a != b` is `false`.
        ///
        /// - Parameters:
        ///   - lhs: A value to compare.
        ///   - rhs: Another value to compare.
        public static func == (a: CVImageStereoDisplayMaskRectangle.EdgePoint, b: CVImageStereoDisplayMaskRectangle.EdgePoint) -> Bool

        /// Hashes the essential components of this value by feeding them into the
        /// given hasher.
        ///
        /// Implement this method to conform to the `Hashable` protocol. The
        /// components used for hashing must be the same as the components compared
        /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
        /// with each of these components.
        ///
        /// - Important: In your implementation of `hash(into:)`,
        ///   don't call `finalize()` on the `hasher` instance provided,
        ///   or replace it with a different instance.
        ///   Doing so may become a compile-time error in the future.
        ///
        /// - Parameter hasher: The hasher to use when combining the components
        ///   of this instance.
        public func hash(into hasher: inout Hasher)

        /// The hash value.
        ///
        /// Hash values are not guaranteed to be equal across different executions of
        /// your program. Do not save hash values to use during a future execution.
        ///
        /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
        ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
        ///   The compiler provides an implementation for `hashValue` for you.
        public var hashValue: Int { get }
    }

    /// Rectangular display area within the image.
    public var maskRectangle: CVImageDisplayMaskRectangle

    /// Inset points on the left edge of the rectangle.
    public var leftEdgePoints: [CVImageStereoDisplayMaskRectangle.EdgePoint]

    /// Inset points on the right edge of the rectangle.
    public var rightEdgePoints: [CVImageStereoDisplayMaskRectangle.EdgePoint]

    public init(maskRectangle: CVImageDisplayMaskRectangle, leftEdgePoints: [CVImageStereoDisplayMaskRectangle.EdgePoint], rightEdgePoints: [CVImageStereoDisplayMaskRectangle.EdgePoint])

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> CVImageStereoDisplayMaskRectangle?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }

    /// Returns a Boolean value indicating whether two values are equal.
    ///
    /// Equality is the inverse of inequality. For any values `a` and `b`,
    /// `a == b` implies that `a != b` is `false`.
    ///
    /// - Parameters:
    ///   - lhs: A value to compare.
    ///   - rhs: Another value to compare.
    public static func == (a: CVImageStereoDisplayMaskRectangle, b: CVImageStereoDisplayMaskRectangle) -> Bool

    /// Hashes the essential components of this value by feeding them into the
    /// given hasher.
    ///
    /// Implement this method to conform to the `Hashable` protocol. The

Truncated.

enum

CVImageTransferFunction

NewiOSmacOStvOSwatchOS
public enum CVImageTransferFunction : String, Sendable, Hashable, CVAttachmentValueRepresentable

The transfer function describes the tonality of an image for use in color matching operations. This value is used along with a color primaries gamut CVImageColorPrimaries. Most apps should use the itu_R_709_2 transfer function.

Declaration
public enum CVImageTransferFunction : String, Sendable, Hashable, CVAttachmentValueRepresentable {

    case linear

    /// The standard transfer function for web and desktop publishing.
    case sRGB

    /// The transfer function that’s defined by the gamma level value of the image buffer.
    case useGamma

    /// The transfer function for HDTV interim video.
    case smpte_240M_1995

    /// The transfer function for digital cinema distribution master.
    case smpte_ST_428_1

    /// The transfer function for mapping HDR gamma to absolute light levels.
    case smpte_ST_2084_PQ

    /// The default transfer function for high-definition and standard-definition video.
    case itu_R_709_2

    /// The transfer function for HDR video specified in ITU-R BT2020 standard.
    case itu_R_2020

    /// The transfer function for HDR video specified in ITU-R BT2020 HLG standard.
    case itu_R_2100_HLG

    /// Creates a new instance with the specified raw value.
    ///
    /// If there is no value of the type that corresponds with the specified raw
    /// value, this initializer returns `nil`. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     print(PaperSize(rawValue: "Legal"))
    ///     // Prints "Optional(PaperSize.Legal)"
    ///
    ///     print(PaperSize(rawValue: "Tabloid"))
    ///     // Prints "nil"
    ///
    /// - Parameter rawValue: The raw value to use for the new instance.
    public init?(rawValue: String)

    /// The corresponding value of the raw type.
    ///
    /// A new instance initialized with `rawValue` will be equivalent to this
    /// instance. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     let selectedSize = PaperSize.Letter
    ///     print(selectedSize.rawValue)
    ///     // Prints "Letter"
    ///
    ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
    ///     // Prints "true"
    public var rawValue: String { get }

    /// The raw type that can be used to represent all values of the conforming
    /// type.
    ///
    /// Every distinct value of the conforming type has a corresponding unique
    /// value of the `RawValue` type, but there may be values of the `RawValue`
    /// type that don't have a corresponding value of the conforming type.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias RawValue = String
}
extension

CVImageTransferFunction

NewiOSmacOStvOSwatchOS
extension CVImageTransferFunction : RawRepresentable
Declaration
extension CVImageTransferFunction : RawRepresentable {
}
enum

CVImageYCbCrMatrix

NewiOSmacOStvOSwatchOS
public enum CVImageYCbCrMatrix : String, Sendable, Hashable, CVAttachmentValueRepresentable

Indicates color matrix used for converting image buffer from YCbCr to RGB.

Declaration
public enum CVImageYCbCrMatrix : String, Sendable, Hashable, CVAttachmentValueRepresentable {

    /// The conversion matrix for 1920 x 1135 HDTV images, that follows the SMPTE 240M 1995 standard.
    case smpte_240M_1995

    /// The conversion matrix for HDTV digital television images, that follows the ITU R 709 standard.
    case itu_R_709_2

    /// The conversion matrix for standard definition television images, that follows the ITU R 601 standard.
    case itu_R_601_4

    /// The conversion matrix for UHDTV digital television images, that follows the ITU Rec 2020 standard.
    case itu_R_2020

    /// Creates a new instance with the specified raw value.
    ///
    /// If there is no value of the type that corresponds with the specified raw
    /// value, this initializer returns `nil`. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     print(PaperSize(rawValue: "Legal"))
    ///     // Prints "Optional(PaperSize.Legal)"
    ///
    ///     print(PaperSize(rawValue: "Tabloid"))
    ///     // Prints "nil"
    ///
    /// - Parameter rawValue: The raw value to use for the new instance.
    public init?(rawValue: String)

    /// The corresponding value of the raw type.
    ///
    /// A new instance initialized with `rawValue` will be equivalent to this
    /// instance. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     let selectedSize = PaperSize.Letter
    ///     print(selectedSize.rawValue)
    ///     // Prints "Letter"
    ///
    ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
    ///     // Prints "true"
    public var rawValue: String { get }

    /// The raw type that can be used to represent all values of the conforming
    /// type.
    ///
    /// Every distinct value of the conforming type has a corresponding unique
    /// value of the `RawValue` type, but there may be values of the `RawValue`
    /// type that don't have a corresponding value of the conforming type.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias RawValue = String
}
extension

CVImageYCbCrMatrix

NewiOSmacOStvOSwatchOS
extension CVImageYCbCrMatrix : RawRepresentable
Declaration
extension CVImageYCbCrMatrix : RawRepresentable {
}
extension

CVMutablePixelBuffer

NewiOSmacOStvOSwatchOS
extension CVMutablePixelBuffer
Declaration
extension CVMutablePixelBuffer {

    /// Access attachments of this pixel buffer.
    public var attachments: CVMutablePixelBuffer.Attachments
}
enum

CVPixelBufferAttachmentKeyDefinitions

NewiOSmacOStvOSwatchOS
public enum CVPixelBufferAttachmentKeyDefinitions : CVImageBufferAttachmentKeyDefinitions

A namespace for pixel buffer attachment keys.

Declaration
public enum CVPixelBufferAttachmentKeyDefinitions : CVImageBufferAttachmentKeyDefinitions {

    /// Bayer pattern indicating sensel arrangement.
    ///
    /// This attachment applies only to buffers with VersatileBayer formats.
    public static let senselArrayPattern: CVAttachmentKeyDefinition<CVPixelBufferAttachmentKeyDefinitions.ShouldNotPropagate, CVSenselArrayPattern>

    /// ProRes RAW image metadata used for raw conversion.
    public static let proResRawMetadata: CVAttachmentCompositeKeyDefinition<CVPixelBufferAttachmentKeyDefinitions.ShouldPropagate, CVProResRawMetadata>
}
extension

CVPixelBufferAttributes

NewiOSmacOStvOSwatchOS
extension CVPixelBufferAttributes
Declaration
extension CVPixelBufferAttributes {

    /// Attachments to set on the pixel buffer.
    public var attachments: CVAttachmentContainer<CVPixelBufferAttachmentKeyDefinitions>?
}
extension

CVPixelBufferRepresentable

NewiOSmacOStvOSwatchOS
extension CVPixelBufferRepresentable where Self : ~Copyable
Declaration
extension CVPixelBufferRepresentable where Self : ~Copyable {

    public typealias Attachments = CVAttachmentAccess<CVPixelBufferAttachmentKeyDefinitions>

    /// Access attachments of this pixel buffer.
    public var attachments: Self.Attachments { get }
}
struct

CVProResRawMetadata

NewiOSmacOStvOSwatchOS
public struct CVProResRawMetadata : Sendable, CVAttachmentValueRepresentable

Metadata associated with ProRes RAW images.

Declaration
public struct CVProResRawMetadata : Sendable, CVAttachmentValueRepresentable {

    /// Siting offsets, relative to pixel center, of individual sensels/components constituting each pixel.
    public var senselSitingOffsets: CVSenselSitingOffsets

    /// The sensel level corresponding to no light exposure.
    public var blackLevel: Int32

    /// The sensel level corresponding to sensor (or camera A-to-D converter) saturation.
    public var whiteLevel: Int32

    /// The illuminant correlated color temperature (CCT), in kelvins, selected at the time of capture. If not present,
    /// the CCT is considered unknown or unspecified.
    public var whiteBalanceCCT: Float32?

    /// The white balance multiplication factor for red-filtered sensels.
    public var whiteBalanceRedFactor: Float32

    /// The white balance multiplication factor for blue-filtered sensels.
    public var whiteBalanceBlueFactor: Float32

    /// This is a 3x3 matrix which transforms linear RGB pixel values in the camera native color space to CIE 1931 XYZ
    /// values relative to the D65 illuminant, where the matrix entries are stored in row-major order.
    public var colorMatrix: InlineArray<9, Float32>

    /// The overall gain factor for raw conversion.
    public var gainFactor: Float32

    /// The recommended number of: pixels to discard from the start (left) of each row of the image; pixels to discard
    /// from the end (right) of each row of the image; rows of pixels to discard from the top of the image; and rows of
    /// pixels to discard from the bottom of the image. Pixels/rows are discarded after raw conversion.
    public var recommendedCrop: CVProResRawMetadata.RecommendedCrop

    /// ProRes RAW metadata extensions.
    /// This Data contains a big-endian UInt32 representing the size of the item in bytes followed by a 4-character code
    /// ('psim') followed by a variable-length pascal string identifying the metadata (like a key string) followed by
    /// the metadata payload.
    public var extensions: Data?

    public init(senselSitingOffsets: CVSenselSitingOffsets = .zero, blackLevel: Int32, whiteLevel: Int32, whiteBalanceCCT: Float32? = nil, whiteBalanceRedFactor: Float32, whiteBalanceBlueFactor: Float32, colorMatrix: InlineArray<9, Float32>, gainFactor: Float32, recommendedCrop: CVProResRawMetadata.RecommendedCrop = .zero, extensions: Data? = nil)

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> CVProResRawMetadata?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }

    /// Recommended pixels to discard in the image after raw conversion.
    ///
    /// The values may be nonintegral due to downscaling, in which case the handling of fractional parts is
    /// implementation-dependent.
    public struct RecommendedCrop : RawRepresentable, Sendable, Hashable, CVAttachmentValueRepresentable {

        /// Pixels to discard from the start (left) of each row of the image.
        public var pixelsToDiscardAtStartOfEachRow: Float32

        /// Pixels to discard from the end (right) of each row of the image.
        public var pixelsToDiscardAtEndOfEachRow: Float32

        /// Rows of pixels to discard from the top of the image.
        public var rowsOfPixelsToDiscardAtTop: Float32

        /// Rows of pixels to discard from the bottom of the image.
        public var rowsOfPixelsToDiscardAtBottom: Float32

        public init(pixelsToDiscardAtStartOfEachRow: Float32, pixelsToDiscardAtEndOfEachRow: Float32, rowsOfPixelsToDiscardAtTop: Float32, rowsOfPixelsToDiscardAtBottom: Float32)

        public static let zero: CVProResRawMetadata.RecommendedCrop

        /// Creates a new instance with the specified raw value.
        ///
        /// If there is no value of the type that corresponds with the specified raw
        /// value, this initializer returns `nil`. For example:
        ///
        ///     enum PaperSize: String {
        ///         case A4, A5, Letter, Legal
        ///     }
        ///
        ///     print(PaperSize(rawValue: "Legal"))
        ///     // Prints "Optional(PaperSize.Legal)"
        ///
        ///     print(PaperSize(rawValue: "Tabloid"))

Truncated.

enum

CVSenselArrayPattern

NewiOSmacOStvOSwatchOS
public enum CVSenselArrayPattern : Int, Sendable, Hashable, CVAttachmentValueRepresentable

Pattern indicating sensel arrangement.

Declaration
public enum CVSenselArrayPattern : Int, Sendable, Hashable, CVAttachmentValueRepresentable {

    /// Top-left sensel of the frame is red-filtered.
    case bayerRGGB

    /// Top-left sensel of the frame is green-filtered, with the top row alternating between green and red-filtered sensels.
    case bayerGRBG

    /// Top-left sensel of the frame is green-filtered, with the top row alternating between green and blue-filtered sensels.
    case bayerGBRG

    /// Top-left sensel of the frame is blue-filtered.
    case bayerBGGR

    /// Creates a new instance with the specified raw value.
    ///
    /// If there is no value of the type that corresponds with the specified raw
    /// value, this initializer returns `nil`. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     print(PaperSize(rawValue: "Legal"))
    ///     // Prints "Optional(PaperSize.Legal)"
    ///
    ///     print(PaperSize(rawValue: "Tabloid"))
    ///     // Prints "nil"
    ///
    /// - Parameter rawValue: The raw value to use for the new instance.
    public init?(rawValue: Int)

    /// The raw type that can be used to represent all values of the conforming
    /// type.
    ///
    /// Every distinct value of the conforming type has a corresponding unique
    /// value of the `RawValue` type, but there may be values of the `RawValue`
    /// type that don't have a corresponding value of the conforming type.
    @available(macOS 27.0, iOS 27.0, tvOS 27.0, watchOS 27.0, *)
    public typealias RawValue = Int

    /// The corresponding value of the raw type.
    ///
    /// A new instance initialized with `rawValue` will be equivalent to this
    /// instance. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     let selectedSize = PaperSize.Letter
    ///     print(selectedSize.rawValue)
    ///     // Prints "Letter"
    ///
    ///     print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)
    ///     // Prints "true"
    public var rawValue: Int { get }
}
extension

CVSenselArrayPattern

NewiOSmacOStvOSwatchOS
extension CVSenselArrayPattern : RawRepresentable
Declaration
extension CVSenselArrayPattern : RawRepresentable {
}
struct

CVSenselSitingOffsets

NewiOSmacOStvOSwatchOS
public struct CVSenselSitingOffsets : RawRepresentable, Sendable, Hashable, CVAttachmentValueRepresentable

Siting offsets, relative to pixel center, of individual sensels/components constituting each pixel.

Declaration
public struct CVSenselSitingOffsets : RawRepresentable, Sendable, Hashable, CVAttachmentValueRepresentable {

    /// Siting offset of a component, relative to pixel center.
    ///
    /// A positive offset value indicates that the sensel/component lies to the right of or below the center of its pixel,
    /// while a negative value indicates that the sensel/component lies to the left of or above the center of its pixel.
    /// Horizontal and vertical offset magnitudes are respectively in terms of the spacing between horizontally and
    /// vertically-adjacent pixel centers.
    public struct Offset : Sendable, Hashable {

        public var horizontal: Float32

        public var vertical: Float32

        public init(horizontal: Float32, vertical: Float32)

        public static let zero: CVSenselSitingOffsets.Offset

        /// Returns a Boolean value indicating whether two values are equal.
        ///
        /// Equality is the inverse of inequality. For any values `a` and `b`,
        /// `a == b` implies that `a != b` is `false`.
        ///
        /// - Parameters:
        ///   - lhs: A value to compare.
        ///   - rhs: Another value to compare.
        public static func == (a: CVSenselSitingOffsets.Offset, b: CVSenselSitingOffsets.Offset) -> Bool

        /// Hashes the essential components of this value by feeding them into the
        /// given hasher.
        ///
        /// Implement this method to conform to the `Hashable` protocol. The
        /// components used for hashing must be the same as the components compared
        /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
        /// with each of these components.
        ///
        /// - Important: In your implementation of `hash(into:)`,
        ///   don't call `finalize()` on the `hasher` instance provided,
        ///   or replace it with a different instance.
        ///   Doing so may become a compile-time error in the future.
        ///
        /// - Parameter hasher: The hasher to use when combining the components
        ///   of this instance.
        public func hash(into hasher: inout Hasher)

        /// The hash value.
        ///
        /// Hash values are not guaranteed to be equal across different executions of
        /// your program. Do not save hash values to use during a future execution.
        ///
        /// - Important: `hashValue` is deprecated as a `Hashable` requirement. To
        ///   conform to `Hashable`, implement the `hash(into:)` requirement instead.
        ///   The compiler provides an implementation for `hashValue` for you.
        public var hashValue: Int { get }
    }

    public var red: CVSenselSitingOffsets.Offset

    public var green: CVSenselSitingOffsets.Offset

    public var blue: CVSenselSitingOffsets.Offset

    public var alpha: CVSenselSitingOffsets.Offset

    public init(red: CVSenselSitingOffsets.Offset, green: CVSenselSitingOffsets.Offset, blue: CVSenselSitingOffsets.Offset, alpha: CVSenselSitingOffsets.Offset)

    public static let zero: CVSenselSitingOffsets

    /// Creates a new instance with the specified raw value.
    ///
    /// If there is no value of the type that corresponds with the specified raw
    /// value, this initializer returns `nil`. For example:
    ///
    ///     enum PaperSize: String {
    ///         case A4, A5, Letter, Legal
    ///     }
    ///
    ///     print(PaperSize(rawValue: "Legal"))
    ///     // Prints "Optional(PaperSize.Legal)"
    ///

Truncated.

extension

Data

NewiOSmacOStvOSwatchOS
extension Data : CVAttachmentValueRepresentable
Declaration
extension Data : CVAttachmentValueRepresentable {
}
extension

Date

NewiOSmacOStvOSwatchOS
extension Date : CVAttachmentValueRepresentable
Declaration
extension Date : CVAttachmentValueRepresentable {
}
extension

Dictionary

NewiOSmacOStvOSwatchOS
extension Dictionary : CVAttachmentValueRepresentable where Key : CVAttachmentValueRepresentable, Value : CVAttachmentValueRepresentable
Declaration
extension Dictionary : CVAttachmentValueRepresentable where Key : CVAttachmentValueRepresentable, Value : CVAttachmentValueRepresentable {

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> [Key : Value]?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }
}
extension

Double

NewiOSmacOStvOSwatchOS
extension Double : CVAttachmentValueRepresentable
Declaration
extension Double : CVAttachmentValueRepresentable {
}
extension

Float

NewiOSmacOStvOSwatchOS
extension Float : CVAttachmentValueRepresentable
Declaration
extension Float : CVAttachmentValueRepresentable {
}
extension

Int

NewiOSmacOStvOSwatchOS
extension Int : CVAttachmentValueRepresentable
Declaration
extension Int : CVAttachmentValueRepresentable {
}
extension

Int16

NewiOSmacOStvOSwatchOS
extension Int16 : CVAttachmentValueRepresentable
Declaration
extension Int16 : CVAttachmentValueRepresentable {
}
extension

Int32

NewiOSmacOStvOSwatchOS
extension Int32 : CVAttachmentValueRepresentable
Declaration
extension Int32 : CVAttachmentValueRepresentable {
}
extension

Int64

NewiOSmacOStvOSwatchOS
extension Int64 : CVAttachmentValueRepresentable
Declaration
extension Int64 : CVAttachmentValueRepresentable {
}
extension

Int8

NewiOSmacOStvOSwatchOS
extension Int8 : CVAttachmentValueRepresentable
Declaration
extension Int8 : CVAttachmentValueRepresentable {
}
extension

RawRepresentable

NewiOSmacOStvOSwatchOS
extension RawRepresentable where Self.RawValue : CVAttachmentValueRepresentable

Default implementation of CVAttachmentValueRepresentable for RawRepresentable.

Declaration
extension RawRepresentable where Self.RawValue : CVAttachmentValueRepresentable {

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> Self?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }
}
extension

Set

NewiOSmacOStvOSwatchOS
extension Set : CVAttachmentValueRepresentable where Element : CVAttachmentValueRepresentable
Declaration
extension Set : CVAttachmentValueRepresentable where Element : CVAttachmentValueRepresentable {

    public static func makeFromRawAttachmentValue(_ repr: CVAttachmentRawValue) -> Set<Element>?

    public var rawAttachmentValueRepresentation: CVAttachmentRawValue { get }
}
extension

String

NewiOSmacOStvOSwatchOS
extension String : CVAttachmentValueRepresentable
Declaration
extension String : CVAttachmentValueRepresentable {
}
extension

UInt

NewiOSmacOStvOSwatchOS
extension UInt : CVAttachmentValueRepresentable
Declaration
extension UInt : CVAttachmentValueRepresentable {
}
extension

UInt16

NewiOSmacOStvOSwatchOS
extension UInt16 : CVAttachmentValueRepresentable
Declaration
extension UInt16 : CVAttachmentValueRepresentable {
}
extension

UInt32

NewiOSmacOStvOSwatchOS
extension UInt32 : CVAttachmentValueRepresentable
Declaration
extension UInt32 : CVAttachmentValueRepresentable {
}
extension

UInt64

NewiOSmacOStvOSwatchOS
extension UInt64 : CVAttachmentValueRepresentable
Declaration
extension UInt64 : CVAttachmentValueRepresentable {
}
extension

UInt8

NewiOSmacOStvOSwatchOS
extension UInt8 : CVAttachmentValueRepresentable
Declaration
extension UInt8 : CVAttachmentValueRepresentable {
}
extension

URL

NewiOSmacOStvOSwatchOS
extension URL : CVAttachmentValueRepresentable
Declaration
extension URL : CVAttachmentValueRepresentable {
}
extension

UUID

NewiOSmacOStvOSwatchOS
extension UUID : CVAttachmentValueRepresentable
Declaration
extension UUID : CVAttachmentValueRepresentable {
}
typealias

CVAttachmentCompositeKeyDefinition.ArrayLiteralElement

NewiOSmacOStvOSwatchOS
public typealias ArrayLiteralElement = String

The type of the elements of an array literal.

typealias

CVAttachmentKeyDefinition.ExtendedGraphemeClusterLiteralType

NewiOSmacOStvOSwatchOS
public typealias ExtendedGraphemeClusterLiteralType = String

A type that represents an extended grapheme cluster literal.

Valid types for ExtendedGraphemeClusterLiteralType are Character, String, and StaticString.

typealias

CVAttachmentKeyDefinition.StringLiteralType

NewiOSmacOStvOSwatchOS
public typealias StringLiteralType = String

A type that represents a string literal.

Valid types for StringLiteralType are String and StaticString.

typealias

CVAttachmentKeyDefinition.UnicodeScalarLiteralType

NewiOSmacOStvOSwatchOS
public typealias UnicodeScalarLiteralType = String

A type that represents a Unicode scalar literal.

Valid types for UnicodeScalarLiteralType are Unicode.Scalar, Character, String, and StaticString.

typealias

CVAttachmentRawValue.Key

NewiOSmacOStvOSwatchOS
public typealias Key = String

The key type of a dictionary literal.

typealias

CVAttachmentRawValue.Value

NewiOSmacOStvOSwatchOS
public typealias Value = (any CVAttachmentValueRepresentable)?

The value type of a dictionary literal.

typealias

CVImageAlphaChannelMode.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = String

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVImageChromaField.ChromaSubsampling.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = String

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVImageChromaField.SampleLocation.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = String

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVImageColorPrimaries.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = String

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVImageFieldDetail.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = String

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVImageLogTransferFunction.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = String

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVImageTransferFunction.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = String

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVImageYCbCrMatrix.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = String

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

var

CVPixelBufferCreationAttributes.attachments

NewiOSmacOStvOSwatchOS
public var attachments: CVAttachmentContainer<CVPixelBufferAttachmentKeyDefinitions>?

Attachments to set on the pixel buffer.

init

CVPixelBufferCreationAttributes.init

NewiOSmacOStvOSwatchOS
public init(pixelFormatType: CVPixelFormatType, size: CVImageSize, compatibility: CVPixelFormatDescription.Compatibility = [], bytesPerRowAlignment: Int? = nil, planeAlignment: Int? = nil, extendedPixels: CVPixelBufferPadding? = nil, attachments: CVAttachmentContainer<CVPixelBufferAttachmentKeyDefinitions>? = nil)
typealias

CVProResRawMetadata.RecommendedCrop.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = Data

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVSenselArrayPattern.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = Int

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

typealias

CVSenselSitingOffsets.RawValue

NewiOSmacOStvOSwatchOS
public typealias RawValue = Data

The raw type that can be used to represent all values of the conforming type.

Every distinct value of the conforming type has a corresponding unique value of the RawValue type, but there may be values of the RawValue type that don't have a corresponding value of the conforming type.

Removed

2
var

COREVIDEO_INCLUDED_IOSURFACE_HEADER_FILE

RemovediOSmacOS
public var COREVIDEO_INCLUDED_IOSURFACE_HEADER_FILE: Int32 { get }
RemovedAbsent from the 27 SDK interface. Declaration shown is from the 26 SDK.
var

COREVIDEO_USE_IOSURFACEREF

RemovediOSmacOS
public var COREVIDEO_USE_IOSURFACEREF: Bool { get }
RemovedAbsent from the 27 SDK interface. Declaration shown is from the 26 SDK.

No APIs match your filter.

← More in Graphics & Metal