### start() Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender/start%28%29 Initializes the sender to begin transmitting frames, audio, or venue descriptor information. ```APIDOC ## start() ### Description Starts the ImmersiveMediaRemotePreviewSender. Call this method before sending any frames, audio, or venue descriptor information to the receivers. ### Method Instance Method ### Parameters None ### Request Example func start() async ### Response - **Return Type** (Void) - This method is asynchronous and does not return a value. ``` -------------------------------- ### start(connection:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/start%28connection%3A%29 Initiates the reception of remote immersive video frames using a specified network connection. ```APIDOC ## start(connection:) ### Description Performs the necessary steps to start receiving remote Immersive video frames using the given network connection. ### Method Instance Method ### Parameters #### Path Parameters - **connection** (NWConnection) - Required - The network connection to use for communication and receive remote frames. ### Request Example ```swift func start(connection: NWConnection) async throws ``` ``` -------------------------------- ### Define started status case Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/status/started Indicates that the receiver has already started. ```swift case started ``` -------------------------------- ### ImmersiveMediaRemotePreviewReceiver.Status.starting Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/status/starting An indication that the receiver is in the starting state. ```APIDOC ## ImmersiveMediaRemotePreviewReceiver.Status.starting ### Description An indication that the receiver is in the starting state. ### Availability - macOS 26.0+ - visionOS 26.0+ ### Definition ```swift case starting ``` ``` -------------------------------- ### Start Immersive Media Sender Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender/start%28%29 Call start() before sending any frames, audio, or venue descriptor information to receivers. Available on macOS 26.0+. ```swift func start() async ``` -------------------------------- ### Get the start time of a command Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand/time Access the `time` property to retrieve the playback time when a command begins. Available on iOS, iPadOS, macOS, and visionOS. ```swift var time: CMTime ``` -------------------------------- ### Instance Property: time Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand/time The time this command starts during playback. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS/visionOS). ```APIDOC ## Instance Property: time ### Description The time this command starts during playback. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Declaration ```swift var time: CMTime ``` ### See Also - `cameraID`: The camera ID to use for the duration of this command. - `duration`: The duration of the command. - `id`: A unique command ID for the entire immersive media file. - `offset`: Reserved for later use. ``` -------------------------------- ### ImmersiveMediaRemotePreviewReceiver.Status.started Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/status/started An indication that the receiver has already started. ```APIDOC ## ImmersiveMediaRemotePreviewReceiver.Status.started ### Description An indication that the receiver has already started. ### Availability - macOS 26.0+ - visionOS 26.0+ ### Definition ```swift case started ``` ``` -------------------------------- ### Initializer: init(id:time:duration:offset:) Source: https://developer.apple.com/documentation/immersivemediasupport/shotflopcommand/init%28id%3Atime%3Aduration%3Aoffset%3A%29 Creates a command instance for a certain time, duration, and offset. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS/visionOS). ```APIDOC ## Initializer: init(id:time:duration:offset:) ### Description Creates a command instance for a certain time, duration and offset. ### Method Initializer ### Endpoint N/A (Initializer) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) None #### Response Example None ## Parameters `id` (Int) - Required - The unique ID of this command. `time` (CMTime) - Required - The time for this command to start during playback. `duration` (CMTime) - Required - The duration of this command during playback. `offset` (CMTime?) - Optional - The offset from the start time of this command. ``` -------------------------------- ### Initializer: init(id:time:cameraID:) Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand/init%28id%3Atime%3Acameraid%3A%29 Creates a command with a specific ID, cameraID and start time. Supported on iOS, iPadOS, Mac Catalyst, macOS, and visionOS versions 26.4+ or 26.0+. ```APIDOC ## Initializer: init(id:time:cameraID:) ### Description Creates a command with a specific ID, cameraID and start time. ### Method Initializer ### Endpoint N/A (Initializer) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ### Parameters - **id** (Int) - Required - The unique ID of this command. - **time** (CMTime) - Required - The time for this command to start during playback. - **cameraID** (String) - Required - The `cameraID` associated with this command. ``` -------------------------------- ### Initialize Command with ID, Time, and Camera ID Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand/init%28id%3Atime%3Acameraid%3A%29 Use this initializer to create a command with a unique ID, a specific start time during playback, and an associated camera ID. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS. ```swift init( id: Int, time: CMTime, cameraID: String ) ``` -------------------------------- ### ImmersiveMediaRemotePreviewReceiver.Status.starting Case Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/status/starting Represents the state where the receiver is starting. Available on macOS 26.0+ and visionOS 26.0+. ```swift case starting ``` -------------------------------- ### Initialize VenueDescriptor with Device Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28device%3A%29 Creates an empty venue descriptor instance. Available on iOS, iPadOS, macOS, and visionOS starting from version 26.4. ```swift init(device: (any MTLDevice)? = nil) ``` -------------------------------- ### Instance Property: time Source: https://developer.apple.com/documentation/immersivemediasupport/shotflopcommand/time The 'time' property indicates the specific point in playback when a command begins. It is available on iOS, iPadOS, Mac Catalyst starting from version 26.4, and on macOS and visionOS starting from version 26.0. ```APIDOC ## Instance Property: time ### Description The time this command starts during playback. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Syntax ```swift var time: CMTime ``` ### See Also - `duration`: The duration of the command. - `id`: A unique command ID for the immersive media file. - `offset`: The offset from the start time of this command. ``` -------------------------------- ### Initialize SetCameraCommand Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand Initializes a SetCameraCommand with a specific ID, cameraID, and start time. This command is used to switch between immersive cameras during playback. ```swift init(id: Int, time: CMTime, cameraID: String) ``` -------------------------------- ### Get AimeData Property Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/aimedata Retrieves the complete static metadata for immersive media playback. Requires macOS 26.0 or later. ```swift final var aimeData: Data? { get throws } ``` -------------------------------- ### Initialize from Decoder Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand/init%28from%3A%29 Use this initializer to decode an object from a decoder. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4. ```swift init(from decoder: any Decoder) throws ``` -------------------------------- ### Start Immersive Video Frame Reception Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/start%28connection%3A%29 Use this method to begin receiving remote Immersive video frames over a specified network connection. Requires macOS 26.0+ or visionOS 26.0+. ```swift func start(connection: NWConnection) async throws ``` -------------------------------- ### Get Right Eye Control Points Source: https://developer.apple.com/documentation/immersivemediasupport/immersivedynamicmask/rightcontrolpoints Access the control points for the right eye. Available on iOS, iPadOS, macOS, and visionOS starting from version 26.0. ```swift var rightControlPoints: [Point3DFloat] ``` -------------------------------- ### init(commands:) Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptor/init%28commands%3A%29 Initializes a new PresentationDescriptor instance with a specified array of presentation commands. ```APIDOC ## init(commands:) ### Description Creates an instance that contains the commands specified in the given array. ### Parameters #### Parameters - **commands** ([PresentationCommand]) - Optional - An array of presentation commands. ### Request Example ```swift init(commands: [PresentationCommand] = []) ``` ``` -------------------------------- ### Get ImmersiveDynamicMask Name Source: https://developer.apple.com/documentation/immersivemediasupport/immersivedynamicmask/name Access the unique name string of the dynamic mask. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4. ```swift var name: String ``` -------------------------------- ### init(aimeURL:device:) Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28device%3A%29 Creates a venue descriptor instance from an AIME file. ```APIDOC ## init(aimeURL:device:) ### Description Creates a venue descriptor instance from an AIME file asynchronously. ### Parameters #### Parameters - **aimeURL** (URL) - Required - The URL of the AIME file. - **device** ((any MTLDevice)?) - Optional - The Metal device to associate with the descriptor. ### Request Example ```swift let descriptor = try await VenueDescriptor(aimeURL: url, device: nil) ``` ``` -------------------------------- ### Initialize ImmersiveImageMask Source: https://developer.apple.com/documentation/immersivemediasupport/immersiveimagemask/init%28name%3Amaskurl%3A%29 Use this initializer to create an ImmersiveImageMask with a specified name and mask URL. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS/visionOS). ```swift init( name: String, maskURL: URL ) ``` -------------------------------- ### Initialize Network Browser with Parameters Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender Creates an NWBrowser instance using the configured network parameters. ```swift let parameters = setupNWParameters() let browser = NWBrowser(for: .bonjour(type: serviceType, domain: nil), using: parameters) ``` -------------------------------- ### init(device:) Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28device%3A%29 Initializes an empty venue descriptor instance. ```APIDOC ## init(device:) ### Description Creates an empty venue descriptor instance. ### Parameters #### Parameters - **device** ((any MTLDevice)?) - Optional - The Metal device to associate with the descriptor. ### Request Example ```swift let descriptor = VenueDescriptor(device: nil) ``` ``` -------------------------------- ### init(asset:computeFormatDescription:) Source: https://developer.apple.com/documentation/immersivemediasupport/parametricimmersiveassetinfo/init%28asset%3Acomputeformatdescription%3A%29 Initializes a new ParametricImmersiveAssetInfo instance to evaluate and prepare an AVURLAsset for immersive media. ```APIDOC ## init(asset:computeFormatDescription:) ### Description Creates an instance using the passed asset and computes the format description for converting the asset to a parametric immersive asset, if requested. Use `ParametricImmersiveAssetInfo.isParametricImmersive` to check whether the asset is already parametric immersive. ### Parameters #### Parameters - **asset** (AVURLAsset) - Required - The original AVURLAsset. - **computeFormatDescription** (Bool) - Optional - A flag that indicates whether to run the calculation for converting the ParametricImmersive asset. Opt-out for a quick check if the content is convertible, result is stored in isAssetConvertible. ### Request Example ```swift let info = try await ParametricImmersiveAssetInfo(asset: myAsset, computeFormatDescription: true) ``` ``` -------------------------------- ### Get and Set preferredVideoHeight Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender/preferredvideoheight Use this property to get or set the preferred video height for sending and previewing frames. An optional value of -1 allows the system to select the best resolution. ```swift var preferredVideoHeight: Int { get set } ``` -------------------------------- ### Initialize ParametricImmersiveAssetInfo Source: https://developer.apple.com/documentation/immersivemediasupport/parametricimmersiveassetinfo/init%28asset%3Acomputeformatdescription%3A%29 Creates an instance using the provided asset and optionally computes the format description. ```swift init( asset: AVURLAsset, computeFormatDescription: Bool = true ) async throws ``` -------------------------------- ### offset Instance Property Source: https://developer.apple.com/documentation/immersivemediasupport/shotflopcommand/offset The 'offset' property indicates the time from the start of a command within an immersive media playback sequence. It is available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 or 26.0. ```APIDOC ## offset Instance Property ### Description The offset from the start time of this command. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Declaration ```swift var offset: CMTime? ``` ### See Also - `duration`: CMTime - `id`: Int - `time`: CMTime ``` -------------------------------- ### Initializer - init() Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/init%28%29 Creates a preview receiver object. Available on macOS 26.0+ and visionOS 26.0+. ```APIDOC ## init() ### Description Creates a preview receiver object. ### Method `init()` ### Availability macOS 26.0+ visionOS 26.0+ ### Signature `init() async throws` ``` -------------------------------- ### init(left:right:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameracalibration/cameratexturemapping/init%28left%3Aright%3A%29 Initializes a new CameraTextureMapping instance with specified left and right transformation matrices. ```APIDOC ## init(left:right:) ### Description Initializes a CameraTextureMapping object with identity matrices as default values for left and right camera mappings. ### Parameters #### Request Body - **left** (matrix_float3x3) - Optional - The transformation matrix for the left camera. Defaults to matrix_identity_float3x3. - **right** (matrix_float3x3) - Optional - The transformation matrix for the right camera. Defaults to matrix_identity_float3x3. ### Request Example init(left: matrix_identity_float3x3, right: matrix_identity_float3x3) ``` -------------------------------- ### Initialize PresentationDescriptor with Commands Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptor Creates an instance of PresentationDescriptor containing the specified presentation commands. Ensure the commands array is properly formatted. ```swift init(commands: [PresentationCommand]) ``` -------------------------------- ### init(networkParameters:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender/init%28networkparameters%3A%29 Initializes a new ImmersiveMediaRemotePreviewSender instance with optional network parameters. ```APIDOC ## init(networkParameters:) ### Description Creates a preview sender using the specified network parameters, if any. ### Method Initializer ### Parameters #### Path Parameters - **networkParameters** (NWParameters?) - Optional - The network parameters to use when connecting to receivers. ### Request Example ```swift let sender = try await ImmersiveMediaRemotePreviewSender(networkParameters: nil) ``` ``` -------------------------------- ### GET conversionResult Source: https://developer.apple.com/documentation/immersivemediasupport/parametricimmersiveassetinfo/conversionresult Retrieves the result object of the parametric immersive format conversion. ```APIDOC ## GET conversionResult ### Description The conversionResult property provides the result of a parametric immersive format conversion as a Result type containing either a CMFormatDescription or a ParametricImmersiveAssetInfo.Error. ### Endpoint conversionResult ### Response - **conversionResult** (Result?) - The result object of the conversion. ``` -------------------------------- ### init(name:type:mask:positionable:origin:textureMapping:environmentFilename:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameracalibration/init%28name%3Atype%3Amask%3Apositionable%3Aorigin%3Atexturemapping%3Aenvironmentfilename%3A%29 Creates a mesh-based calibration from USDZ data and an image-based mask. ```APIDOC ## init(name:type:mask:positionable:origin:textureMapping:environmentFilename:) ### Description Creates a mesh-based calibration from USDZ data and an image-based mask. ### Parameters - **name** (String) - Required - The name to identify the calibration. - **type** (ImmersiveCameraCalibration.CalibrationType) - Required - The calibration type providing data to be used as the camera calibration for each eye. - **mask** (ImmersiveCameraMask?) - Optional - Optional override mask definition describing the mask to be used for this calibration. If no mask is provided, the one inside LensParameters will be used. - **positionable** (Bool) - Optional - A flag that indicates whether to anchor this calibration in mixed reality 3D space rather than centering it on the person’s eye position. - **origin** (ImmersiveCameraCalibration.CameraOrigin) - Optional - The position information that represents the origin from which to render the calibration in 3D space relative to the person’s eye. - **textureMapping** (ImmersiveCameraCalibration.CameraTextureMapping) - Optional - The texture mapping that describes how each section of the video frame maps into the calibration. - **environmentFilename** (String?) - Optional - The USDZ filename for calibrations with a backdrop. ``` -------------------------------- ### Get ImmersiveCameraCalibration Type Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameracalibration/type Retrieve the type of camera calibration. This property is read-only. ```swift var type: ImmersiveCameraCalibration.CalibrationType { get } ``` -------------------------------- ### Initialize PresentationDescriptor with Commands Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptor/init%28commands%3A%29 Creates an instance that contains the commands specified in the given array. Use this initializer when you need to provide a set of presentation commands upon creation. ```swift init(commands: [PresentationCommand] = []) ``` -------------------------------- ### GET ImmersiveVideoFrame.presentationTime Source: https://developer.apple.com/documentation/immersivemediasupport/immersivevideoframe/presentationtime Retrieves the presentation timestamp associated with the pixel buffers for an ImmersiveVideoFrame instance. ```APIDOC ## Property: presentationTime ### Description Returns the presentation timestamp associated with the pixel buffers. ### Availability - macOS 26.0+ - visionOS 26.0+ ### Definition `let presentationTime: CMTime` ``` -------------------------------- ### GET states property Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/states Access the states property to monitor the current status of the ImmersiveMediaRemotePreviewReceiver. ```APIDOC ## Property: states ### Description The states property provides an AsyncSequence that allows the application to monitor the current state of the preview receiver and react to status events. ### Availability - macOS 26.0+ - visionOS 26.0+ ### Declaration ```swift var states: some AsyncSequence { get } ``` ``` -------------------------------- ### PresentationDescriptor Initializer Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptor/init%28duration%3Acommands%3A%29 Creates an instance that contains the commands specified in the array. ```APIDOC ## init(duration:commands:) ### Description Creates an instance that contains the commands specified in the array. ### Method Initializer ### Endpoint N/A (Initializer) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) None #### Response Example None ## Parameters `duration` The duration of the metadata commands. `commands` An array of presentation commands. ``` -------------------------------- ### init(leftEye:rightEye:presentationTime:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivevideoframe/init%28lefteye%3Arighteye%3Apresentationtime%3A%29 Creates a video frame from the left and right eye pixel buffers. ```APIDOC ## init(leftEye:rightEye:presentationTime:) ### Description Creates a video frame from the left and right eye pixel buffers. ### Parameters - **leftEye** (CVPixelBuffer) - Required - leftEye pixel buffer. - **rightEye** (CVPixelBuffer) - Required - rightEye pixel buffer. - **presentationTime** (CMTime) - Required - Presentation time of the video frame. ### Request Example init( leftEye: leftEyeBuffer, rightEye: rightEyeBuffer, presentationTime: time ) ``` -------------------------------- ### Initialize VenueDescriptor from AIME URL Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28aimeurl%3Adevice%3A%29 Creates a venue descriptor instance from an AIME file. Requires an asynchronous context and may throw an error. ```swift convenience init( aimeURL: URL, device: (any MTLDevice)? = nil ) async throws ``` -------------------------------- ### GET connectedReceiverNames Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender/connectedreceivernames Retrieves an array of names for all receivers currently receiving data from the ImmersiveMediaRemotePreviewSender instance. ```APIDOC ## GET connectedReceiverNames ### Description Returns an array containing the names of all receivers currently receiving data from this instance. The array is automatically updated when a receiver goes offline. ### Property connectedReceiverNames ([String]) ### Availability macOS 26.0+ ### Declaration var connectedReceiverNames: [String] { get } ``` -------------------------------- ### Initializer Source: https://developer.apple.com/documentation/immersivemediasupport/parametricimmersiveassetinfo Details the initializer for creating a ParametricImmersiveAssetInfo instance. ```APIDOC ### Initializers `init(asset: AVURLAsset, computeFormatDescription: Bool) async throws` Creates an instance using the passed asset and computes the format description for converting the asset to parametric immersive asset, if requested. Use `ParametricImmersiveAssetInfo.isParametricImmersive` to check whether the asset is already parametric immersive. ``` -------------------------------- ### Get the offset for a command Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand/time The `offset` property is reserved for future use and may be nil. It is of type CMTime? ```swift var offset: CMTime? ``` -------------------------------- ### See Also: Instance Properties Source: https://developer.apple.com/documentation/immersivemediasupport/shotflopcommand/duration Related instance properties for immersive media commands. ```APIDOC ## See Also ### Instance Properties - `var id: Int` A unique command ID for the immersive media file. - `var offset: CMTime?` The offset from the start time of this command. - `var time: CMTime` The time this command starts during playback. ``` -------------------------------- ### GET requiredFormatDescription Source: https://developer.apple.com/documentation/immersivemediasupport/parametricimmersiveassetinfo/requiredformatdescription Retrieves the result format descriptor used for overriding a mutable video track during asset conversion. ```APIDOC ## GET requiredFormatDescription ### Description A result format descriptor for overriding a mutable video track that is used to convert the asset to a parametric immersive asset. Use `replaceFormatDescription` to replace the format description on the `AVMutableMovieTrack`. ### Property Definition `var requiredFormatDescription: CMFormatDescription? { get }` ### Compatibility - iOS 26.4+ - iPadOS 26.4+ - Mac Catalyst 26.4+ - macOS 26.0+ - visionOS 26.0+ ``` -------------------------------- ### Initialize Network Listener with Parameters Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender Creates an NWListener instance using the configured network parameters. ```swift let parameters = setupNWParameters() let listener = try NWListener(using: parameters) ``` -------------------------------- ### Get the unique ID of a command Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand/time The `id` property provides a unique integer identifier for each command within the immersive media file. ```swift var id: Int ``` -------------------------------- ### Initialize Preview Sender Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender/init%28networkparameters%3A%29 Creates a preview sender using the specified network parameters. This initializer is available on macOS 26.0 and later. ```swift init(networkParameters: NWParameters? = nil) async throws ``` -------------------------------- ### SetCameraCommand init(from:) Source: https://developer.apple.com/documentation/immersivemediasupport/setcameracommand/init%28from%3A%29 Initializes a new SetCameraCommand instance from a decoder. ```APIDOC ## init(from:) ### Description Creates a new instance of SetCameraCommand by decoding data from the provided decoder. ### Parameters - **decoder** (any Decoder) - Required - The decoder to read data from. ### Availability - iOS 26.4+ - iPadOS 26.4+ - Mac Catalyst 26.4+ - macOS 26.0+ - visionOS 26.0+ ``` -------------------------------- ### init(name:maskURL:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersiveimagemask/init%28name%3Amaskurl%3A%29 Initializes a new ImmersiveImageMask instance with a specified name and mask URL. ```APIDOC ## init(name:maskURL:) ### Description Initializes a new ImmersiveImageMask instance using the provided name and mask URL. ### Parameters #### Request Body - **name** (String) - Required - The name of the image mask. - **maskURL** (URL) - Required - The URL pointing to the mask resource. ### Request Example { "name": "example_mask", "maskURL": "file:///path/to/mask.png" } ``` -------------------------------- ### Define PresentationCommand Enum Source: https://developer.apple.com/documentation/immersivemediasupport/presentationcommand Defines the interface for a presentation command. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4. ```swift enum PresentationCommand ``` -------------------------------- ### Initialize ShotFlopCommand Source: https://developer.apple.com/documentation/immersivemediasupport/shotflopcommand/init%28id%3Atime%3Aduration%3Aoffset%3A%29 Creates a new command instance for a specified time, duration, and optional offset. ```swift init( id: Int, time: CMTime, duration: CMTime, offset: CMTime? = nil ) ``` -------------------------------- ### init(name:stereoRelation:edgeTreatment:controlPointInterpolation:leftControlPoints:rightControlPoints:edgeWidthInDegrees:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivedynamicmask/init%28name%3Astereorelation%3Aedgetreatment%3Acontrolpointinterpolation%3Aleftcontrolpoints%3Arightcontrolpoints%3Aedgewidthindegrees%3A%29 Initializes a new ImmersiveDynamicMask instance with specified geometric and stereo properties. ```APIDOC ## init(name:stereoRelation:edgeTreatment:controlPointInterpolation:leftControlPoints:rightControlPoints:edgeWidthInDegrees:) ### Description Initializes a new ImmersiveDynamicMask instance with the provided configuration parameters. ### Parameters - **name** (String) - The name of the mask. - **stereoRelation** (ImmersiveDynamicMask.StereoRelation) - The stereo relationship configuration. - **edgeTreatment** (ImmersiveDynamicMask.EdgeTreatment) - The edge treatment configuration. - **controlPointInterpolation** (ImmersiveDynamicMask.ControlPointInterpolation) - The interpolation method for control points. - **leftControlPoints** ([Point3DFloat]) - An array of 3D points for the left eye. - **rightControlPoints** ([Point3DFloat]) - An array of 3D points for the right eye. - **edgeWidthInDegrees** (Float) - The width of the edge in degrees. ### Request Example init( name: "MaskName", stereoRelation: .independent, edgeTreatment: .soft, controlPointInterpolation: .linear, leftControlPoints: [Point3DFloat(x: 0, y: 0, z: 0)], rightControlPoints: [Point3DFloat(x: 0, y: 0, z: 0)], edgeWidthInDegrees: 5.0 ) ``` -------------------------------- ### Declare ImmersiveImageMask Class Source: https://developer.apple.com/documentation/immersivemediasupport/immersiveimagemask Declares the ImmersiveImageMask class, available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 or 26.0. ```swift final class ImmersiveImageMask ``` -------------------------------- ### Accessing preferredVideoWidth in Swift Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender/preferredvideowidth Use this property to get or set the preferred video width. Setting the value to -1 delegates resolution selection to the system. ```Swift var preferredVideoWidth: Int { get set } ``` -------------------------------- ### ImmersiveDynamicMask.StereoRelation.separate Case Source: https://developer.apple.com/documentation/immersivemediasupport/immersivedynamicmask/stereorelation-swift.enum/separate Use this case to indicate that stereo content is not related. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4. ```swift case separate ``` -------------------------------- ### Configure NWParameters for Immersive Media Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender Sets up network parameters with TLS security and the required messaging protocol definition. ```swift func setupNWParameters() -> NWParameters { let tcpOptions = NWProtocolTCP.Options() let tls = /* setup TLS security options */ let ret = NWParameters(tls: tls, tcp: tcpOptions) let options = NWProtocolFramer.Options(ImmersiveMediaPreviewMessagingProtocol.definition) ret.defaultProtocolStack.applicationProtocols.insert(options, at: 0) return ret } ``` -------------------------------- ### Get Camera View Model Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/cameraviewmodel%28for%3A%29 Returns the camera view model for the given immersive camera identifier. Use this method to access camera-specific rendering information. ```swift final func cameraViewModel(for id: String) -> ImmersiveCameraViewModel? ``` -------------------------------- ### Initialize PresentationDescriptor Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptor/init%28duration%3Acommands%3A%29 Use this initializer to create a PresentationDescriptor with a specified duration and an array of commands. The duration and commands parameters are optional. ```swift init( duration: CMTime? = nil, commands: [PresentationCommand] = [] ) ``` -------------------------------- ### ImmersiveCameraMask.image(_:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameramask/image%28_%3A%29 Represents an image-based mask for immersive media. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS and visionOS). ```APIDOC ## ImmersiveCameraMask.image(_:) ### Description A value that defines an image based mask. ### Supported Platforms - iOS 26.4+ - iPadOS 26.4+ - Mac Catalyst 26.4+ - macOS 26.0+ - visionOS 26.0+ ### Case Definition ```swift case image(ImmersiveImageMask) ``` ``` -------------------------------- ### Initialize CameraTextureMapping Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameracalibration/cameratexturemapping/init%28left%3Aright%3A%29 Creates a new instance with optional identity matrix defaults for left and right camera mappings. ```swift init( left: matrix_float3x3 = matrix_identity_float3x3, right: matrix_float3x3 = matrix_identity_float3x3 ) ``` -------------------------------- ### ImmersiveCameraLensDefinition.Eye.left Case Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameralensdefinition/eye/left Represents the left eye for immersive media. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS/visionOS). ```swift case left ``` -------------------------------- ### VenueDescriptor Initialization Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor Methods for creating and initializing a VenueDescriptor instance. ```APIDOC ## VenueDescriptor Initialization ### Description Methods for creating and initializing a VenueDescriptor instance. ### Initializers `init(device: (any MTLDevice)?)` Creates an empty venue descriptor instance. `convenience init(aimeURL: URL, device: (any MTLDevice)?) async throws` Creates a venue descriptor instance from an AIME file. `init(aimeData: Data, device: (any MTLDevice)?) async throws` Creates a venue descriptor instance from memory. ``` -------------------------------- ### Initialize CameraOrigin Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameracalibration/cameraorigin/init%28left%3Aright%3A%29 Initializes a new CameraOrigin instance with specified left and right 3D points, defaulting to zero if not provided. ```swift init( left: Point3DFloat = .zero, right: Point3DFloat = .zero ) ``` -------------------------------- ### Get conversionResult Property Source: https://developer.apple.com/documentation/immersivemediasupport/parametricimmersiveassetinfo/conversionresult Access the result of a parametric immersive format conversion. This property returns an optional Result type, which can be either a CMFormatDescription on success or a ParametricImmersiveAssetInfo.Error on failure. ```swift var conversionResult: Result? { get } ``` -------------------------------- ### PresentationCommand.setCamera(_:) Source: https://developer.apple.com/documentation/immersivemediasupport/presentationcommand/setcamera%28_%3A%29 A value that represents a command that specifies the camera ID for a specific frame during playback. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from specific versions. ```APIDOC ## PresentationCommand.setCamera(_:) ### Description A value that represents a command that specifies the camera ID for a specific frame during playback. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Syntax ```swift case setCamera(SetCameraCommand) ``` ``` -------------------------------- ### Declare environmentFilename property Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameracalibration/environmentfilename Defines the optional String property used to specify the backdrop USDZ file. ```swift var environmentFilename: String? ``` -------------------------------- ### Compare ImmersiveVideoMask Instances Source: https://developer.apple.com/documentation/immersivemediasupport/immersivevideomask/%3D%3D%28_%3A_%3A%29 Use this operator to check if two ImmersiveVideoMask instances are identical. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4. ```swift static func == (lhs: ImmersiveVideoMask, rhs: ImmersiveVideoMask) -> Bool ``` -------------------------------- ### Initialize VenueDescriptor from AIME URL Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28device%3A%29 Creates a venue descriptor instance from an AIME file. This is a convenience initializer that supports asynchronous operations and device specification. ```swift convenience init(aimeURL: URL, device: (any MTLDevice)?) async throws ``` -------------------------------- ### Initialize PresentationDescriptor with Duration and Commands Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptor/init%28commands%3A%29 Creates an instance that contains the commands specified in the array, along with a duration. This initializer is useful for defining timed sequences of presentation commands. ```swift init(duration: CMTime?, commands: [PresentationCommand]) ``` -------------------------------- ### ImmersiveDynamicMask.EdgeTreatment.linear Case Source: https://developer.apple.com/documentation/immersivemediasupport/immersivedynamicmask/edgetreatment-swift.enum/linear This code defines the 'linear' case for ImmersiveDynamicMask.EdgeTreatment. It is available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS and visionOS). ```swift case linear ``` -------------------------------- ### ImmersiveCameraMask.dynamic(_:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameramask/dynamic%28_%3A%29 Represents a dynamically generated mask based on control points. This case is available on iOS, iPadOS, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS and visionOS). ```APIDOC ## ImmersiveCameraMask.dynamic(_:) ### Description A value that defines a control points based dynamically generated mask. ### Availability - iOS 26.4+ - iPadOS 26.4+ - Mac Catalyst 26.4+ - macOS 26.0+ - visionOS 26.0+ ### Case Definition ```swift case dynamic(ImmersiveDynamicMask) ``` ``` -------------------------------- ### VenueDescriptor Initializer Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28aimeurl%3Adevice%3A%29 Initializes a VenueDescriptor instance by loading data from a specified AIME file URL. Optionally, a Metal device can be provided for loading calibration meshes. ```APIDOC ## Initializer: init(aimeURL:device:) ### Description Creates a venue descriptor instance from an AIME file. ### Method `convenience init` ### Endpoint N/A (Initializer) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Parameters - **aimeURL** (URL) - Required - A URL that points to a valid AIME file to load. - **device** (any MTLDevice)? - Optional - The Metal device to use when loading calibration meshes into memory. ### Request Example None (Initializer) ### Response #### Success Response (200) VenueDescriptor instance #### Response Example None (Initializer) ``` -------------------------------- ### Accessing preferredFrameRate in Swift Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewsender/preferredframerate Use this property to get or set the frame rate. A value of -1 allows the system to automatically determine the optimal rate based on network conditions. ```swift var preferredFrameRate: Int { get set } ``` -------------------------------- ### Initialize VenueDescriptor Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28aimedata%3Adevice%3A%29 Creates a venue descriptor instance from memory using the provided data and an optional Metal device. ```swift init( aimeData: Data, device: (any MTLDevice)? = nil ) async throws ``` -------------------------------- ### ImmersiveVideoMask.Layout.sideBySide Source: https://developer.apple.com/documentation/immersivemediasupport/immersivevideomask/layout-swift.enum/sidebyside Represents a side-by-side mask layout for immersive video. This case is available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS and visionOS). ```APIDOC ## ImmersiveVideoMask.Layout.sideBySide ### Description A value that represents side by side mask layout. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Enumeration Case ```swift case sideBySide ``` ### See Also #### Enumeration Cases - `case mono`: A value that represents mono mask layout. - `case overUnder`: A value that represents over-under mask layout. - `case separate`: A value that represents stereo mask, but separated. ``` -------------------------------- ### PresentationDescriptorReader Initialization Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptorreader Initializes an instance of PresentationDescriptorReader with a given presentation descriptor and sideloading status. ```APIDOC ## `init(presentationDescriptor: PresentationDescriptor, isSideloaded: Bool)` ### Description Initializes an instance that contains the specified presentation descriptor. ### Parameters #### Path Parameters - **presentationDescriptor** (PresentationDescriptor) - Required - The presentation descriptor containing commands. - **isSideloaded** (Bool) - Required - Indicates if the reader input is sideloaded. ### Request Example ```json { "presentationDescriptor": { ... }, "isSideloaded": true } ``` ### Response Example ```json { "instance": "PresentationDescriptorReader" } ``` ``` -------------------------------- ### name Instance Property Source: https://developer.apple.com/documentation/immersivemediasupport/immersiveimagemask/name The 'name' property is a String that represents the name of the immersive media asset. It is available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from specific versions. ```APIDOC ## Instance Property: name ### Description Represents the name of the immersive media asset. ### Availability - iOS: 26.4+ - iPadOS: 26.4+ - Mac Catalyst: 26.4+ - macOS: 26.0+ - visionOS: 26.0+ ### Type `String` ### Declaration ```swift final let name: String ``` ``` -------------------------------- ### Get Current Color Fade Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptorreader/colorfade Retrieve the current fade color for video frames during playback. This property is read-only and reflects the fade color set for the last processed presentation timestamp. ```swift var colorFade: simd_float3 { get } ``` -------------------------------- ### Initialize Empty VenueDescriptor Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28aimeurl%3Adevice%3A%29 Creates an empty venue descriptor instance. ```swift init(device: (any MTLDevice)?) ``` -------------------------------- ### Initialize ImmersiveDynamicMask Source: https://developer.apple.com/documentation/immersivemediasupport/immersivedynamicmask/init%28name%3Astereorelation%3Aedgetreatment%3Acontrolpointinterpolation%3Aleftcontrolpoints%3Arightcontrolpoints%3Aedgewidthindegrees%3A%29 Use this initializer to create a custom ImmersiveDynamicMask. It requires defining stereo relationships, edge treatments, control point interpolation, and the geometric shape of the mask using control points for both left and right eyes, along with the edge width. ```swift init( name: String, stereoRelation: ImmersiveDynamicMask.StereoRelation, edgeTreatment: ImmersiveDynamicMask.EdgeTreatment, controlPointInterpolation: ImmersiveDynamicMask.ControlPointInterpolation, leftControlPoints: [Point3DFloat], rightControlPoints: [Point3DFloat], edgeWidthInDegrees: Float ) ``` -------------------------------- ### addCamera(_:) Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/addcamera%28_%3A%29 Adds a new immersive camera definition to the venue descriptor. This method is available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS and visionOS). ```APIDOC ## addCamera(_:) ### Description Adds a new immersive camera definition to the venue descriptor. ### Method `func addCamera(_ camera: ImmersiveCamera) throws` ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **camera** (ImmersiveCamera) - Required - The `ImmersiveCamera` information to add. ### Request Example ```json { "camera": { "id": "camera1", "calibrationData": "path/to/calibration.json", "maskData": "path/to/mask.png" } } ``` ### Response #### Success Response (200) This method does not return a value upon success. #### Response Example (No specific response body for success) ### Error Handling Throws an error if the `ImmersiveCamera` information points to invalid data; for example, invalid calibration or mask files. ``` -------------------------------- ### Initialize CameraOrigin Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameracalibration/cameraorigin Initializes a CameraOrigin with left and right eye position data. Requires Point3DFloat for both left and right eye coordinates. ```swift init(left: Point3DFloat, right: Point3DFloat) ``` -------------------------------- ### PresentationCommand.fadeEnvironment(_:) Source: https://developer.apple.com/documentation/immersivemediasupport/presentationcommand/fadeenvironment%28_%3A%29 Documentation for the fadeEnvironment case within the PresentationCommand enum. ```APIDOC ## PresentationCommand.fadeEnvironment(_:) ### Description A value that represents a command that adds fade-in and fade-out effects to backdrop transitions. ### Parameters - **FadeEnvironmentCommand** (object) - Required - The command configuration for the environment fade effect. ### Request Example ```swift case fadeEnvironment(FadeEnvironmentCommand) ``` ``` -------------------------------- ### Declare stereoRelation Property Source: https://developer.apple.com/documentation/immersivemediasupport/immersivedynamicmask/stereorelation-swift.property This property represents how the left eye mask relates to the right eye mask. Available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4. ```swift var stereoRelation: ImmersiveDynamicMask.StereoRelation ``` -------------------------------- ### Initializer: init(from:) Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameralensdefinition/init%28from%3A%29 Creates an ImmersiveCameraLensDefinition object from a ILPD data blob, which represents the JSON contents of an ILPD file. ```APIDOC ## Initializer: init(from:) ### Description Creates an `ImmersiveCameraLensDefinition` object from a ILPD data blob, basically the JSON contents of a ILPD file. ### Availability iOS 26.4+ | iPadOS 26.4+ | Mac Catalyst 26.4+ | macOS 26.0+ | visionOS 26.0+ ### Signature ```swift init(from data: Data) throws ``` ### Discussion Current page is init(from:) ``` -------------------------------- ### ImmersiveCameraViewModel - mask Property Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameraviewmodel/mask Provides access to the generated immersive video mask associated with the immersive camera view. Available on iOS, iPadOS, macOS, and visionOS starting from version 26.4 (or 26.0 for visionOS). ```APIDOC ## Instance Property: mask ### Description Generated immersive video mask associated with the immersive camera view. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Declaration ```swift var mask: ImmersiveVideoMask? { get } ``` ``` -------------------------------- ### VenueDescriptor Initializer Source: https://developer.apple.com/documentation/immersivemediasupport/venuedescriptor/init%28aimedata%3Adevice%3A%29 Initializes a VenueDescriptor instance from memory using provided data and an optional Metal device. ```APIDOC ## Initializer init(aimeData:device:) ### Description Creates a venue descriptor instance from memory. ### Method `init(aimeData: Data, device: (any MTLDevice)? = nil) async throws` ### Parameters #### Parameters - **aimeData** (Data) - The Data that contains the venue descriptor to parse. - **device** (any MTLDevice)? - Optional. The Metal device to use when loading calibration meshes into memory. ``` -------------------------------- ### textureMapping Instance Property Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameracalibration/texturemapping The textureMapping property defines the mapping of video frame sections to the camera calibration. It is available on iOS, iPadOS, macOS, and visionOS platforms starting from version 26.4 (or 26.0 for visionOS). ```APIDOC ## Instance Property: textureMapping ### Description Texture mapping that describes how each section of the video frame maps into the calibration. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Declaration ```swift var textureMapping: ImmersiveCameraCalibration.CameraTextureMapping ``` ``` -------------------------------- ### Initialize ImmersiveMediaRemotePreviewReceiver Source: https://developer.apple.com/documentation/immersivemediasupport/immersivemediaremotepreviewreceiver/init%28%29 Creates a new instance of the preview receiver. This method is asynchronous and may throw an error. ```swift init() async throws ``` -------------------------------- ### ImmersiveCameraLensDefinition.Eye.right Case Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameralensdefinition/eye/right This section describes the `right` case for `ImmersiveCameraLensDefinition.Eye`, which represents the right eye. It is available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS and visionOS). ```APIDOC ## ImmersiveCameraLensDefinition.Eye.right ### Description A value that represents the right eye. ### Availability - iOS 26.4+ - iPadOS 26.4+ - Mac Catalyst 26.4+ - macOS 26.0+ - visionOS 26.0+ ### Case ```swift case right ``` ``` -------------------------------- ### ImmersiveVideoMask.Layout.overUnder Case Source: https://developer.apple.com/documentation/immersivemediasupport/immersivevideomask/layout-swift.enum/overunder Details the ImmersiveVideoMask.Layout.overUnder enumeration case, which represents an over-under mask layout. This case is available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS and visionOS). ```APIDOC ## ImmersiveVideoMask.Layout.overUnder ### Description A value that represents over-under mask layout. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Code Example ```swift case overUnder ``` ### See Also #### Enumeration Cases - `case mono`: A value that represents mono mask layout. - `case separate`: A value that represents stereo mask, but separated. - `case sideBySide`: A value that represents side by side mask layout. ``` -------------------------------- ### Related Instance Properties Source: https://developer.apple.com/documentation/immersivemediasupport/presentationdescriptorreader/issideloaded Other instance properties available for Immersive Media Support. ```APIDOC ## See Also ### Instance Properties - `var cameraID: String?` The current camera ID string of the immersive camera to use when rendering playback for the PTS specified in the last call to the update method. - `var colorFade: simd_float3` The current fade color for color fading of the video frames during playback for the PTS specified in the last call to the update method. - `var colorFadeOpacity: Float` The current color fade opacity of the video frames during playback for the PTS specified in the last call to the update method. - `var environmentFadeOpacity: Float` The current opacity of the environment backdrops during playback for the PTS specified in the last call to the update method. - `var isShotFlopped: Bool` A Boolean value that indicates whether to horizontally flip the video frame for the PTS specified in the last call to the update method. - `var presentationCommands: [PresentationCommand]` The active presentation commands for the PTS specified in the last call to the update method. - `var presentationDescriptor: PresentationDescriptor` The presentation descriptor that contains the presentation commands to process. ``` -------------------------------- ### ImmersiveDynamicMask.StereoRelation Source: https://developer.apple.com/documentation/immersivemediasupport/immersivedynamicmask/stereorelation-swift.property The stereoRelation property represents how the left eye mask relates to the right eye mask. It is available on iOS, iPadOS, Mac Catalyst, macOS, and visionOS starting from version 26.4 (or 26.0 for macOS and visionOS). ```APIDOC ## Instance Property ### stereoRelation Represents how the left eye mask relates to the right eye mask. **Availability:** * iOS 26.4+ * iPadOS 26.4+ * Mac Catalyst 26.4+ * macOS 26.0+ * visionOS 26.0+ ```swift var stereoRelation: ImmersiveDynamicMask.StereoRelation ``` ``` -------------------------------- ### Initialize ImmersiveVideoMask Source: https://developer.apple.com/documentation/immersivemediasupport/immersivevideomask/init%28layout%3Aisinequirectangularprojection%3Atexture%3A%29 Use this initializer to create an immersive video mask object. Ensure the provided texture contains the mask data. ```swift init( layout: ImmersiveVideoMask.Layout, isInEquirectangularProjection: Bool, texture: any MTLTexture ) ``` -------------------------------- ### ImmersiveCameraViewModel - leftEye Property Source: https://developer.apple.com/documentation/immersivemediasupport/immersivecameraviewmodel/lefteye The leftEye property provides access to the left eye mesh associated with the immersive camera view. It is available on iOS, iPadOS, macOS, and visionOS starting from version 26.4 (or 26.0 for visionOS). ```APIDOC ## Instance Property: leftEye ### Description Left eye mesh associated with the immersive camera view. ### Availability iOS 26.4+ iPadOS 26.4+ Mac Catalyst 26.4+ macOS 26.0+ visionOS 26.0+ ### Declaration ```swift var leftEye: MDLMesh { get } ``` ### See Also - `cameraID`: The camera identifier string of the Immersive camera associated with this view model. - `environmentBackdrop`: The environment backdrop associated with the immersive camera view. - `mask`: Generated immersive video mask associated with the immersive camera view. - `rightEye`: Right eye mesh associated with the immersive camera view. ``` -------------------------------- ### Initialize ImmersiveVideoFrame Source: https://developer.apple.com/documentation/immersivemediasupport/immersivevideoframe/init%28pixelbuffer%3Apresentationtime%3Alayout%3A%29 Use this initializer to create a video frame with a pixel buffer, presentation time, and an optional layout. The layout specifies how left and right eye views are packed. ```swift init( pixelBuffer: CVPixelBuffer, presentationTime: CMTime, layout: ImmersiveVideoFrame.VideoLayout = .sideBySide ) ```