Build Information
Failed to build OpenImmersive, reference main (670e0b), with Swift 6.4 for macOS (SPM) on 9 Oct 2026 06:32:23 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/acuteimmersive/openimmersivelib.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/acuteimmersive/openimmersivelib
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 670e0bc Merge pull request #34 from rdotrifork/bugfix/fix-field-of-view
Cloned https://github.com/acuteimmersive/openimmersivelib.git
Revision (git rev-parse @):
670e0bc6701095d0b2aa5b80d0b8258763b57632
SUCCESS checkout https://github.com/acuteimmersive/openimmersivelib.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/acuteimmersive/openimmersivelib.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 66]
[Planning deferred tasks]
[19 / 28]
[20 / 29] OpenImmersive
[31 / 137]
[37 / 137]
[45 / 137]
[47 / 137]
[48 / 137]
[54 / 137]
[56 / 137]
[60 / 137]
[66 / 137]
[69 / 137]
[71 / 137]
[72 / 137]
[84 / 137]
[90 / 137]
[92 / 137]
[97 / 137]
[101 / 137]
[108 / 137]
[109 / 137]
[111 / 137]
[115 / 137]
[117 / 137]
error: SwiftCompile normal arm64 failed with a nonzero exit code. Command line: cd /Users/admin/builder
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:36:27: [1;31merror: [1;39m'ARKitSession' is only available in macOS 26.0 or newer[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Provides a convenience interface to obtain head pose transforms and subscribing a closure to handle pose update events.
[0;36m13 |[0;0m public class HeadTracker {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m14 |[0;0m public enum State {
[0;36m15 |[0;0m /// Head tracking is stopped.
[0;36m:[0;0m
[0;36m34 |[0;0m }
[0;36m35 |[0;0m
[0;36m36 |[0;0m private let session = ARKitSession()
[0;36m|[0;0m `- [1;31merror: [1;39m'ARKitSession' is only available in macOS 26.0 or newer[0;0m
[0;36m37 |[0;0m private let worldTracking = WorldTrackingProvider()
[0;36m38 |[0;0m private var subscription: EventSubscription?
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:36:27: [1;31merror: [1;39m'init()' is unavailable in macOS[0;0m
[0;36m34 |[0;0m }
[0;36m35 |[0;0m
[0;36m36 |[0;0m private let session = [4;39mARKitSession[0;0m()
[0;36m|[0;0m `- [1;31merror: [1;39m'init()' is unavailable in macOS[0;0m
[0;36m37 |[0;0m private let worldTracking = WorldTrackingProvider()
[0;36m38 |[0;0m private var subscription: EventSubscription?
ARKit.ARKitSession.init:3:22: [1;39mnote: [1;39m'init()' has been explicitly marked unavailable here[0;0m
[0;36m1 |[0;0m class ARKitSession {
[0;36m2 |[0;0m @available(macOS, unavailable)
[0;36m3 |[0;0m public convenience init()}
[0;36m|[0;0m `- [1;39mnote: [1;39m'init()' has been explicitly marked unavailable here[0;0m
[0;36m4 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:37:33: [1;31merror: [1;39m'WorldTrackingProvider' is only available in macOS 26.0 or newer[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Provides a convenience interface to obtain head pose transforms and subscribing a closure to handle pose update events.
[0;36m13 |[0;0m public class HeadTracker {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m14 |[0;0m public enum State {
[0;36m15 |[0;0m /// Head tracking is stopped.
[0;36m:[0;0m
[0;36m35 |[0;0m
[0;36m36 |[0;0m private let session = ARKitSession()
[0;36m37 |[0;0m private let worldTracking = WorldTrackingProvider()
[0;36m|[0;0m `- [1;31merror: [1;39m'WorldTrackingProvider' is only available in macOS 26.0 or newer[0;0m
[0;36m38 |[0;0m private var subscription: EventSubscription?
[0;36m39 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:38:31: [1;31merror: [1;39m'EventSubscription' is only available in macOS 15.0 or newer[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Provides a convenience interface to obtain head pose transforms and subscribing a closure to handle pose update events.
[0;36m13 |[0;0m public class HeadTracker {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m14 |[0;0m public enum State {
[0;36m15 |[0;0m /// Head tracking is stopped.
[0;36m:[0;0m
[0;36m36 |[0;0m private let session = ARKitSession()
[0;36m37 |[0;0m private let worldTracking = WorldTrackingProvider()
[0;36m38 |[0;0m private var subscription: EventSubscription?
[0;36m|[0;0m `- [1;31merror: [1;39m'EventSubscription' is only available in macOS 15.0 or newer[0;0m
[0;36m39 |[0;0m
[0;36m40 |[0;0m /// Starts head tracking by starting the underlying `ARKitSession` and subscribes to pose update events.
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift:44:32: [1;31merror: [1;39mcannot find type 'RealityViewContent' in scope[0;0m
[0;36m42 |[0;0m /// - content: The `RealityViewContent` provided by the `RealityView`'s `body` closure.
[0;36m43 |[0;0m /// - handler: A closure that runs when the head pose update occurs.
[0;36m44 |[0;0m public func start(content: [4;39mRealityViewContent[0;0m, _ handler: @escaping (SceneEvents.Update) -> Void) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'RealityViewContent' in scope[0;0m
[0;36m45 |[0;0m guard state == .stopped else { return }
[0;36m46 |[0;0m state = .starting
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:13:2: [1;31merror: [1;39m'Observable()' is only available in macOS 14.0 or newer[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;31merror: [1;39m'Observable()' is only available in macOS 14.0 or newer[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:19:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'injector' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m17 |[0;0m public let player = AVPlayer()
[0;36m18 |[0;0m /// The APMP tag injector used in video streams that are frame-packed side by side or over under.
[0;36m19 |[0;0m private var injector: APMPInjector?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m20 |[0;0m /// The video renderer to use for media that are frame-packed side by side or over under.
[0;36m21 |[0;0m public var renderer: AVSampleBufferVideoRenderer? {
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:27:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'title' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m25 |[0;0m //MARK: Variables accessible to the UI
[0;36m26 |[0;0m /// The title of the current video (empty string if none).
[0;36m27 |[0;0m private(set) public var title: String = ""
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m28 |[0;0m /// A short description of the current video, displayed under the title (empty string if none).
[0;36m29 |[0;0m private(set) public var description: String = ""
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:29:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'description' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m27 |[0;0m private(set) public var title: String = ""
[0;36m28 |[0;0m /// A short description of the current video, displayed under the title (empty string if none).
[0;36m29 |[0;0m private(set) public var description: String = ""
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m30 |[0;0m /// The url of the current video.
[0;36m31 |[0;0m private(set) public var url: URL?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:31:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'url' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m29 |[0;0m private(set) public var description: String = ""
[0;36m30 |[0;0m /// The url of the current video.
[0;36m31 |[0;0m private(set) public var url: URL?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m32 |[0;0m /// The AVFoundation metadata of the current video.
[0;36m33 |[0;0m private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:33:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'metadata' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m31 |[0;0m private(set) public var url: URL?
[0;36m32 |[0;0m /// The AVFoundation metadata of the current video.
[0;36m33 |[0;0m private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m34 |[0;0m /// The frame packing type of the video media, if any.
[0;36m35 |[0;0m private(set) public var framePacking: VideoItem.FramePacking = .none
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:35:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'framePacking' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m33 |[0;0m private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
[0;36m34 |[0;0m /// The frame packing type of the video media, if any.
[0;36m35 |[0;0m private(set) public var framePacking: VideoItem.FramePacking = .none
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m36 |[0;0m /// The projection type of the video media, defaults to VR180.
[0;36m37 |[0;0m private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:37:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'projection' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m35 |[0;0m private(set) public var framePacking: VideoItem.FramePacking = .none
[0;36m36 |[0;0m /// The projection type of the video media, defaults to VR180.
[0;36m37 |[0;0m private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m38 |[0;0m /// A playback error, if any.
[0;36m39 |[0;0m private(set) public var error: Error?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:39:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'error' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m37 |[0;0m private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
[0;36m38 |[0;0m /// A playback error, if any.
[0;36m39 |[0;0m private(set) public var error: Error?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m40 |[0;0m /// The duration in seconds of the current video (0 if none).
[0;36m41 |[0;0m private(set) public var duration: Double = 0
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:41:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'duration' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m39 |[0;0m private(set) public var error: Error?
[0;36m40 |[0;0m /// The duration in seconds of the current video (0 if none).
[0;36m41 |[0;0m private(set) public var duration: Double = 0
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m42 |[0;0m /// `true` if playback is currently paused, or if playback has completed.
[0;36m43 |[0;0m private(set) public var paused: Bool = false
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:43:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'paused' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m41 |[0;0m private(set) public var duration: Double = 0
[0;36m42 |[0;0m /// `true` if playback is currently paused, or if playback has completed.
[0;36m43 |[0;0m private(set) public var paused: Bool = false
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m44 |[0;0m /// `true` if playback is waiting to load the media.
[0;36m45 |[0;0m private(set) public var loading: Bool = false
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:45:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'loading' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m43 |[0;0m private(set) public var paused: Bool = false
[0;36m44 |[0;0m /// `true` if playback is waiting to load the media.
[0;36m45 |[0;0m private(set) public var loading: Bool = false
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m46 |[0;0m /// `true` if playback is temporarily interrupted due to buffering (HLS only).
[0;36m47 |[0;0m private(set) public var buffering: Bool = false
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:47:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'buffering' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m45 |[0;0m private(set) public var loading: Bool = false
[0;36m46 |[0;0m /// `true` if playback is temporarily interrupted due to buffering (HLS only).
[0;36m47 |[0;0m private(set) public var buffering: Bool = false
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m48 |[0;0m /// `true` if playback reached the end of the video and is no longer playing.
[0;36m49 |[0;0m private(set) public var hasReachedEnd: Bool = false
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:49:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'hasReachedEnd' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m47 |[0;0m private(set) public var buffering: Bool = false
[0;36m48 |[0;0m /// `true` if playback reached the end of the video and is no longer playing.
[0;36m49 |[0;0m private(set) public var hasReachedEnd: Bool = false
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m50 |[0;0m /// The callback to execute when playback reaches the end of the video.
[0;36m51 |[0;0m public var playbackEndedAction: CustomAction?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:51:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'playbackEndedAction' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m49 |[0;0m private(set) public var hasReachedEnd: Bool = false
[0;36m50 |[0;0m /// The callback to execute when playback reaches the end of the video.
[0;36m51 |[0;0m public var playbackEndedAction: CustomAction?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m52 |[0;0m /// The aspect ratio of the current media (width / height) (equirectangular projection only).
[0;36m53 |[0;0m private(set) public var aspectRatio: Float?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:53:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'aspectRatio' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m51 |[0;0m public var playbackEndedAction: CustomAction?
[0;36m52 |[0;0m /// The aspect ratio of the current media (width / height) (equirectangular projection only).
[0;36m53 |[0;0m private(set) public var aspectRatio: Float?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m54 |[0;0m /// The horizontal field of view for the current media (equirectangular projection only).
[0;36m55 |[0;0m private(set) public var horizontalFieldOfView: Float = 180.0
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:55:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'horizontalFieldOfView' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m53 |[0;0m private(set) public var aspectRatio: Float?
[0;36m54 |[0;0m /// The horizontal field of view for the current media (equirectangular projection only).
[0;36m55 |[0;0m private(set) public var horizontalFieldOfView: Float = 180.0
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m56 |[0;0m /// The vertical field of view for the current media (equirectangular projection only).
[0;36m57 |[0;0m public var verticalFieldOfView: Float {
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:66:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'bitrate' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m64 |[0;0m }
[0;36m65 |[0;0m /// The bitrate of the current video stream (0 if none), only available if streaming from a HLS server (m3u8).
[0;36m66 |[0;0m private(set) public var bitrate: Double = 0
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m67 |[0;0m /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
[0;36m68 |[0;0m private(set) public var bitrateLadder: [BitrateRung] = []
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:68:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'bitrateLadder' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m66 |[0;0m private(set) public var bitrate: Double = 0
[0;36m67 |[0;0m /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
[0;36m68 |[0;0m private(set) public var bitrateLadder: [BitrateRung] = []
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m69 |[0;0m /// The currently selected bitrate rung index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m70 |[0;0m private(set) public var selectedBitrateRungIndex: Int = -1
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:70:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'selectedBitrateRungIndex' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m68 |[0;0m private(set) public var bitrateLadder: [BitrateRung] = []
[0;36m69 |[0;0m /// The currently selected bitrate rung index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m70 |[0;0m private(set) public var selectedBitrateRungIndex: Int = -1
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m71 |[0;0m /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
[0;36m72 |[0;0m private(set) public var audioOptions: [AudioOption] = []
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:72:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'audioOptions' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m70 |[0;0m private(set) public var selectedBitrateRungIndex: Int = -1
[0;36m71 |[0;0m /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
[0;36m72 |[0;0m private(set) public var audioOptions: [AudioOption] = []
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m73 |[0;0m /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m74 |[0;0m private(set) public var selectedAudioIndex: Int = -1
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:74:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'selectedAudioIndex' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m72 |[0;0m private(set) public var audioOptions: [AudioOption] = []
[0;36m73 |[0;0m /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m74 |[0;0m private(set) public var selectedAudioIndex: Int = -1
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m75 |[0;0m /// `true` if the control panel should be visible to the user.
[0;36m76 |[0;0m private(set) public var shouldShowControlPanel: Bool = true
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:76:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'shouldShowControlPanel' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m74 |[0;0m private(set) public var selectedAudioIndex: Int = -1
[0;36m75 |[0;0m /// `true` if the control panel should be visible to the user.
[0;36m76 |[0;0m private(set) public var shouldShowControlPanel: Bool = true
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m77 |[0;0m /// `true` if the control panel should present resolution & audio options to the user.
[0;36m78 |[0;0m private(set) public var shouldShowPlaybackOptions: Bool = false
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:78:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'shouldShowPlaybackOptions' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m76 |[0;0m private(set) public var shouldShowControlPanel: Bool = true
[0;36m77 |[0;0m /// `true` if the control panel should present resolution & audio options to the user.
[0;36m78 |[0;0m private(set) public var shouldShowPlaybackOptions: Bool = false
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m79 |[0;0m /// `true` if the HLS stream has a bitrate ladder with at least 2 rungs and the custom configuration doesn't prevent user selection.
[0;36m80 |[0;0m public var canChooseResolution: Bool {
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:99:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'currentTime' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m97 |[0;0m ///
[0;36m98 |[0;0m /// This variable is updated by video playback but can be overwritten by a scrubber, in conjunction with `scrubState`.
[0;36m99 |[0;0m public var currentTime: Double = 0
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m100 |[0;0m public enum ScrubState {
[0;36m101 |[0;0m /// The scrubber is not active and reflects the video's current playback time.
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:109:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'scrubState' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m107 |[0;0m }
[0;36m108 |[0;0m /// The current state of the scrubber.
[0;36m109 |[0;0m public var scrubState: ScrubState = .notScrubbing {
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m110 |[0;0m didSet {
[0;36m111 |[0;0m switch scrubState {
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:133:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'displayLink' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m131 |[0;0m
[0;36m132 |[0;0m //MARK: Private variables
[0;36m133 |[0;0m private var displayLink: CADisplayLink?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m135 |[0;0m private var timeObserver: Any?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:134:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'videoOutput' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m132 |[0;0m //MARK: Private variables
[0;36m133 |[0;0m private var displayLink: CADisplayLink?
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m135 |[0;0m private var timeObserver: Any?
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:135:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'timeObserver' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m133 |[0;0m private var displayLink: CADisplayLink?
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m135 |[0;0m private var timeObserver: Any?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:136:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'durationObserver' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m135 |[0;0m private var timeObserver: Any?
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:137:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'mediaStatusObserver' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m135 |[0;0m private var timeObserver: Any?
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:138:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'bufferingObserver' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
[0;36m140 |[0;0m private var playlistReader: PlaylistReader?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:139:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'dismissControlPanelTask' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m140 |[0;0m private var playlistReader: PlaylistReader?
[0;36m141 |[0;0m private var delegate: PlaylistLoaderDelegate?
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:140:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'playlistReader' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
[0;36m140 |[0;0m private var playlistReader: PlaylistReader?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m141 |[0;0m private var delegate: PlaylistLoaderDelegate?
[0;36m142 |[0;0m
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:141:5: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on property 'delegate' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
[0;36m140 |[0;0m private var playlistReader: PlaylistReader?
[0;36m141 |[0;0m private var delegate: PlaylistLoaderDelegate?
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationTracked
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationTracked()' is only available in macOS 14.0 or newer[0;0m
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m142 |[0;0m
[0;36m143 |[0;0m //MARK: Public methods
macro expansion @Observable:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:639:1: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m [4;39m@Observable[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on class 'VideoPlayer' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m637 |[0;0m dismissControlPanelTask = nil
[0;36m638 |[0;0m }
[0;36m639 |[0;0m }
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m [0;36m1 |[0;0m @ObservationIgnored private let _$observationRegistrar = Observation.ObservationRegistrar()
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m [0;36m2 |[0;0m
[0;36m |[0;0m [0;36m3 |[0;0m internal nonisolated func access<$s13OpenImmersive11VideoPlayer10ObservablefMm_6MemberfMu_>(
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m640 |[0;0m
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:19:40: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m17 |[0;0m public let player = AVPlayer()
[0;36m18 |[0;0m /// The APMP tag injector used in video streams that are frame-packed side by side or over under.
[0;36m19 |[0;0m private var injector: APMPInjector?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The APMP tag injector used in video streams that are frame-packed side by side or over under.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _injector: APMPInjector?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m20 |[0;0m /// The video renderer to use for media that are frame-packed side by side or over under.
[0;36m21 |[0;0m public var renderer: AVSampleBufferVideoRenderer? {
macro expansion @ObservationTracked:4:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:27:47: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m25 |[0;0m //MARK: Variables accessible to the UI
[0;36m26 |[0;0m /// The title of the current video (empty string if none).
[0;36m27 |[0;0m private(set) public var title: String = ""
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m /// The title of the current video (empty string if none).
[0;36m |[0;0m[0;36m3 |[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m5 |[0;0m private var _title: String = ""
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m28 |[0;0m /// A short description of the current video, displayed under the title (empty string if none).
[0;36m29 |[0;0m private(set) public var description: String = ""
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:29:53: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m27 |[0;0m private(set) public var title: String = ""
[0;36m28 |[0;0m /// A short description of the current video, displayed under the title (empty string if none).
[0;36m29 |[0;0m private(set) public var description: String = ""
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// A short description of the current video, displayed under the title (empty string if none).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _description: String = ""
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m30 |[0;0m /// The url of the current video.
[0;36m31 |[0;0m private(set) public var url: URL?
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:31:38: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m29 |[0;0m private(set) public var description: String = ""
[0;36m30 |[0;0m /// The url of the current video.
[0;36m31 |[0;0m private(set) public var url: URL?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The url of the current video.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _url: URL?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m32 |[0;0m /// The AVFoundation metadata of the current video.
[0;36m33 |[0;0m private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:33:75: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m31 |[0;0m private(set) public var url: URL?
[0;36m32 |[0;0m /// The AVFoundation metadata of the current video.
[0;36m33 |[0;0m private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The AVFoundation metadata of the current video.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _metadata: [AVMetadataIdentifier: String] = [:]
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m34 |[0;0m /// The frame packing type of the video media, if any.
[0;36m35 |[0;0m private(set) public var framePacking: VideoItem.FramePacking = .none
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:35:73: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m33 |[0;0m private(set) public var metadata: [AVMetadataIdentifier: String] = [:]
[0;36m34 |[0;0m /// The frame packing type of the video media, if any.
[0;36m35 |[0;0m private(set) public var framePacking: VideoItem.FramePacking = .none
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The frame packing type of the video media, if any.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _framePacking: VideoItem.FramePacking = .none
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m36 |[0;0m /// The projection type of the video media, defaults to VR180.
[0;36m37 |[0;0m private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:37:98: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m35 |[0;0m private(set) public var framePacking: VideoItem.FramePacking = .none
[0;36m36 |[0;0m /// The projection type of the video media, defaults to VR180.
[0;36m37 |[0;0m private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The projection type of the video media, defaults to VR180.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m38 |[0;0m /// A playback error, if any.
[0;36m39 |[0;0m private(set) public var error: Error?
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:39:42: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m37 |[0;0m private(set) public var projection: VideoItem.Projection = .equirectangular(fieldOfView: 180)
[0;36m38 |[0;0m /// A playback error, if any.
[0;36m39 |[0;0m private(set) public var error: Error?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// A playback error, if any.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _error: Error?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m40 |[0;0m /// The duration in seconds of the current video (0 if none).
[0;36m41 |[0;0m private(set) public var duration: Double = 0
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:41:49: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m39 |[0;0m private(set) public var error: Error?
[0;36m40 |[0;0m /// The duration in seconds of the current video (0 if none).
[0;36m41 |[0;0m private(set) public var duration: Double = 0
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The duration in seconds of the current video (0 if none).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _duration: Double = 0
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m42 |[0;0m /// `true` if playback is currently paused, or if playback has completed.
[0;36m43 |[0;0m private(set) public var paused: Bool = false
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:43:49: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m41 |[0;0m private(set) public var duration: Double = 0
[0;36m42 |[0;0m /// `true` if playback is currently paused, or if playback has completed.
[0;36m43 |[0;0m private(set) public var paused: Bool = false
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// `true` if playback is currently paused, or if playback has completed.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _paused: Bool = false
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m44 |[0;0m /// `true` if playback is waiting to load the media.
[0;36m45 |[0;0m private(set) public var loading: Bool = false
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:45:50: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m43 |[0;0m private(set) public var paused: Bool = false
[0;36m44 |[0;0m /// `true` if playback is waiting to load the media.
[0;36m45 |[0;0m private(set) public var loading: Bool = false
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// `true` if playback is waiting to load the media.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _loading: Bool = false
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m46 |[0;0m /// `true` if playback is temporarily interrupted due to buffering (HLS only).
[0;36m47 |[0;0m private(set) public var buffering: Bool = false
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:47:52: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m45 |[0;0m private(set) public var loading: Bool = false
[0;36m46 |[0;0m /// `true` if playback is temporarily interrupted due to buffering (HLS only).
[0;36m47 |[0;0m private(set) public var buffering: Bool = false
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// `true` if playback is temporarily interrupted due to buffering (HLS only).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _buffering: Bool = false
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m48 |[0;0m /// `true` if playback reached the end of the video and is no longer playing.
[0;36m49 |[0;0m private(set) public var hasReachedEnd: Bool = false
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:49:56: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m47 |[0;0m private(set) public var buffering: Bool = false
[0;36m48 |[0;0m /// `true` if playback reached the end of the video and is no longer playing.
[0;36m49 |[0;0m private(set) public var hasReachedEnd: Bool = false
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// `true` if playback reached the end of the video and is no longer playing.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _hasReachedEnd: Bool = false
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m50 |[0;0m /// The callback to execute when playback reaches the end of the video.
[0;36m51 |[0;0m public var playbackEndedAction: CustomAction?
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:51:50: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m49 |[0;0m private(set) public var hasReachedEnd: Bool = false
[0;36m50 |[0;0m /// The callback to execute when playback reaches the end of the video.
[0;36m51 |[0;0m public var playbackEndedAction: CustomAction?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The callback to execute when playback reaches the end of the video.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _playbackEndedAction: CustomAction?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m52 |[0;0m /// The aspect ratio of the current media (width / height) (equirectangular projection only).
[0;36m53 |[0;0m private(set) public var aspectRatio: Float?
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:53:48: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m51 |[0;0m public var playbackEndedAction: CustomAction?
[0;36m52 |[0;0m /// The aspect ratio of the current media (width / height) (equirectangular projection only).
[0;36m53 |[0;0m private(set) public var aspectRatio: Float?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The aspect ratio of the current media (width / height) (equirectangular projection only).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _aspectRatio: Float?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m54 |[0;0m /// The horizontal field of view for the current media (equirectangular projection only).
[0;36m55 |[0;0m private(set) public var horizontalFieldOfView: Float = 180.0
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:55:65: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m53 |[0;0m private(set) public var aspectRatio: Float?
[0;36m54 |[0;0m /// The horizontal field of view for the current media (equirectangular projection only).
[0;36m55 |[0;0m private(set) public var horizontalFieldOfView: Float = 180.0
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The horizontal field of view for the current media (equirectangular projection only).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _horizontalFieldOfView: Float = 180.0
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m56 |[0;0m /// The vertical field of view for the current media (equirectangular projection only).
[0;36m57 |[0;0m public var verticalFieldOfView: Float {
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:66:48: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m64 |[0;0m }
[0;36m65 |[0;0m /// The bitrate of the current video stream (0 if none), only available if streaming from a HLS server (m3u8).
[0;36m66 |[0;0m private(set) public var bitrate: Double = 0
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The bitrate of the current video stream (0 if none), only available if streaming from a HLS server (m3u8).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _bitrate: Double = 0
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m67 |[0;0m /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
[0;36m68 |[0;0m private(set) public var bitrateLadder: [BitrateRung] = []
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:68:62: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m66 |[0;0m private(set) public var bitrate: Double = 0
[0;36m67 |[0;0m /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
[0;36m68 |[0;0m private(set) public var bitrateLadder: [BitrateRung] = []
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// Bitrate/resolution ladder available for the video stream, only available if streaming from a HLS server (m3u8).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _bitrateLadder: [BitrateRung] = []
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m69 |[0;0m /// The currently selected bitrate rung index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m70 |[0;0m private(set) public var selectedBitrateRungIndex: Int = -1
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:70:63: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m68 |[0;0m private(set) public var bitrateLadder: [BitrateRung] = []
[0;36m69 |[0;0m /// The currently selected bitrate rung index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m70 |[0;0m private(set) public var selectedBitrateRungIndex: Int = -1
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The currently selected bitrate rung index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _selectedBitrateRungIndex: Int = -1
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m71 |[0;0m /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
[0;36m72 |[0;0m private(set) public var audioOptions: [AudioOption] = []
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:72:61: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m70 |[0;0m private(set) public var selectedBitrateRungIndex: Int = -1
[0;36m71 |[0;0m /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
[0;36m72 |[0;0m private(set) public var audioOptions: [AudioOption] = []
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _audioOptions: [AudioOption] = []
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m73 |[0;0m /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m74 |[0;0m private(set) public var selectedAudioIndex: Int = -1
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:74:57: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m72 |[0;0m private(set) public var audioOptions: [AudioOption] = []
[0;36m73 |[0;0m /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m74 |[0;0m private(set) public var selectedAudioIndex: Int = -1
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _selectedAudioIndex: Int = -1
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m75 |[0;0m /// `true` if the control panel should be visible to the user.
[0;36m76 |[0;0m private(set) public var shouldShowControlPanel: Bool = true
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:76:64: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m74 |[0;0m private(set) public var selectedAudioIndex: Int = -1
[0;36m75 |[0;0m /// `true` if the control panel should be visible to the user.
[0;36m76 |[0;0m private(set) public var shouldShowControlPanel: Bool = true
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// `true` if the control panel should be visible to the user.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _shouldShowControlPanel: Bool = true
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m77 |[0;0m /// `true` if the control panel should present resolution & audio options to the user.
[0;36m78 |[0;0m private(set) public var shouldShowPlaybackOptions: Bool = false
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:78:68: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m76 |[0;0m private(set) public var shouldShowControlPanel: Bool = true
[0;36m77 |[0;0m /// `true` if the control panel should present resolution & audio options to the user.
[0;36m78 |[0;0m private(set) public var shouldShowPlaybackOptions: Bool = false
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m /// `true` if the control panel should present resolution & audio options to the user.
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _shouldShowPlaybackOptions: Bool = false
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m79 |[0;0m /// `true` if the HLS stream has a bitrate ladder with at least 2 rungs and the custom configuration doesn't prevent user selection.
[0;36m80 |[0;0m public var canChooseResolution: Bool {
macro expansion @ObservationTracked:5:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:99:39: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m97 |[0;0m ///
[0;36m98 |[0;0m /// This variable is updated by video playback but can be overwritten by a scrubber, in conjunction with `scrubState`.
[0;36m99 |[0;0m public var currentTime: Double = 0
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m /// This variable is updated by video playback but can be overwritten by a scrubber, in conjunction with `scrubState`.
[0;36m |[0;0m[0;36m4 |[0;0m
[0;36m |[0;0m[0;36m5 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m6 |[0;0m private var _currentTime: Double = 0
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m100 |[0;0m public enum ScrubState {
[0;36m101 |[0;0m /// The scrubber is not active and reflects the video's current playback time.
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:130:6: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m128 |[0;0m }
[0;36m129 |[0;0m }
[0;36m130 |[0;0m }
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m [0;36m1 |[0;0m /// The current state of the scrubber.
[0;36m |[0;0m [0;36m2 |[0;0m
[0;36m |[0;0m [0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m [0;36m4 |[0;0m private var _scrubState: ScrubState = .notScrubbing {
[0;36m |[0;0m [0;36m5 |[0;0m
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m131 |[0;0m
[0;36m132 |[0;0m //MARK: Private variables
macro expansion @ObservationTracked:3:6: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:133:44: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m131 |[0;0m
[0;36m132 |[0;0m //MARK: Private variables
[0;36m133 |[0;0m private var displayLink: CADisplayLink?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m //MARK: Private variables
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m4 |[0;0m private var _displayLink: CADisplayLink?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m135 |[0;0m private var timeObserver: Any?
macro expansion @ObservationTracked:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:134:54: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m132 |[0;0m //MARK: Private variables
[0;36m133 |[0;0m private var displayLink: CADisplayLink?
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m private var _videoOutput: AVPlayerItemVideoOutput?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m135 |[0;0m private var timeObserver: Any?
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
macro expansion @ObservationTracked:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:135:35: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m133 |[0;0m private var displayLink: CADisplayLink?
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m135 |[0;0m private var timeObserver: Any?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m private var _timeObserver: Any?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
macro expansion @ObservationTracked:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:136:57: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m135 |[0;0m private var timeObserver: Any?
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m private var _durationObserver: NSKeyValueObservation?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
macro expansion @ObservationTracked:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:137:60: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m135 |[0;0m private var timeObserver: Any?
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m private var _mediaStatusObserver: NSKeyValueObservation?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
macro expansion @ObservationTracked:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:138:58: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m136 |[0;0m private var durationObserver: NSKeyValueObservation?
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m private var _bufferingObserver: NSKeyValueObservation?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
[0;36m140 |[0;0m private var playlistReader: PlaylistReader?
macro expansion @ObservationTracked:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:139:60: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m137 |[0;0m private var mediaStatusObserver: NSKeyValueObservation?
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m private var _dismissControlPanelTask: Task<Void, Never>?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m140 |[0;0m private var playlistReader: PlaylistReader?
[0;36m141 |[0;0m private var delegate: PlaylistLoaderDelegate?
macro expansion @ObservationTracked:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:140:48: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m138 |[0;0m private var bufferingObserver: NSKeyValueObservation?
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
[0;36m140 |[0;0m private var playlistReader: PlaylistReader?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m private var _playlistReader: PlaylistReader?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m141 |[0;0m private var delegate: PlaylistLoaderDelegate?
[0;36m142 |[0;0m
macro expansion @ObservationTracked:1:2: [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:141:50: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m139 |[0;0m private var dismissControlPanelTask: Task<Void, Never>?
[0;36m140 |[0;0m private var playlistReader: PlaylistReader?
[0;36m141 |[0;0m private var delegate: PlaylistLoaderDelegate?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m1 |[0;0m @ObservationIgnored
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationIgnored()' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m private var _delegate: PlaylistLoaderDelegate?
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m142 |[0;0m
[0;36m143 |[0;0m //MARK: Public methods
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:21:26: [1;31merror: [1;39m'AVSampleBufferVideoRenderer' is only available in macOS 14.0 or newer[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m19 |[0;0m private var injector: APMPInjector?
[0;36m20 |[0;0m /// The video renderer to use for media that are frame-packed side by side or over under.
[0;36m21 |[0;0m public var renderer: AVSampleBufferVideoRenderer? {
[0;36m|[0;0m | `- [1;31merror: [1;39m'AVSampleBufferVideoRenderer' is only available in macOS 14.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing property[0;0m
[0;36m22 |[0;0m injector?.renderer
[0;36m23 |[0;0m }
OpenImmersive/VideoPlayer.swift:123:36: [1;33mwarning: [1;39mmain actor-isolated property 'renderer' can not be referenced from a Sendable closure[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:130:6: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m19 |[0;0m private var injector: APMPInjector?
[0;36m20 |[0;0m /// The video renderer to use for media that are frame-packed side by side or over under.
[0;36m21 |[0;0m public var renderer: AVSampleBufferVideoRenderer? {
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m22 |[0;0m injector?.renderer
[0;36m23 |[0;0m }
[0;36m:[0;0m
[0;36m128 |[0;0m }
[0;36m129 |[0;0m }
[0;36m130 |[0;0m }
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m18 |[0;0m return
[0;36m |[0;0m[0;36m19 |[0;0m }
[0;36m |[0;0m[0;36m20 |[0;0m self?.renderer?.flush()
[0;36m |[0;0m [0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'renderer' can not be referenced from a Sendable closure[0;0m
[0;36m |[0;0m[0;36m21 |[0;0m self?.scrubState = .notScrubbing
[0;36m |[0;0m[0;36m22 |[0;0m self?.restartControlPanelTask()
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m131 |[0;0m
[0;36m132 |[0;0m //MARK: Private variables
OpenImmersive/VideoPlayer.swift:124:36: [1;33mwarning: [1;39mmain actor-isolated property 'scrubState' can not be mutated from a Sendable closure[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:130:6: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m107 |[0;0m }
[0;36m108 |[0;0m /// The current state of the scrubber.
[0;36m109 |[0;0m public var scrubState: ScrubState = .notScrubbing {
[0;36m|[0;0m `- [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m110 |[0;0m didSet {
[0;36m111 |[0;0m switch scrubState {
[0;36m:[0;0m
[0;36m128 |[0;0m }
[0;36m129 |[0;0m }
[0;36m130 |[0;0m }
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m19 |[0;0m }
[0;36m |[0;0m[0;36m20 |[0;0m self?.renderer?.flush()
[0;36m |[0;0m[0;36m21 |[0;0m self?.scrubState = .notScrubbing
[0;36m |[0;0m [0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'scrubState' can not be mutated from a Sendable closure[0;0m
[0;36m |[0;0m[0;36m22 |[0;0m self?.restartControlPanelTask()
[0;36m |[0;0m[0;36m23 |[0;0m }
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m131 |[0;0m
[0;36m132 |[0;0m //MARK: Private variables
OpenImmersive/VideoPlayer.swift:125:36: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'restartControlPanelTask()' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:130:6: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m128 |[0;0m }
[0;36m129 |[0;0m }
[0;36m130 |[0;0m }
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m20 |[0;0m self?.renderer?.flush()
[0;36m |[0;0m[0;36m21 |[0;0m self?.scrubState = .notScrubbing
[0;36m |[0;0m[0;36m22 |[0;0m self?.restartControlPanelTask()
[0;36m |[0;0m [0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'restartControlPanelTask()' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m |[0;0m[0;36m23 |[0;0m }
[0;36m |[0;0m[0;36m24 |[0;0m hasReachedEnd = false
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m131 |[0;0m
[0;36m132 |[0;0m //MARK: Private variables
[0;36m:[0;0m
[0;36m621 |[0;0m
[0;36m622 |[0;0m /// Restart a task with a 10-second timer to auto-hide the control panel.
[0;36m623 |[0;0m public func restartControlPanelTask() {
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'restartControlPanelTask()' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m624 |[0;0m cancelControlPanelTask()
[0;36m625 |[0;0m dismissControlPanelTask = Task {
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:133:30: [1;31merror: [1;39m'CADisplayLink' is only available in macOS 14.0 or newer[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m131 |[0;0m
[0;36m132 |[0;0m //MARK: Private variables
[0;36m133 |[0;0m private var displayLink: CADisplayLink?
[0;36m|[0;0m | `- [1;31merror: [1;39m'CADisplayLink' is only available in macOS 14.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing property[0;0m
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m135 |[0;0m private var timeObserver: Any?
macro expansion @ObservationTracked:4:28: [1;31merror: [1;39m'CADisplayLink' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:133:44: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m131 |[0;0m
[0;36m132 |[0;0m //MARK: Private variables
[0;36m133 |[0;0m private var displayLink: CADisplayLink?
[0;36m +--- [0;0mmacro expansion @ObservationTracked [0;36m---------------------------[0;0m
[0;36m |[0;0m[0;36m2 |[0;0m
[0;36m |[0;0m[0;36m3 |[0;0m @ObservationIgnored
[0;36m |[0;0m[0;36m4 |[0;0m private var _displayLink: CADisplayLink?
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'CADisplayLink' is only available in macOS 14.0 or newer[0;0m
[0;36m +----------------------------------------[0;0m[0;36m---------------------------[0;0m
[0;36m134 |[0;0m private var videoOutput: AVPlayerItemVideoOutput?
[0;36m135 |[0;0m private var timeObserver: Any?
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:493:37: [1;31merror: [1;39m'CADisplayLink' is only available in macOS 14.0 or newer[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m491 |[0;0m
[0;36m492 |[0;0m /// Callback from the display link. This will execute for each display frame, which may be a different rate from the video.
[0;36m493 |[0;0m @objc private func tick(_ link: CADisplayLink) {
[0;36m|[0;0m | `- [1;31merror: [1;39m'CADisplayLink' is only available in macOS 14.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing instance method[0;0m
[0;36m494 |[0;0m guard framePacking != .none, let videoOutput, let injector else {
[0;36m495 |[0;0m return
macro expansion @Observable:1:70: [1;31merror: [1;39m'ObservationRegistrar' is only available in macOS 14.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:639:1: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m [4;39m@Observable[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'Observable' on class 'VideoPlayer' here[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
[0;36m:[0;0m
[0;36m637 |[0;0m dismissControlPanelTask = nil
[0;36m638 |[0;0m }
[0;36m639 |[0;0m }
[0;36m +--- [0;0mmacro expansion @Observable [0;36m-----------------------------------[0;0m
[0;36m |[0;0m [0;36m1 |[0;0m @ObservationIgnored private let _$observationRegistrar = Observation.ObservationRegistrar()
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'ObservationRegistrar' is only available in macOS 14.0 or newer[0;0m
[0;36m |[0;0m [0;36m2 |[0;0m
[0;36m |[0;0m [0;36m3 |[0;0m internal nonisolated func access<$s13OpenImmersive11VideoPlayer10ObservablefMm_6MemberfMu_>(
[0;36m +--------------------------------[0;0m[0;36m-----------------------------------[0;0m
[0;36m640 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:13:2: [1;31merror: [1;39m'Observable()' is only available in macOS 14.0 or newer[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
[0;36m13 |[0;0m @Observable
[0;36m|[0;0m `- [1;31merror: [1;39m'Observable()' is only available in macOS 14.0 or newer[0;0m
[0;36m14 |[0;0m public class VideoPlayer: Sendable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m15 |[0;0m //MARK: Video Player and Video Renderer
[0;36m16 |[0;0m /// The video player.
/Users/admin/builder/spi-builder-workspace/Sources/Extensions/AVMetadataIdentifier+Codable.swift:11:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'AVMetadataIdentifier' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'AVFoundation' introduce this conformance in the future[0;0m
[0;36m9 |[0;0m
[0;36m10 |[0;0m /// Codable extension of AVMetadataIdentifier so it can be used in VideoItem
[0;36m11 |[0;0m extension AVMetadataIdentifier: Codable {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'AVMetadataIdentifier' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'AVFoundation' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m12 |[0;0m public typealias RawValue = String
[0;36m13 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Models/SpatialVideoTransferable.swift:19:52: [1;31merror: [1;39m'TransferRepresentation' is only available in macOS 13.0 or newer[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// A representation for a spatial or immersive video selected from the Photos API or dragged and dropped onto the app
[0;36m12 |[0;0m public struct SpatialVideo: Transferable {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m public enum Status: Sendable {
[0;36m14 |[0;0m case failed, ready
[0;36m:[0;0m
[0;36m17 |[0;0m public let url: URL
[0;36m18 |[0;0m
[0;36m19 |[0;0m public static var transferRepresentation: some TransferRepresentation {
[0;36m|[0;0m | `- [1;31merror: [1;39m'TransferRepresentation' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing static property[0;0m
[0;36m20 |[0;0m FileRepresentation(contentType: .audiovisualContent) { file in
[0;36m21 |[0;0m SentTransferredFile(file.url)
/Users/admin/builder/spi-builder-workspace/Sources/Models/VideoScreen.swift:91:20: [1;31merror: [1;39m'VideoPlayerComponent' is only available in macOS 15.0 or newer[0;0m
[0;36m76 |[0;0m }
[0;36m77 |[0;0m
[0;36m78 |[0;0m public extension VideoPlayer {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing extension[0;0m
[0;36m79 |[0;0m /// A RealityKit video material created from the underlying AVPlayer or AVSampleBufferVideoRenderer,
[0;36m80 |[0;0m /// depending on whether the media has frame packing or not.
[0;36m:[0;0m
[0;36m89 |[0;0m /// A RealityKit video player component created from the underlying AVPlayer or AVSampleBufferVideoRenderer,
[0;36m90 |[0;0m /// depending on whether the media has frame packing or not.
[0;36m91 |[0;0m var component: VideoPlayerComponent {
[0;36m|[0;0m | `- [1;31merror: [1;39m'VideoPlayerComponent' is only available in macOS 15.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing property[0;0m
[0;36m92 |[0;0m var component: VideoPlayerComponent
[0;36m93 |[0;0m if let renderer {
/Users/admin/builder/spi-builder-workspace/Sources/Utils/APMPInjector.swift:22:27: [1;31merror: [1;39m'AVSampleBufferVideoRenderer' is only available in macOS 14.0 or newer[0;0m
[0;36m11 |[0;0m
[0;36m12 |[0;0m /// Injects APMP metadata into frames to render stereo frame-packed media efficiently.
[0;36m13 |[0;0m public class APMPInjector {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing class[0;0m
[0;36m14 |[0;0m /// Errors specific to APMP Injector.
[0;36m15 |[0;0m public enum APMPInjectorError: Error {
[0;36m:[0;0m
[0;36m20 |[0;0m /// The renderer to use for enqueueing. Expose this so callers can
[0;36m21 |[0;0m /// associate it with a display layer or RealityKit component.
[0;36m22 |[0;0m public let renderer = AVSampleBufferVideoRenderer()
[0;36m|[0;0m `- [1;31merror: [1;39m'AVSampleBufferVideoRenderer' is only available in macOS 14.0 or newer[0;0m
[0;36m23 |[0;0m /// The source media's frame packing type, must be .sideBySide or .overUnder.
[0;36m24 |[0;0m private let packing: VideoItem.FramePacking
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Closures.swift:19:29: [1;31merror: [1;39mcannot find type 'simd_quatf' in scope[0;0m
[0;36m17 |[0;0m public var body: CustomViewBuilder
[0;36m18 |[0;0m public var position: SIMD3<Float>
[0;36m19 |[0;0m public var orientation: [4;39msimd_quatf[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'simd_quatf' in scope[0;0m
[0;36m20 |[0;0m public var relativeToControlPanel: Bool
[0;36m21 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/Utils/Closures.swift:22:101: [1;31merror: [1;39mcannot find type 'simd_quatf' in scope[0;0m
[0;36m20 |[0;0m public var relativeToControlPanel: Bool
[0;36m21 |[0;0m
[0;36m22 |[0;0m public init(id: String, body: @escaping CustomViewBuilder, position: SIMD3<Float>, orientation: [4;39msimd_quatf[0;0m, relativeToControlPanel: Bool) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'simd_quatf' in scope[0;0m
[0;36m23 |[0;0m self.id = id
[0;36m24 |[0;0m self.body = body
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:498:9: [1;31merror: [1;39mcannot find 'Attachment' in scope[0;0m
[0;36m496 |[0;0m }
[0;36m497 |[0;0m } attachments: {
[0;36m498 |[0;0m [4;39mAttachment[0;0m(id: "ControlPanel") {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'Attachment' in scope[0;0m
[0;36m499 |[0;0m ControlPanel(videoPlayer: .constant(VideoPlayer()))
[0;36m500 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:497:20: [1;31merror: [1;39mextra trailing closure passed in call[0;0m
[0;36m495 |[0;0m content.add(entity)
[0;36m496 |[0;0m }
[0;36m497 |[0;0m } attachments: [4;39m{[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mextra trailing closure passed in call[0;0m
[0;36m498 |[0;0m Attachment(id: "ControlPanel") {
[0;36m499 |[0;0m ControlPanel(videoPlayer: .constant(VideoPlayer()))
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:493:19: [1;31merror: [1;39mcontextual closure type '@MainActor @Sendable (inout RealityViewCameraContent) async -> Void' expects 1 argument, but 2 were used in closure body[0;0m
[0;36m491 |[0;0m
[0;36m492 |[0;0m #Preview {
[0;36m493 |[0;0m RealityView { content, attachments in
[0;36m|[0;0m `- [1;31merror: [1;39mcontextual closure type '@MainActor @Sendable (inout RealityViewCameraContent) async -> Void' expects 1 argument, but 2 were used in closure body[0;0m
[0;36m494 |[0;0m if let entity = attachments.entity(for: "ControlPanel") {
[0;36m495 |[0;0m content.add(entity)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:74:9: [1;31merror: [1;39mextraneous argument label 'windowStyle:' in macro expansion[0;0m
[0;36m72 |[0;0m }
[0;36m73 |[0;0m
[0;36m74 |[0;0m #Preview(windowStyle: .automatic) {
[0;36m|[0;0m `- [1;31merror: [1;39mextraneous argument label 'windowStyle:' in macro expansion[0;0m
[0;36m75 |[0;0m DropTarget() {
[0;36m76 |[0;0m Color.clear
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:74:24: [1;31merror: [1;39mtype 'String?' has no member 'automatic'[0;0m
[0;36m72 |[0;0m }
[0;36m73 |[0;0m
[0;36m74 |[0;0m #Preview(windowStyle: [4;39m.automatic[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'String?' has no member 'automatic'[0;0m
[0;36m75 |[0;0m DropTarget() {
[0;36m76 |[0;0m Color.clear
/Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:38: [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
[0;36m12 |[0;0m public struct GalleryVideoPicker: View {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// The currently selected item, if any.
[0;36m14 |[0;0m @State private var selectedItem: PhotosPickerItem?
[0;36m|[0;0m | `- [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing property[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// Whether the picker should show spatial videos only.
macro expansion @State:2:24: [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:55: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
[0;36m12 |[0;0m public struct GalleryVideoPicker: View {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// The currently selected item, if any.
[0;36m14 |[0;0m @State private var [4;39mselectedItem[0;0m: PhotosPickerItem?
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'State' on property 'selectedItem' here[0;0m
[0;36m +--- [0;0mmacro expansion @State [0;36m-----------------------------------------[0;0m
[0;36m |[0;0m [0;36m1 |[0;0m private var __selectedItem = SwiftUICore.State._makeStorage(({
[0;36m |[0;0m [0;36m2 |[0;0m let value: PhotosPickerItem? = nil
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
[0;36m |[0;0m [0;36m3 |[0;0m return value
[0;36m |[0;0m [0;36m4 |[0;0m }))
[0;36m +---------------------------[0;0m[0;36m-----------------------------------------[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// Whether the picker should show spatial videos only.
macro expansion @State:8:27: [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:55: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
[0;36m12 |[0;0m public struct GalleryVideoPicker: View {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// The currently selected item, if any.
[0;36m14 |[0;0m @State private var [4;39mselectedItem[0;0m: PhotosPickerItem?
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'State' on property 'selectedItem' here[0;0m
[0;36m +--- [0;0mmacro expansion @State [0;36m-----------------------------------------[0;0m
[0;36m |[0;0m [0;36m6 |[0;0m @SwiftUICore._StatePropertyWrapperStorage(initialValue: "JHMxM09wZW5JbW1lcnNpdmUxOEdhbGxlcnlWaWRlb1BpY2tlclYxMnNlbGVjdGVkSXRlbTMzXzVERDM3RDgzNjlBNUQwMzJCOTE4NTk3MDAxRTQxMEJBTEw1U3RhdGVmTXBfMjBfaW5pdGlhbFN0b3JlZFZhbHVlX2ZNdV8=")
[0;36m |[0;0m [0;36m7 |[0;0m private var _selectedItem: SwiftUICore.State<_>! = SwiftUICore._stateNil(of: {
[0;36m |[0;0m [0;36m8 |[0;0m SwiftUICore.State<PhotosPickerItem?>(initialValue: nil)
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
[0;36m |[0;0m [0;36m9 |[0;0m })
[0;36m |[0;0m[0;36m10 |[0;0m
[0;36m +---------------------------[0;0m[0;36m-----------------------------------------[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// Whether the picker should show spatial videos only.
macro expansion @State:12:47: [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:55: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
[0;36m12 |[0;0m public struct GalleryVideoPicker: View {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// The currently selected item, if any.
[0;36m14 |[0;0m @State private var [4;39mselectedItem[0;0m: PhotosPickerItem?
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'State' on property 'selectedItem' here[0;0m
[0;36m +--- [0;0mmacro expansion @State [0;36m-----------------------------------------[0;0m
[0;36m |[0;0m[0;36m10 |[0;0m
[0;36m |[0;0m[0;36m11 |[0;0m @SwiftUICore._StateProjectedValue
[0;36m |[0;0m[0;36m12 |[0;0m private var $selectedItem = SwiftUICore.State<PhotosPickerItem?>(initialValue: nil).projectedValue
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
[0;36m |[0;0m[0;36m13 |[0;0m
[0;36m |[0;0m[0;36m14 |[0;0m @SwiftUICore._StateInitialStoredValue("U3dpZnRVSUNvcmUuU3RhdGUuX21ha2VTdG9yYWdlKGluaXRpYWxWYWx1ZTogeyBsZXQgeDogUGhvdG9zUGlja2VySXRlbT8gPSBuaWwKcmV0dXJuIHggfSgpKQ==")
[0;36m +---------------------------[0;0m[0;36m-----------------------------------------[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// Whether the picker should show spatial videos only.
macro expansion @State:16:20: [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
`- /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:14:55: [1;39mnote: [1;39mexpanded code originates here[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
[0;36m12 |[0;0m public struct GalleryVideoPicker: View {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// The currently selected item, if any.
[0;36m14 |[0;0m @State private var [4;39mselectedItem[0;0m: PhotosPickerItem?
[0;36m|[0;0m `- [1;39mnote: [1;39min expansion of macro 'State' on property 'selectedItem' here[0;0m
[0;36m +--- [0;0mmacro expansion @State [0;36m-----------------------------------------[0;0m
[0;36m |[0;0m[0;36m14 |[0;0m @SwiftUICore._StateInitialStoredValue("U3dpZnRVSUNvcmUuU3RhdGUuX21ha2VTdG9yYWdlKGluaXRpYWxWYWx1ZTogeyBsZXQgeDogUGhvdG9zUGlja2VySXRlbT8gPSBuaWwKcmV0dXJuIHggfSgpKQ==")
[0;36m |[0;0m[0;36m15 |[0;0m private static var $s13OpenImmersive18GalleryVideoPickerV12selectedItem33_5DD37D8369A5D032B918597001E410BALL5StatefMp_20_initialStoredValue_fMu_ = (SwiftUICore.State._makeStorage(initialValue: {
[0;36m |[0;0m[0;36m16 |[0;0m let x: PhotosPickerItem? = nil
[0;36m |[0;0m [0;36m|[0;0m `- [1;31merror: [1;39m'PhotosPickerItem' is only available in macOS 13.0 or newer[0;0m
[0;36m |[0;0m[0;36m17 |[0;0m return x
[0;36m |[0;0m[0;36m18 |[0;0m }()))
[0;36m +---------------------------[0;0m[0;36m-----------------------------------------[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m /// Whether the picker should show spatial videos only.
/Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift:23:24: [1;31merror: [1;39m'PHPickerFilter' is only available in macOS 13.0 or newer[0;0m
[0;36m10 |[0;0m
[0;36m11 |[0;0m /// A button revealing a `PhotosPicker` configured to only show videos or spatial videos.
[0;36m12 |[0;0m public struct GalleryVideoPicker: View {
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing struct[0;0m
[0;36m13 |[0;0m /// The currently selected item, if any.
[0;36m14 |[0;0m @State private var selectedItem: PhotosPickerItem?
[0;36m:[0;0m
[0;36m21 |[0;0m
[0;36m22 |[0;0m /// The Photos picker filter to use based on `spatialVideosOnly`.
[0;36m23 |[0;0m public var filter: PHPickerFilter {
[0;36m|[0;0m | `- [1;31merror: [1;39m'PHPickerFilter' is only available in macOS 13.0 or newer[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@available' attribute to enclosing property[0;0m
[0;36m24 |[0;0m spatialVideosOnly ? .all(of: [.spatialMedia, .not(.images)]) : .videos
[0;36m25 |[0;0m }
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /Users/admin/builder/spi-builder-workspace/Sources/Controllers/HeadTracker.swift /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift /Users/admin/builder/spi-builder-workspace/Sources/Extensions/AVMetadataIdentifier+Codable.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/AudioOption.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/BitrateRung.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/SpatialVideoTransferable.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/VideoItem.swift /Users/admin/builder/spi-builder-workspace/Sources/Models/VideoScreen.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/APMPInjector.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/Closures.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/Config.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/PlaylistLoaderDelegate.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/PlaylistReader.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/PlaylistWriter.swift /Users/admin/builder/spi-builder-workspace/Sources/Utils/VideoTools.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/FilePicker.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/GalleryVideoPicker.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/ImmersivePlayer.swift /Users/admin/builder/spi-builder-workspace/Sources/Views/StreamUrlInput.swift -target arm64-apple-macos12.0 -disable-cross-import-overlay-search -swift-module-cross-import ARKit /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ARKit.framework/Modules/ARKit.swiftcrossimport/SwiftUI.swiftoverlay -swift-module-cross-import PhotosUI /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/PhotosUI.framework/Modules/PhotosUI.swiftcrossimport/SwiftUI.swiftoverlay -swift-module-cross-import PhotosUI /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/PhotosUI.framework/Modules/PhotosUI.swiftcrossimport/WidgetKit.swiftoverlay -swift-module-cross-import PhotosUI /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/PhotosUI.framework/Modules/PhotosUI.swiftcrossimport/SwiftUI.swiftoverlay -swift-module-cross-import PhotosUI /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/PhotosUI.framework/Modules/PhotosUI.swiftcrossimport/WidgetKit.swiftoverlay -swift-module-cross-import RealityKit /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/RealityKit.framework/Modules/RealityKit.swiftcrossimport/ComputeGraph.swiftoverlay -swift-module-cross-import RealityKit /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/RealityKit.framework/Modules/RealityKit.swiftcrossimport/SwiftUI.swiftoverlay -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libPreviewsMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#PreviewsMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins/libSwiftUIMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server\#SwiftUIMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/SwiftExplicitPrecompiledModules -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -default-isolation MainActor -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.build/out/SDKStatCaches.noindex/macosx27.0-26A425-80c5bbf1d171475443272936d42f90a36a22442a12e9d48fe1a705f55a1adfc4.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name OpenImmersive -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-macos27.0 -target-sdk-version 27.0 -target-sdk-name macosx27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.build/out/Intermediates.noindex/OpenImmersive.build/Debug/OpenImmersive-t.build/Objects-normal/arm64/OpenImmersive.abi.json
error: Build failed
BUILD FAILURE 6.4 macosSpm