Build Information
Successful build of KSPlayer, reference 2.3.4 (bdfa2d), with Swift 6.4 for macOS (SPM) on 21 Sep 2026 21:54:43 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
[0;36m543 |[0;0m mediaType = track.assetTrack?.mediaType ?? .video
[0;36m544 |[0;0m name = track.assetTrack?.languageCode ?? ""
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m545 |[0;0m languageCode = track.assetTrack?.languageCode
[0;36m546 |[0;0m nominalFrameRate = track.assetTrack?.nominalFrameRate ?? 24.0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m43 |[0;0m notification queue. By default, this queue is the main queue.
[0;36m44 |[0;0m */
[0;36m45 |[0;0m @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m46 |[0;0m
[0;36m47 |[0;0m /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:545:30: [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m543 |[0;0m mediaType = track.assetTrack?.mediaType ?? .video
[0;36m544 |[0;0m name = track.assetTrack?.languageCode ?? ""
[0;36m545 |[0;0m languageCode = track.assetTrack?.languageCode
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m546 |[0;0m nominalFrameRate = track.assetTrack?.nominalFrameRate ?? 24.0
[0;36m547 |[0;0m bitRate = Int64(track.assetTrack?.estimatedDataRate ?? 0)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m43 |[0;0m notification queue. By default, this queue is the main queue.
[0;36m44 |[0;0m */
[0;36m45 |[0;0m @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m46 |[0;0m
[0;36m47 |[0;0m /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:546:34: [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m544 |[0;0m name = track.assetTrack?.languageCode ?? ""
[0;36m545 |[0;0m languageCode = track.assetTrack?.languageCode
[0;36m546 |[0;0m nominalFrameRate = track.assetTrack?.nominalFrameRate ?? 24.0
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m547 |[0;0m bitRate = Int64(track.assetTrack?.estimatedDataRate ?? 0)
[0;36m548 |[0;0m #if os(xrOS)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m43 |[0;0m notification queue. By default, this queue is the main queue.
[0;36m44 |[0;0m */
[0;36m45 |[0;0m @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m46 |[0;0m
[0;36m47 |[0;0m /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:547:31: [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m545 |[0;0m languageCode = track.assetTrack?.languageCode
[0;36m546 |[0;0m nominalFrameRate = track.assetTrack?.nominalFrameRate ?? 24.0
[0;36m547 |[0;0m bitRate = Int64(track.assetTrack?.estimatedDataRate ?? 0)
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m548 |[0;0m #if os(xrOS)
[0;36m549 |[0;0m isPlayable = false
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m43 |[0;0m notification queue. By default, this queue is the main queue.
[0;36m44 |[0;0m */
[0;36m45 |[0;0m @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m46 |[0;0m
[0;36m47 |[0;0m /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:551:28: [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m549 |[0;0m isPlayable = false
[0;36m550 |[0;0m #else
[0;36m551 |[0;0m isPlayable = track.assetTrack?.isPlayable ?? false
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m552 |[0;0m #endif
[0;36m553 |[0;0m // swiftlint:disable force_cast
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m43 |[0;0m notification queue. By default, this queue is the main queue.
[0;36m44 |[0;0m */
[0;36m45 |[0;0m @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m46 |[0;0m
[0;36m47 |[0;0m /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:554:30: [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m552 |[0;0m #endif
[0;36m553 |[0;0m // swiftlint:disable force_cast
[0;36m554 |[0;0m if let first = track.assetTrack?.formatDescriptions.first {
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'assetTrack' can not be referenced from a nonisolated context[0;0m
[0;36m555 |[0;0m formatDescription = first as! CMFormatDescription
[0;36m556 |[0;0m } else {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m43 |[0;0m notification queue. By default, this queue is the main queue.
[0;36m44 |[0;0m */
[0;36m45 |[0;0m @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m46 |[0;0m
[0;36m47 |[0;0m /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:586:17: [1;33mwarning: [1;39mcapture of 'handler' with non-Sendable type '(CGImage?) -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m584 |[0;0m imageGenerator.generateCGImagesAsynchronously(forTimes: [NSValue(time: currentTime)]) { _, cgImage, _, _, _ in
[0;36m585 |[0;0m if let cgImage {
[0;36m586 |[0;0m handler(cgImage)
[0;36m|[0;0m |- [1;33mwarning: [1;39mcapture of 'handler' with non-Sendable type '(CGImage?) -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39ma function type must be marked '@Sendable' to conform to 'Sendable'[0;0m
[0;36m587 |[0;0m } else {
[0;36m588 |[0;0m handler(nil)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:458:16: [1;33mwarning: [1;39mstatic property 'firstPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m456 |[0;0m
[0;36m457 |[0;0m public extension KSOptions {
[0;36m458 |[0;0m static var firstPlayerType: MediaPlayerProtocol.Type = KSAVPlayer.self
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'firstPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'firstPlayerType' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'firstPlayerType' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m459 |[0;0m static var secondPlayerType: MediaPlayerProtocol.Type? = KSMEPlayer.self
[0;36m460 |[0;0m /// 最低缓存视频时间
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:459:16: [1;33mwarning: [1;39mstatic property 'secondPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m457 |[0;0m public extension KSOptions {
[0;36m458 |[0;0m static var firstPlayerType: MediaPlayerProtocol.Type = KSAVPlayer.self
[0;36m459 |[0;0m static var secondPlayerType: MediaPlayerProtocol.Type? = KSMEPlayer.self
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'secondPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'secondPlayerType' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'secondPlayerType' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m460 |[0;0m /// 最低缓存视频时间
[0;36m461 |[0;0m static var preferredForwardBufferDuration = 3.0
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:461:16: [1;33mwarning: [1;39mstatic property 'preferredForwardBufferDuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m459 |[0;0m static var secondPlayerType: MediaPlayerProtocol.Type? = KSMEPlayer.self
[0;36m460 |[0;0m /// 最低缓存视频时间
[0;36m461 |[0;0m static var preferredForwardBufferDuration = 3.0
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'preferredForwardBufferDuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'preferredForwardBufferDuration' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'preferredForwardBufferDuration' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m462 |[0;0m /// 最大缓存视频时间
[0;36m463 |[0;0m static var maxBufferDuration = 30.0
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:463:16: [1;33mwarning: [1;39mstatic property 'maxBufferDuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m461 |[0;0m static var preferredForwardBufferDuration = 3.0
[0;36m462 |[0;0m /// 最大缓存视频时间
[0;36m463 |[0;0m static var maxBufferDuration = 30.0
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'maxBufferDuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'maxBufferDuration' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'maxBufferDuration' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m464 |[0;0m /// 是否开启秒开
[0;36m465 |[0;0m static var isSecondOpen = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:465:16: [1;33mwarning: [1;39mstatic property 'isSecondOpen' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m463 |[0;0m static var maxBufferDuration = 30.0
[0;36m464 |[0;0m /// 是否开启秒开
[0;36m465 |[0;0m static var isSecondOpen = false
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'isSecondOpen' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'isSecondOpen' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'isSecondOpen' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m466 |[0;0m /// 开启精确seek
[0;36m467 |[0;0m static var isAccurateSeek = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:467:16: [1;33mwarning: [1;39mstatic property 'isAccurateSeek' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m465 |[0;0m static var isSecondOpen = false
[0;36m466 |[0;0m /// 开启精确seek
[0;36m467 |[0;0m static var isAccurateSeek = false
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'isAccurateSeek' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'isAccurateSeek' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'isAccurateSeek' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m468 |[0;0m /// Applies to short videos only
[0;36m469 |[0;0m static var isLoopPlay = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:469:16: [1;33mwarning: [1;39mstatic property 'isLoopPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m467 |[0;0m static var isAccurateSeek = false
[0;36m468 |[0;0m /// Applies to short videos only
[0;36m469 |[0;0m static var isLoopPlay = false
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'isLoopPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'isLoopPlay' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'isLoopPlay' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m470 |[0;0m /// 是否自动播放,默认true
[0;36m471 |[0;0m static var isAutoPlay = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:471:16: [1;33mwarning: [1;39mstatic property 'isAutoPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m469 |[0;0m static var isLoopPlay = false
[0;36m470 |[0;0m /// 是否自动播放,默认true
[0;36m471 |[0;0m static var isAutoPlay = true
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'isAutoPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'isAutoPlay' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'isAutoPlay' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m472 |[0;0m /// seek完是否自动播放
[0;36m473 |[0;0m static var isSeekedAutoPlay = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:473:16: [1;33mwarning: [1;39mstatic property 'isSeekedAutoPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m471 |[0;0m static var isAutoPlay = true
[0;36m472 |[0;0m /// seek完是否自动播放
[0;36m473 |[0;0m static var isSeekedAutoPlay = true
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'isSeekedAutoPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'isSeekedAutoPlay' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'isSeekedAutoPlay' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m474 |[0;0m static var hardwareDecode = true
[0;36m475 |[0;0m // 默认不用自研的硬解,因为有些视频的AVPacket的pts顺序是不对的,只有解码后的AVFrame里面的pts是对的。
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:474:16: [1;33mwarning: [1;39mstatic property 'hardwareDecode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m472 |[0;0m /// seek完是否自动播放
[0;36m473 |[0;0m static var isSeekedAutoPlay = true
[0;36m474 |[0;0m static var hardwareDecode = true
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'hardwareDecode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'hardwareDecode' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'hardwareDecode' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m475 |[0;0m // 默认不用自研的硬解,因为有些视频的AVPacket的pts顺序是不对的,只有解码后的AVFrame里面的pts是对的。
[0;36m476 |[0;0m static var asynchronousDecompression = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:476:16: [1;33mwarning: [1;39mstatic property 'asynchronousDecompression' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m474 |[0;0m static var hardwareDecode = true
[0;36m475 |[0;0m // 默认不用自研的硬解,因为有些视频的AVPacket的pts顺序是不对的,只有解码后的AVFrame里面的pts是对的。
[0;36m476 |[0;0m static var asynchronousDecompression = false
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'asynchronousDecompression' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'asynchronousDecompression' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'asynchronousDecompression' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m477 |[0;0m static var isPipPopViewController = false
[0;36m478 |[0;0m static var canStartPictureInPictureAutomaticallyFromInline = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:477:16: [1;33mwarning: [1;39mstatic property 'isPipPopViewController' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m475 |[0;0m // 默认不用自研的硬解,因为有些视频的AVPacket的pts顺序是不对的,只有解码后的AVFrame里面的pts是对的。
[0;36m476 |[0;0m static var asynchronousDecompression = false
[0;36m477 |[0;0m static var isPipPopViewController = false
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'isPipPopViewController' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'isPipPopViewController' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'isPipPopViewController' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m478 |[0;0m static var canStartPictureInPictureAutomaticallyFromInline = true
[0;36m479 |[0;0m static var preferredFrame = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:478:16: [1;33mwarning: [1;39mstatic property 'canStartPictureInPictureAutomaticallyFromInline' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m476 |[0;0m static var asynchronousDecompression = false
[0;36m477 |[0;0m static var isPipPopViewController = false
[0;36m478 |[0;0m static var canStartPictureInPictureAutomaticallyFromInline = true
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'canStartPictureInPictureAutomaticallyFromInline' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'canStartPictureInPictureAutomaticallyFromInline' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'canStartPictureInPictureAutomaticallyFromInline' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m479 |[0;0m static var preferredFrame = true
[0;36m480 |[0;0m static var useSystemHTTPProxy = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:479:16: [1;33mwarning: [1;39mstatic property 'preferredFrame' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m477 |[0;0m static var isPipPopViewController = false
[0;36m478 |[0;0m static var canStartPictureInPictureAutomaticallyFromInline = true
[0;36m479 |[0;0m static var preferredFrame = true
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'preferredFrame' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'preferredFrame' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'preferredFrame' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m480 |[0;0m static var useSystemHTTPProxy = true
[0;36m481 |[0;0m /// 日志级别
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:480:16: [1;33mwarning: [1;39mstatic property 'useSystemHTTPProxy' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m478 |[0;0m static var canStartPictureInPictureAutomaticallyFromInline = true
[0;36m479 |[0;0m static var preferredFrame = true
[0;36m480 |[0;0m static var useSystemHTTPProxy = true
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'useSystemHTTPProxy' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'useSystemHTTPProxy' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'useSystemHTTPProxy' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m481 |[0;0m /// 日志级别
[0;36m482 |[0;0m static var logLevel = LogLevel.warning
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:482:16: [1;33mwarning: [1;39mstatic property 'logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m480 |[0;0m static var useSystemHTTPProxy = true
[0;36m481 |[0;0m /// 日志级别
[0;36m482 |[0;0m static var logLevel = LogLevel.warning
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'logLevel' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'logLevel' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m483 |[0;0m static var logger: LogHandler = OSLog(lable: "KSPlayer")
[0;36m484 |[0;0m internal static func deviceCpuCount() -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:483:16: [1;33mwarning: [1;39mstatic property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m481 |[0;0m /// 日志级别
[0;36m482 |[0;0m static var logLevel = LogLevel.warning
[0;36m483 |[0;0m static var logger: LogHandler = OSLog(lable: "KSPlayer")
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'logger' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'logger' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m484 |[0;0m internal static func deviceCpuCount() -> Int {
[0;36m485 |[0;0m var ncpu = UInt(0)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:317:21: [1;33mwarning: [1;39mvariable 'yadifMode' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m315 |[0;0m asynchronousDecompression = false
[0;36m316 |[0;0m let yadif = hardwareDecode ? "yadif_videotoolbox" : "yadif"
[0;36m317 |[0;0m var yadifMode = KSOptions.yadifMode
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'yadifMode' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m318 |[0;0m // if let assetTrack = assetTrack as? FFmpegAssetTrack {
[0;36m319 |[0;0m // if assetTrack.realFrameRate.num == 2 * assetTrack.avgFrameRate.num, assetTrack.realFrameRate.den == assetTrack.avgFrameRate.den {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:12:24: [1;33mwarning: [1;39mstatic property 'pipController' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m10 |[0;0m @available(tvOS 14.0, *)
[0;36m11 |[0;0m public class KSPictureInPictureController: AVPictureInPictureController {
[0;36m12 |[0;0m private static var pipController: KSPictureInPictureController?
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'pipController' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'pipController' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'pipController' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m13 |[0;0m private var originalViewController: UIViewController?
[0;36m14 |[0;0m private var view: KSPlayerLayer?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:84:35: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'KSPlayerLayer?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m65 |[0;0m }
[0;36m66 |[0;0m
[0;36m67 |[0;0m open class KSPlayerLayer: NSObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'KSPlayerLayer' does not conform to the 'Sendable' protocol[0;0m
[0;36m68 |[0;0m public weak var delegate: KSPlayerLayerDelegate?
[0;36m69 |[0;0m @Published
[0;36m:[0;0m
[0;36m82 |[0;0m // 一定要async才不会pip之后就暂停播放
[0;36m83 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m84 |[0;0m guard let self else { return }
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'KSPlayerLayer?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m85 |[0;0m pipController.start(view: self)
[0;36m86 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:85:25: [1;33mwarning: [1;39mcapture of 'pipController' with non-Sendable type 'KSPictureInPictureController' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m83 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m84 |[0;0m guard let self else { return }
[0;36m85 |[0;0m pipController.start(view: self)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'pipController' with non-Sendable type 'KSPictureInPictureController' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m86 |[0;0m }
[0;36m87 |[0;0m } else {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:11:14: [1;39mnote: [1;39mclass 'KSPictureInPictureController' does not conform to the 'Sendable' protocol[0;0m
[0;36m9 |[0;0m
[0;36m10 |[0;0m @available(tvOS 14.0, *)
[0;36m11 |[0;0m public class KSPictureInPictureController: AVPictureInPictureController {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'KSPictureInPictureController' does not conform to the 'Sendable' protocol[0;0m
[0;36m12 |[0;0m private static var pipController: KSPictureInPictureController?
[0;36m13 |[0;0m private var originalViewController: UIViewController?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:102:73: [1;33mwarning: [1;39mmain actor-isolated property 'superview' can not be referenced from a nonisolated context[0;0m
[0;36m100 |[0;0m runOnMainThread { [weak self] in
[0;36m101 |[0;0m guard let self else { return }
[0;36m102 |[0;0m if let oldView = oldValue.view, let superview = oldView.superview, let view = player.view {
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'superview' can not be referenced from a nonisolated context[0;0m
[0;36m103 |[0;0m #if canImport(UIKit)
[0;36m104 |[0;0m superview.insertSubview(view, belowSubview: oldView)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:87:59: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m85 |[0;0m
[0;36m86 |[0;0m @property (nullable, readonly, unsafe_unretained) NSWindow *window;
[0;36m87 |[0;0m @property (nullable, readonly, unsafe_unretained) NSView *superview;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m88 |[0;0m @property (copy) NSArray<__kindof NSView *> *subviews;
[0;36m89 |[0;0m - (BOOL)isDescendantOf:(NSView *)view;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:106:31: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'addSubview(_:positioned:relativeTo:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m104 |[0;0m superview.insertSubview(view, belowSubview: oldView)
[0;36m105 |[0;0m #else
[0;36m106 |[0;0m superview.addSubview(view, positioned: .below, relativeTo: oldView)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'addSubview(_:positioned:relativeTo:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m107 |[0;0m #endif
[0;36m108 |[0;0m view.translatesAutoresizingMaskIntoConstraints = false
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:102:1: [1;39mnote: [1;39mcalls to instance method 'addSubview(_:positioned:relativeTo:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m100 |[0;0m
[0;36m101 |[0;0m - (void)addSubview:(NSView *)view;
[0;36m102 |[0;0m - (void)addSubview:(NSView *)view positioned:(NSWindowOrderingMode)place relativeTo:(nullable NSView *)otherView;
[0;36m|[0;0m |- [1;39mnote: [1;39mcalls to instance method 'addSubview(_:positioned:relativeTo:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmain actor isolation inferred from inheritance from class 'NSResponder'[0;0m
[0;36m103 |[0;0m - (void)sortSubviewsUsingFunction:(NSComparisonResult (NS_NOESCAPE *)(__kindof NSView *, __kindof NSView *, void * _Nullable))compare context:(nullable void *)context;
[0;36m104 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:108:26: [1;33mwarning: [1;39mmain actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a nonisolated context[0;0m
[0;36m106 |[0;0m superview.addSubview(view, positioned: .below, relativeTo: oldView)
[0;36m107 |[0;0m #endif
[0;36m108 |[0;0m view.translatesAutoresizingMaskIntoConstraints = false
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a nonisolated context[0;0m
[0;36m109 |[0;0m NSLayoutConstraint.activate([
[0;36m110 |[0;0m view.topAnchor.constraint(equalTo: superview.topAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:276:16: [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m274 |[0;0m /* by default, the autoresizing mask on a view gives rise to constraints that fully determine the view's position. To do anything interesting with constraints, you need to turn that off. IB will turn it off.
[0;36m275 |[0;0m */
[0;36m276 |[0;0m @property BOOL translatesAutoresizingMaskIntoConstraints API_AVAILABLE(macos(10.7));
[0;36m|[0;0m `- [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m277 |[0;0m
[0;36m278 |[0;0m /* constraint based layout engages lazily when someone tries to use it. If you do all of your constraint set up in -updateConstraints, you might never even receive updateConstraints if no one makes a constraint. To fix this chicken and egg problem, override this method to return YES if your view needs the window to use constraint based layout.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:110:30: [1;33mwarning: [1;39mmain actor-isolated property 'topAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m108 |[0;0m view.translatesAutoresizingMaskIntoConstraints = false
[0;36m109 |[0;0m NSLayoutConstraint.activate([
[0;36m110 |[0;0m view.topAnchor.constraint(equalTo: superview.topAnchor),
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'topAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m111 |[0;0m view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
[0;36m112 |[0;0m view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:228:51: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m226 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(macos(10.11));
[0;36m227 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(macos(10.11));
[0;36m228 |[0;0m @property (readonly, strong) NSLayoutYAxisAnchor *topAnchor API_AVAILABLE(macos(10.11));
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m229 |[0;0m @property (readonly, strong) NSLayoutYAxisAnchor *bottomAnchor API_AVAILABLE(macos(10.11));
[0;36m230 |[0;0m @property (readonly, strong) NSLayoutDimension *widthAnchor API_AVAILABLE(macos(10.11));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:110:70: [1;33mwarning: [1;39mmain actor-isolated property 'topAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m108 |[0;0m view.translatesAutoresizingMaskIntoConstraints = false
[0;36m109 |[0;0m NSLayoutConstraint.activate([
[0;36m110 |[0;0m view.topAnchor.constraint(equalTo: superview.topAnchor),
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'topAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m111 |[0;0m view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
[0;36m112 |[0;0m view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:228:51: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m226 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(macos(10.11));
[0;36m227 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(macos(10.11));
[0;36m228 |[0;0m @property (readonly, strong) NSLayoutYAxisAnchor *topAnchor API_AVAILABLE(macos(10.11));
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m229 |[0;0m @property (readonly, strong) NSLayoutYAxisAnchor *bottomAnchor API_AVAILABLE(macos(10.11));
[0;36m230 |[0;0m @property (readonly, strong) NSLayoutDimension *widthAnchor API_AVAILABLE(macos(10.11));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:111:30: [1;33mwarning: [1;39mmain actor-isolated property 'leadingAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m109 |[0;0m NSLayoutConstraint.activate([
[0;36m110 |[0;0m view.topAnchor.constraint(equalTo: superview.topAnchor),
[0;36m111 |[0;0m view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'leadingAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m112 |[0;0m view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
[0;36m113 |[0;0m view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:224:51: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m222 |[0;0m See NSLayoutAnchor.h for more details.
[0;36m223 |[0;0m */
[0;36m224 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leadingAnchor API_AVAILABLE(macos(10.11));
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m225 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *trailingAnchor API_AVAILABLE(macos(10.11));
[0;36m226 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(macos(10.11));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:111:74: [1;33mwarning: [1;39mmain actor-isolated property 'leadingAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m109 |[0;0m NSLayoutConstraint.activate([
[0;36m110 |[0;0m view.topAnchor.constraint(equalTo: superview.topAnchor),
[0;36m111 |[0;0m view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'leadingAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m112 |[0;0m view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
[0;36m113 |[0;0m view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:224:51: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m222 |[0;0m See NSLayoutAnchor.h for more details.
[0;36m223 |[0;0m */
[0;36m224 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leadingAnchor API_AVAILABLE(macos(10.11));
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m225 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *trailingAnchor API_AVAILABLE(macos(10.11));
[0;36m226 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(macos(10.11));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:112:30: [1;33mwarning: [1;39mmain actor-isolated property 'bottomAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m110 |[0;0m view.topAnchor.constraint(equalTo: superview.topAnchor),
[0;36m111 |[0;0m view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
[0;36m112 |[0;0m view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'bottomAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m113 |[0;0m view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
[0;36m114 |[0;0m ])
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:229:51: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m227 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(macos(10.11));
[0;36m228 |[0;0m @property (readonly, strong) NSLayoutYAxisAnchor *topAnchor API_AVAILABLE(macos(10.11));
[0;36m229 |[0;0m @property (readonly, strong) NSLayoutYAxisAnchor *bottomAnchor API_AVAILABLE(macos(10.11));
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m230 |[0;0m @property (readonly, strong) NSLayoutDimension *widthAnchor API_AVAILABLE(macos(10.11));
[0;36m231 |[0;0m @property (readonly, strong) NSLayoutDimension *heightAnchor API_AVAILABLE(macos(10.11));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:112:73: [1;33mwarning: [1;39mmain actor-isolated property 'bottomAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m110 |[0;0m view.topAnchor.constraint(equalTo: superview.topAnchor),
[0;36m111 |[0;0m view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
[0;36m112 |[0;0m view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'bottomAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m113 |[0;0m view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
[0;36m114 |[0;0m ])
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:229:51: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m227 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(macos(10.11));
[0;36m228 |[0;0m @property (readonly, strong) NSLayoutYAxisAnchor *topAnchor API_AVAILABLE(macos(10.11));
[0;36m229 |[0;0m @property (readonly, strong) NSLayoutYAxisAnchor *bottomAnchor API_AVAILABLE(macos(10.11));
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m230 |[0;0m @property (readonly, strong) NSLayoutDimension *widthAnchor API_AVAILABLE(macos(10.11));
[0;36m231 |[0;0m @property (readonly, strong) NSLayoutDimension *heightAnchor API_AVAILABLE(macos(10.11));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:113:30: [1;33mwarning: [1;39mmain actor-isolated property 'trailingAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m111 |[0;0m view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
[0;36m112 |[0;0m view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
[0;36m113 |[0;0m view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'trailingAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m114 |[0;0m ])
[0;36m115 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:225:51: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m223 |[0;0m */
[0;36m224 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leadingAnchor API_AVAILABLE(macos(10.11));
[0;36m225 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *trailingAnchor API_AVAILABLE(macos(10.11));
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m226 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(macos(10.11));
[0;36m227 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(macos(10.11));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:113:75: [1;33mwarning: [1;39mmain actor-isolated property 'trailingAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m111 |[0;0m view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
[0;36m112 |[0;0m view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
[0;36m113 |[0;0m view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'trailingAnchor' can not be referenced from a nonisolated context[0;0m
[0;36m114 |[0;0m ])
[0;36m115 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSLayoutConstraint.h:225:51: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m223 |[0;0m */
[0;36m224 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leadingAnchor API_AVAILABLE(macos(10.11));
[0;36m225 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *trailingAnchor API_AVAILABLE(macos(10.11));
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m226 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(macos(10.11));
[0;36m227 |[0;0m @property (readonly, strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(macos(10.11));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:116:32: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m114 |[0;0m ])
[0;36m115 |[0;0m }
[0;36m116 |[0;0m oldValue.view?.removeFromSuperview()
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m117 |[0;0m }
[0;36m118 |[0;0m player.playbackRate = oldValue.playbackRate
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:115:1: [1;39mnote: [1;39mcalls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m113 |[0;0m - (void)willRemoveSubview:(NSView *)subview;
[0;36m114 |[0;0m
[0;36m115 |[0;0m - (void)removeFromSuperview;
[0;36m|[0;0m |- [1;39mnote: [1;39mcalls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmain actor isolation inferred from inheritance from class 'NSResponder'[0;0m
[0;36m116 |[0;0m - (void)replaceSubview:(NSView *)oldView with:(NSView *)newView;
[0;36m117 |[0;0m - (void)removeFromSuperviewWithoutNeedingDisplay;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:176:19: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'KSPlayerLayer?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m65 |[0;0m }
[0;36m66 |[0;0m
[0;36m67 |[0;0m open class KSPlayerLayer: NSObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'KSPlayerLayer' does not conform to the 'Sendable' protocol[0;0m
[0;36m68 |[0;0m public weak var delegate: KSPlayerLayerDelegate?
[0;36m69 |[0;0m @Published
[0;36m:[0;0m
[0;36m174 |[0;0m
[0;36m175 |[0;0m private lazy var timer: Timer = .scheduledTimer(withTimeInterval: 0.1, repeats: true) { [weak self] _ in
[0;36m176 |[0;0m guard let self, self.player.isReadyToPlay else {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'KSPlayerLayer?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m177 |[0;0m return
[0;36m178 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:179:24: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m60 |[0;0m public protocol KSPlayerLayerDelegate: AnyObject {
[0;36m61 |[0;0m func player(layer: KSPlayerLayer, state: KSPlayerState)
[0;36m62 |[0;0m func player(layer: KSPlayerLayer, currentTime: TimeInterval, totalTime: TimeInterval)
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'player(layer:currentTime:totalTime:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m63 |[0;0m func player(layer: KSPlayerLayer, finish error: Error?)
[0;36m64 |[0;0m func player(layer: KSPlayerLayer, bufferedCount: Int, consumeTime: TimeInterval)
[0;36m:[0;0m
[0;36m177 |[0;0m return
[0;36m178 |[0;0m }
[0;36m179 |[0;0m self.delegate?.player(layer: self, currentTime: self.player.currentPlaybackTime, totalTime: self.player.duration)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m180 |[0;0m if self.player.playbackState == .playing, self.player.loadState == .playable, self.state == .buffering {
[0;36m181 |[0;0m // 一个兜底保护,正常不能走到这里
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:488:5: [1;33mwarning: [1;39mnon-'@objc' instance method declared in extension cannot be overridden; use 'public' instead; this will be an error in a future Swift language mode[0;0m
[0;36m486 |[0;0m
[0;36m487 |[0;0m extension KSPlayerLayer {
[0;36m488 |[0;0m open func prepareToPlay() {
[0;36m|[0;0m `- [1;33mwarning: [1;39mnon-'@objc' instance method declared in extension cannot be overridden; use 'public' instead; this will be an error in a future Swift language mode[0;0m
[0;36m489 |[0;0m state = .preparing
[0;36m490 |[0;0m startTime = CACurrentMediaTime()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:169:36: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'player(layer:state:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m59 |[0;0m @MainActor
[0;36m60 |[0;0m public protocol KSPlayerLayerDelegate: AnyObject {
[0;36m61 |[0;0m func player(layer: KSPlayerLayer, state: KSPlayerState)
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'player(layer:state:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m62 |[0;0m func player(layer: KSPlayerLayer, currentTime: TimeInterval, totalTime: TimeInterval)
[0;36m63 |[0;0m func player(layer: KSPlayerLayer, finish error: Error?)
[0;36m:[0;0m
[0;36m167 |[0;0m guard let self else { return }
[0;36m168 |[0;0m KSLog("playerStateDidChange - \(newValue)")
[0;36m169 |[0;0m self.delegate?.player(layer: self, state: newValue)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'player(layer:state:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m170 |[0;0m }
[0;36m171 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:281:34: [1;33mwarning: [1;39mmain actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context[0;0m
[0;36m279 |[0;0m open func play() {
[0;36m280 |[0;0m runOnMainThread {
[0;36m281 |[0;0m UIApplication.shared.isIdleTimerDisabled = true
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context[0;0m
[0;36m282 |[0;0m }
[0;36m283 |[0;0m isAutoPlay = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:315:9: [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m313 |[0;0m }
[0;36m314 |[0;0m
[0;36m315 |[0;0m var isIdleTimerDisabled: Bool {
[0;36m|[0;0m `- [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m316 |[0;0m get {
[0;36m317 |[0;0m UIApplication.isIdleTimerDisabled
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:281:27: [1;33mwarning: [1;39mmain actor-isolated class property 'shared' can not be mutated from a nonisolated context[0;0m
[0;36m279 |[0;0m open func play() {
[0;36m280 |[0;0m runOnMainThread {
[0;36m281 |[0;0m UIApplication.shared.isIdleTimerDisabled = true
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated class property 'shared' can not be mutated from a nonisolated context[0;0m
[0;36m282 |[0;0m }
[0;36m283 |[0;0m isAutoPlay = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:198:61: [1;39mnote: [1;39mmutation of this class property is only permitted within the actor[0;0m
[0;36m196 |[0;0m APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
[0;36m197 |[0;0m
[0;36m198 |[0;0m @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
[0;36m|[0;0m `- [1;39mnote: [1;39mmutation of this class property is only permitted within the actor[0;0m
[0;36m199 |[0;0m @property (nullable, weak) id<NSApplicationDelegate> delegate;
[0;36m200 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:314:34: [1;33mwarning: [1;39mmain actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context[0;0m
[0;36m312 |[0;0m MPNowPlayingInfoCenter.default().playbackState = .paused
[0;36m313 |[0;0m runOnMainThread {
[0;36m314 |[0;0m UIApplication.shared.isIdleTimerDisabled = false
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context[0;0m
[0;36m315 |[0;0m }
[0;36m316 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:315:9: [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m313 |[0;0m }
[0;36m314 |[0;0m
[0;36m315 |[0;0m var isIdleTimerDisabled: Bool {
[0;36m|[0;0m `- [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m316 |[0;0m get {
[0;36m317 |[0;0m UIApplication.isIdleTimerDisabled
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:314:27: [1;33mwarning: [1;39mmain actor-isolated class property 'shared' can not be mutated from a nonisolated context[0;0m
[0;36m312 |[0;0m MPNowPlayingInfoCenter.default().playbackState = .paused
[0;36m313 |[0;0m runOnMainThread {
[0;36m314 |[0;0m UIApplication.shared.isIdleTimerDisabled = false
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated class property 'shared' can not be mutated from a nonisolated context[0;0m
[0;36m315 |[0;0m }
[0;36m316 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:198:61: [1;39mnote: [1;39mmutation of this class property is only permitted within the actor[0;0m
[0;36m196 |[0;0m APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
[0;36m197 |[0;0m
[0;36m198 |[0;0m @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
[0;36m|[0;0m `- [1;39mnote: [1;39mmutation of this class property is only permitted within the actor[0;0m
[0;36m199 |[0;0m @property (nullable, weak) id<NSApplicationDelegate> delegate;
[0;36m200 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:328:34: [1;33mwarning: [1;39mmain actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context[0;0m
[0;36m326 |[0;0m MPNowPlayingInfoCenter.default().nowPlayingInfo = nil
[0;36m327 |[0;0m runOnMainThread {
[0;36m328 |[0;0m UIApplication.shared.isIdleTimerDisabled = false
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context[0;0m
[0;36m329 |[0;0m }
[0;36m330 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:315:9: [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m313 |[0;0m }
[0;36m314 |[0;0m
[0;36m315 |[0;0m var isIdleTimerDisabled: Bool {
[0;36m|[0;0m `- [1;39mnote: [1;39mmutation of this property is only permitted within the actor[0;0m
[0;36m316 |[0;0m get {
[0;36m317 |[0;0m UIApplication.isIdleTimerDisabled
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:328:27: [1;33mwarning: [1;39mmain actor-isolated class property 'shared' can not be mutated from a nonisolated context[0;0m
[0;36m326 |[0;0m MPNowPlayingInfoCenter.default().nowPlayingInfo = nil
[0;36m327 |[0;0m runOnMainThread {
[0;36m328 |[0;0m UIApplication.shared.isIdleTimerDisabled = false
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated class property 'shared' can not be mutated from a nonisolated context[0;0m
[0;36m329 |[0;0m }
[0;36m330 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:198:61: [1;39mnote: [1;39mmutation of this class property is only permitted within the actor[0;0m
[0;36m196 |[0;0m APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
[0;36m197 |[0;0m
[0;36m198 |[0;0m @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
[0;36m|[0;0m `- [1;39mnote: [1;39mmutation of this class property is only permitted within the actor[0;0m
[0;36m199 |[0;0m @property (nullable, weak) id<NSApplicationDelegate> delegate;
[0;36m200 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:313:32: [1;33mwarning: [1;39msending value of non-Sendable type 'any MediaPlayerDelegate' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m311 |[0;0m loopCountObservation = playerLooper?.observe(\.loopCount) { [weak self] playerLooper, _ in
[0;36m312 |[0;0m guard let self else { return }
[0;36m313 |[0;0m self.delegate?.playBack(player: self, loopCount: playerLooper.loopCount)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending value of non-Sendable type 'any MediaPlayerDelegate' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39msending main actor-isolated value of non-Sendable type 'any MediaPlayerDelegate' to main actor-isolated instance method 'playBack(player:loopCount:)' risks causing races in between main actor-isolated and main actor-isolated uses[0;0m
[0;36m314 |[0;0m }
[0;36m315 |[0;0m loopStatusObservation = playerLooper?.observe(\.status) { [weak self] playerLooper, _ in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:84:25: [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m82 |[0;0m // 一定要async才不会pip之后就暂停播放
[0;36m83 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m84 |[0;0m guard let self else { return }
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m85 |[0;0m pipController.start(view: self)
[0;36m86 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:85:39: [1;33mwarning: [1;39msending 'pipController' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m83 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m84 |[0;0m guard let self else { return }
[0;36m85 |[0;0m pipController.start(view: self)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'pipController' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'pipController' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m86 |[0;0m }
[0;36m87 |[0;0m } else {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:169:36: [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m167 |[0;0m guard let self else { return }
[0;36m168 |[0;0m KSLog("playerStateDidChange - \(newValue)")
[0;36m169 |[0;0m self.delegate?.player(layer: self, state: newValue)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39msending 'self' to main actor-isolated instance method 'player(layer:state:)' risks causing data races between main actor-isolated code and code in the current isolation context[0;0m
[0;36m170 |[0;0m }
[0;36m171 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:169:36: [1;33mwarning: [1;39msending 'newValue' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m167 |[0;0m guard let self else { return }
[0;36m168 |[0;0m KSLog("playerStateDidChange - \(newValue)")
[0;36m169 |[0;0m self.delegate?.player(layer: self, state: newValue)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'newValue' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39msending 'newValue' to main actor-isolated instance method 'player(layer:state:)' risks causing data races between main actor-isolated code and code in the current isolation context[0;0m
[0;36m170 |[0;0m }
[0;36m171 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:169:36: [1;33mwarning: [1;39msending value of non-Sendable type 'any KSPlayerLayerDelegate' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m167 |[0;0m guard let self else { return }
[0;36m168 |[0;0m KSLog("playerStateDidChange - \(newValue)")
[0;36m169 |[0;0m self.delegate?.player(layer: self, state: newValue)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending value of non-Sendable type 'any KSPlayerLayerDelegate' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39msending value of non-Sendable type 'any KSPlayerLayerDelegate' to main actor-isolated instance method 'player(layer:state:)' risks causing races in between code in the current isolation context and main actor-isolated uses[0;0m
[0;36m170 |[0;0m }
[0;36m171 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:179:24: [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m177 |[0;0m return
[0;36m178 |[0;0m }
[0;36m179 |[0;0m self.delegate?.player(layer: self, currentTime: self.player.currentPlaybackTime, totalTime: self.player.duration)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39msending 'self' to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' risks causing data races between main actor-isolated code and code in the current isolation context[0;0m
[0;36m180 |[0;0m if self.player.playbackState == .playing, self.player.loadState == .playable, self.state == .buffering {
[0;36m181 |[0;0m // 一个兜底保护,正常不能走到这里
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:179:24: [1;33mwarning: [1;39msending value of non-Sendable type 'any KSPlayerLayerDelegate' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m177 |[0;0m return
[0;36m178 |[0;0m }
[0;36m179 |[0;0m self.delegate?.player(layer: self, currentTime: self.player.currentPlaybackTime, totalTime: self.player.duration)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending value of non-Sendable type 'any KSPlayerLayerDelegate' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39msending value of non-Sendable type 'any KSPlayerLayerDelegate' to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' risks causing races in between code in the current isolation context and main actor-isolated uses[0;0m
[0;36m180 |[0;0m if self.player.playbackState == .playing, self.player.loadState == .playable, self.state == .buffering {
[0;36m181 |[0;0m // 一个兜底保护,正常不能走到这里
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#ConformanceIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation>
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
[#RegionIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/region-isolation>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[#VariableNeverMutated]: <https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated>
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:95:37: [1;33mwarning: [1;39minitialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m93 |[0;0m }
[0;36m94 |[0;0m } else if sideData.type == AV_FRAME_DATA_DOVI_RPU_BUFFER {
[0;36m95 |[0;0m let data = sideData.data.withMemoryRebound(to: [UInt8].self, capacity: 1) { $0 }
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m96 |[0;0m } else if sideData.type == AV_FRAME_DATA_DOVI_METADATA { // AVDOVIMetadata
[0;36m97 |[0;0m let data = sideData.data.withMemoryRebound(to: AVDOVIMetadata.self, capacity: 1) { $0 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:98:37: [1;33mwarning: [1;39minitialization of immutable value 'header' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m96 |[0;0m } else if sideData.type == AV_FRAME_DATA_DOVI_METADATA { // AVDOVIMetadata
[0;36m97 |[0;0m let data = sideData.data.withMemoryRebound(to: AVDOVIMetadata.self, capacity: 1) { $0 }
[0;36m98 |[0;0m let header = av_dovi_get_header(data)
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'header' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m99 |[0;0m let mapping = av_dovi_get_mapping(data)
[0;36m100 |[0;0m let color = av_dovi_get_color(data)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:99:37: [1;33mwarning: [1;39minitialization of immutable value 'mapping' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m97 |[0;0m let data = sideData.data.withMemoryRebound(to: AVDOVIMetadata.self, capacity: 1) { $0 }
[0;36m98 |[0;0m let header = av_dovi_get_header(data)
[0;36m99 |[0;0m let mapping = av_dovi_get_mapping(data)
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'mapping' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m100 |[0;0m let color = av_dovi_get_color(data)
[0;36m101 |[0;0m // frame.corePixelBuffer?.transferFunction = kCVImageBufferTransferFunction_ITU_R_2020
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:100:37: [1;33mwarning: [1;39minitialization of immutable value 'color' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m98 |[0;0m let header = av_dovi_get_header(data)
[0;36m99 |[0;0m let mapping = av_dovi_get_mapping(data)
[0;36m100 |[0;0m let color = av_dovi_get_color(data)
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'color' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m101 |[0;0m // frame.corePixelBuffer?.transferFunction = kCVImageBufferTransferFunction_ITU_R_2020
[0;36m102 |[0;0m } else if sideData.type == AV_FRAME_DATA_DYNAMIC_HDR_PLUS { // AVDynamicHDRPlus
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:103:37: [1;33mwarning: [1;39minitialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m101 |[0;0m // frame.corePixelBuffer?.transferFunction = kCVImageBufferTransferFunction_ITU_R_2020
[0;36m102 |[0;0m } else if sideData.type == AV_FRAME_DATA_DYNAMIC_HDR_PLUS { // AVDynamicHDRPlus
[0;36m103 |[0;0m let data = sideData.data.withMemoryRebound(to: AVDynamicHDRPlus.self, capacity: 1) { $0 }.pointee
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m104 |[0;0m } else if sideData.type == AV_FRAME_DATA_DYNAMIC_HDR_VIVID { // AVDynamicHDRVivid
[0;36m105 |[0;0m let data = sideData.data.withMemoryRebound(to: AVDynamicHDRVivid.self, capacity: 1) { $0 }.pointee
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:105:37: [1;33mwarning: [1;39minitialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m103 |[0;0m let data = sideData.data.withMemoryRebound(to: AVDynamicHDRPlus.self, capacity: 1) { $0 }.pointee
[0;36m104 |[0;0m } else if sideData.type == AV_FRAME_DATA_DYNAMIC_HDR_VIVID { // AVDynamicHDRVivid
[0;36m105 |[0;0m let data = sideData.data.withMemoryRebound(to: AVDynamicHDRVivid.self, capacity: 1) { $0 }.pointee
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m106 |[0;0m } else if sideData.type == AV_FRAME_DATA_MASTERING_DISPLAY_METADATA {
[0;36m107 |[0;0m let data = sideData.data.withMemoryRebound(to: AVMasteringDisplayMetadata.self, capacity: 1) { $0 }.pointee
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:26:27: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m24 |[0;0m oldValue?.invalidate()
[0;36m25 |[0;0m runOnMainThread {
[0;36m26 |[0;0m oldValue?.removeFromSuperview()
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m27 |[0;0m }
[0;36m28 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:115:1: [1;39mnote: [1;39mcalls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m113 |[0;0m - (void)willRemoveSubview:(NSView *)subview;
[0;36m114 |[0;0m
[0;36m115 |[0;0m - (void)removeFromSuperview;
[0;36m|[0;0m |- [1;39mnote: [1;39mcalls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmain actor isolation inferred from inheritance from class 'NSResponder'[0;0m
[0;36m116 |[0;0m - (void)replaceSubview:(NSView *)oldView with:(NSView *)newView;
[0;36m117 |[0;0m - (void)removeFromSuperviewWithoutNeedingDisplay;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:110:35: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m108 |[0;0m runOnMainThread { [weak self] in
[0;36m109 |[0;0m guard let self else { return }
[0;36m110 |[0;0m delegate?.finish(player: self, error: nil)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m111 |[0;0m }
[0;36m112 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: [1;39mnote: [1;39mcalls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m112 |[0;0m func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
[0;36m113 |[0;0m func playBack(player: some MediaPlayerProtocol, loopCount: Int)
[0;36m114 |[0;0m func finish(player: some MediaPlayerProtocol, error: Error?)
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m115 |[0;0m }
[0;36m116 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:291:23: [1;33mwarning: [1;39mconformance of 'KSMEPlayer' to protocol 'MediaPlayerProtocol' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation\ConformanceIsolation]8;;\]
[0;36m289 |[0;0m }
[0;36m290 |[0;0m
[0;36m291 |[0;0m extension KSMEPlayer: MediaPlayerProtocol {
[0;36m|[0;0m |- [1;33mwarning: [1;39mconformance of 'KSMEPlayer' to protocol 'MediaPlayerProtocol' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation\ConformanceIsolation]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39misolate this conformance to the main actor with '@MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mturn data races into runtime errors with '@preconcurrency'[0;0m
[0;36m292 |[0;0m public var chapters: [Chapter] {
[0;36m293 |[0;0m playerItem.chapters
[0;36m:[0;0m
[0;36m427 |[0;0m
[0;36m428 |[0;0m @MainActor
[0;36m429 |[0;0m public var contentMode: UIViewContentMode {
[0;36m|[0;0m `- [1;39mnote: [1;39mmain actor-isolated property 'contentMode' cannot satisfy nonisolated requirement[0;0m
[0;36m430 |[0;0m get {
[0;36m431 |[0;0m view?.contentMode ?? .center
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:291:1: [1;33mwarning: [1;39mconformance of 'KSMEPlayer' to protocol 'MediaPlayback' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation\ConformanceIsolation]8;;\]
[0;36m289 |[0;0m }
[0;36m290 |[0;0m
[0;36m291 |[0;0m extension KSMEPlayer: MediaPlayerProtocol {
[0;36m|[0;0m |- [1;33mwarning: [1;39mconformance of 'KSMEPlayer' to protocol 'MediaPlayback' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation\ConformanceIsolation]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39misolate this conformance to the main actor with '@MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mturn data races into runtime errors with '@preconcurrency'[0;0m
[0;36m292 |[0;0m public var chapters: [Chapter] {
[0;36m293 |[0;0m playerItem.chapters
[0;36m:[0;0m
[0;36m307 |[0;0m
[0;36m308 |[0;0m @MainActor
[0;36m309 |[0;0m public var naturalSize: CGSize {
[0;36m|[0;0m `- [1;39mnote: [1;39mmain actor-isolated property 'naturalSize' cannot satisfy nonisolated requirement[0;0m
[0;36m310 |[0;0m options.display == .plane ? playerItem.naturalSize : KSOptions.sceneSize
[0;36m311 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:16:14: [1;33mwarning: [1;39mnon-final class 'KSMEPlayer' cannot conform to the 'Sendable' protocol[0;0m
[0;36m14 |[0;0m #endif
[0;36m15 |[0;0m
[0;36m16 |[0;0m public class KSMEPlayer: NSObject {
[0;36m|[0;0m `- [1;33mwarning: [1;39mnon-final class 'KSMEPlayer' cannot conform to the 'Sendable' protocol[0;0m
[0;36m17 |[0;0m private var loopCount = 1
[0;36m18 |[0;0m private var playerItem: MEPlayerItem
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:17:17: [1;33mwarning: [1;39mstored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable[0;0m
[0;36m15 |[0;0m
[0;36m16 |[0;0m public class KSMEPlayer: NSObject {
[0;36m17 |[0;0m private var loopCount = 1
[0;36m|[0;0m `- [1;33mwarning: [1;39mstored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable[0;0m
[0;36m18 |[0;0m private var playerItem: MEPlayerItem
[0;36m19 |[0;0m public let audioOutput: AudioOutput
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:35:27: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'changeBuffering(player:progress:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m33 |[0;0m runOnMainThread { [weak self] in
[0;36m34 |[0;0m guard let self else { return }
[0;36m35 |[0;0m delegate?.changeBuffering(player: self, progress: newValue)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'changeBuffering(player:progress:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m36 |[0;0m }
[0;36m37 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:112:10: [1;39mnote: [1;39mcalls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m110 |[0;0m func changeLoadState(player: some MediaPlayerProtocol)
[0;36m111 |[0;0m // 缓冲加载进度,0-100
[0;36m112 |[0;0m func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m113 |[0;0m func playBack(player: some MediaPlayerProtocol, loopCount: Int)
[0;36m114 |[0;0m func finish(player: some MediaPlayerProtocol, error: Error?)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:164:28: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m162 |[0;0m self.videoOutput?.play()
[0;36m163 |[0;0m }
[0;36m164 |[0;0m self.delegate?.changeLoadState(player: self)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m165 |[0;0m }
[0;36m166 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:110:10: [1;39mnote: [1;39mcalls to instance method 'changeLoadState(player:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m108 |[0;0m public protocol MediaPlayerDelegate: AnyObject {
[0;36m109 |[0;0m func readyToPlay(player: some MediaPlayerProtocol)
[0;36m110 |[0;0m func changeLoadState(player: some MediaPlayerProtocol)
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'changeLoadState(player:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m111 |[0;0m // 缓冲加载进度,0-100
[0;36m112 |[0;0m func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:210:64: [1;33mwarning: [1;39mmain actor-isolated property 'controlTimebase' can not be referenced from a nonisolated context[0;0m
[0;36m208 |[0;0m audioOutput.prepare(audioFormat: audioDescriptor.audioFormat)
[0;36m209 |[0;0m }
[0;36m210 |[0;0m if let controlTimebase = videoOutput?.displayLayer.controlTimebase, options.startPlayTime > 1 {
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'controlTimebase' can not be referenced from a nonisolated context[0;0m
[0;36m211 |[0;0m CMTimebaseSetTime(controlTimebase, time: CMTimeMake(value: Int64(options.startPlayTime), timescale: 1))
[0;36m212 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVSampleBufferDisplayLayer.h:54:70: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m52 |[0;0m ///
[0;36m53 |[0;0m /// Note that prior to OSX 10.10 and iOS 8.0, the control timebase could not be changed after enqueueSampleBuffer: was called. As of OSX 10.10 and iOS 8.0, the control timebase may be changed at any time.
[0;36m54 |[0;0m @property (retain, nullable) __attribute__((NSObject)) CMTimebaseRef controlTimebase;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m55 |[0;0m
[0;36m56 |[0;0m /// A string defining how the video is displayed within an AVSampleBufferDisplayLayer bounds rect. @discusssion Options are AVLayerVideoGravityResizeAspect, AVLayerVideoGravityResizeAspectFill and AVLayerVideoGravityResize. AVLayerVideoGravityResizeAspect is default. See <AVFoundation/AVAnimation.h> for a description of these options.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:213:23: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'readyToPlay(player:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m211 |[0;0m CMTimebaseSetTime(controlTimebase, time: CMTimeMake(value: Int64(options.startPlayTime), timescale: 1))
[0;36m212 |[0;0m }
[0;36m213 |[0;0m delegate?.readyToPlay(player: self)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'readyToPlay(player:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m214 |[0;0m }
[0;36m215 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:109:10: [1;39mnote: [1;39mcalls to instance method 'readyToPlay(player:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m107 |[0;0m @MainActor
[0;36m108 |[0;0m public protocol MediaPlayerDelegate: AnyObject {
[0;36m109 |[0;0m func readyToPlay(player: some MediaPlayerProtocol)
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'readyToPlay(player:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m110 |[0;0m func changeLoadState(player: some MediaPlayerProtocol)
[0;36m111 |[0;0m // 缓冲加载进度,0-100
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:220:28: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m218 |[0;0m runOnMainThread { [weak self] in
[0;36m219 |[0;0m guard let self else { return }
[0;36m220 |[0;0m self.delegate?.finish(player: self, error: error)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m221 |[0;0m }
[0;36m222 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: [1;39mnote: [1;39mcalls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m112 |[0;0m func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
[0;36m113 |[0;0m func playBack(player: some MediaPlayerProtocol, loopCount: Int)
[0;36m114 |[0;0m func finish(player: some MediaPlayerProtocol, error: Error?)
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m115 |[0;0m }
[0;36m116 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:229:32: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m227 |[0;0m if self.options.isLoopPlay {
[0;36m228 |[0;0m self.loopCount += 1
[0;36m229 |[0;0m self.delegate?.playBack(player: self, loopCount: self.loopCount)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m230 |[0;0m self.audioOutput.play()
[0;36m231 |[0;0m self.videoOutput?.play()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:113:10: [1;39mnote: [1;39mcalls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m111 |[0;0m // 缓冲加载进度,0-100
[0;36m112 |[0;0m func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
[0;36m113 |[0;0m func playBack(player: some MediaPlayerProtocol, loopCount: Int)
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m114 |[0;0m func finish(player: some MediaPlayerProtocol, error: Error?)
[0;36m115 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:373:77: [1;33mwarning: [1;39mmain actor-isolated property 'controlTimebase' can not be referenced from a nonisolated context[0;0m
[0;36m371 |[0;0m runOnMainThread { [weak self] in
[0;36m372 |[0;0m guard let self else { return }
[0;36m373 |[0;0m if let controlTimebase = self.videoOutput?.displayLayer.controlTimebase {
[0;36m|[0;0m `- [1;33mwarning: [1;39mmain actor-isolated property 'controlTimebase' can not be referenced from a nonisolated context[0;0m
[0;36m374 |[0;0m CMTimebaseSetTime(controlTimebase, time: CMTimeMake(value: Int64(self.currentPlaybackTime), timescale: 1))
[0;36m375 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVSampleBufferDisplayLayer.h:54:70: [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m52 |[0;0m ///
[0;36m53 |[0;0m /// Note that prior to OSX 10.10 and iOS 8.0, the control timebase could not be changed after enqueueSampleBuffer: was called. As of OSX 10.10 and iOS 8.0, the control timebase may be changed at any time.
[0;36m54 |[0;0m @property (retain, nullable) __attribute__((NSObject)) CMTimebaseRef controlTimebase;
[0;36m|[0;0m `- [1;39mnote: [1;39mproperty declared here[0;0m
[0;36m55 |[0;0m
[0;36m56 |[0;0m /// A string defining how the video is displayed within an AVSampleBufferDisplayLayer bounds rect. @discusssion Options are AVLayerVideoGravityResizeAspect, AVLayerVideoGravityResizeAspectFill and AVLayerVideoGravityResize. AVLayerVideoGravityResizeAspect is default. See <AVFoundation/AVAnimation.h> for a description of these options.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: [1;33mwarning: [1;39mcapture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m514 |[0;0m self.play()
[0;36m515 |[0;0m }
[0;36m516 |[0;0m completionHandler()
[0;36m|[0;0m |- [1;33mwarning: [1;39mcapture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39ma function type must be marked '@Sendable' to conform to 'Sendable'[0;0m
[0;36m517 |[0;0m }
[0;36m518 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: [1;33mwarning: [1;39mcapture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m530 |[0;0m self.pause()
[0;36m531 |[0;0m }
[0;36m532 |[0;0m completionHandler()
[0;36m|[0;0m |- [1;33mwarning: [1;39mcapture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39ma function type must be marked '@Sendable' to conform to 'Sendable'[0;0m
[0;36m533 |[0;0m }
[0;36m534 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: [1;33mwarning: [1;39mcapture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m555 |[0;0m }
[0;36m556 |[0;0m guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
[0;36m557 |[0;0m completionHandler()
[0;36m|[0;0m |- [1;33mwarning: [1;39mcapture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39ma function type must be marked '@Sendable' to conform to 'Sendable'[0;0m
[0;36m558 |[0;0m return
[0;36m559 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:563:17: [1;33mwarning: [1;39mcapture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m561 |[0;0m self.bufferingCountDownTimer = nil
[0;36m562 |[0;0m self.bufferingCountDownTimer = Timer(timeInterval: countDown, repeats: false) { _ in
[0;36m563 |[0;0m completionHandler()
[0;36m|[0;0m |- [1;33mwarning: [1;39mcapture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39ma function type must be marked '@Sendable' to conform to 'Sendable'[0;0m
[0;36m564 |[0;0m }
[0;36m565 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:94:24: [1;33mwarning: [1;39mstatic property 'onceInitial' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m92 |[0;0m }
[0;36m93 |[0;0m
[0;36m94 |[0;0m private static var onceInitial: Void = {
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'onceInitial' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'onceInitial' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'onceInitial' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m95 |[0;0m var result = avformat_network_init()
[0;36m96 |[0;0m av_log_set_callback { ptr, level, format, args in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:16:17: [1;33mwarning: [1;39mstored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-Sendable type 'KSOptions'; this is an error in the Swift 6 language mode[0;0m
[0;36m14 |[0;0m public final class MEPlayerItem: Sendable {
[0;36m15 |[0;0m private let url: URL
[0;36m16 |[0;0m private let options: KSOptions
[0;36m|[0;0m `- [1;33mwarning: [1;39mstored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-Sendable type 'KSOptions'; this is an error in the Swift 6 language mode[0;0m
[0;36m17 |[0;0m private let operationQueue = OperationQueue()
[0;36m18 |[0;0m private let condition = NSCondition()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:17:12: [1;39mnote: [1;39mclass 'KSOptions' does not conform to the 'Sendable' protocol[0;0m
[0;36m15 |[0;0m import UIKit
[0;36m16 |[0;0m #endif
[0;36m17 |[0;0m open class KSOptions {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'KSOptions' does not conform to the 'Sendable' protocol[0;0m
[0;36m18 |[0;0m /// 最低缓存视频时间
[0;36m19 |[0;0m @Published
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:19:17: [1;33mwarning: [1;39mstored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode[0;0m
[0;36m17 |[0;0m private let operationQueue = OperationQueue()
[0;36m18 |[0;0m private let condition = NSCondition()
[0;36m19 |[0;0m private var formatCtx: UnsafeMutablePointer<AVFormatContext>?
[0;36m|[0;0m `- [1;33mwarning: [1;39mstored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode[0;0m
[0;36m20 |[0;0m private var outputFormatCtx: UnsafeMutablePointer<AVFormatContext>?
[0;36m21 |[0;0m private var outputPacket: UnsafeMutablePointer<AVPacket>?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:441:21: [1;33mwarning: [1;39minitialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m439 |[0;0m let flags = seekByBytes ? AVSEEK_FLAG_BYTE : 0
[0;36m440 |[0;0m let seekStartTime = CACurrentMediaTime()
[0;36m441 |[0;0m let result = avformat_seek_file(formatCtx, -1, Int64.min, timestamp.value, Int64.max, flags)
[0;36m|[0;0m `- [1;33mwarning: [1;39minitialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m442 |[0;0m audioClock.time = timestamp
[0;36m443 |[0;0m videoClock.time = timestamp
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:507:52: [1;33mwarning: [1;39mreference to captured var 'result' in concurrently-executing code[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m505 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m506 |[0;0m guard let self else { return }
[0;36m507 |[0;0m self.seekingCompletionHandler?(result >= 0)
[0;36m|[0;0m `- [1;33mwarning: [1;39mreference to captured var 'result' in concurrently-executing code[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m508 |[0;0m self.seekingCompletionHandler = nil
[0;36m509 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift:223:23: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m177 |[0;0m }
[0;36m178 |[0;0m
[0;36m179 |[0;0m final class AsyncPlayerItemTrack<Frame: MEFrame>: SyncPlayerItemTrack<Frame> {
[0;36m|[0;0m `- [1;39mnote: [1;39mgeneric class 'AsyncPlayerItemTrack' does not conform to the 'Sendable' protocol[0;0m
[0;36m180 |[0;0m private let operationQueue = OperationQueue()
[0;36m181 |[0;0m private var decodeOperation: BlockOperation!
[0;36m:[0;0m
[0;36m221 |[0;0m guard operationQueue.operationCount == 0 else { return }
[0;36m222 |[0;0m decodeOperation = BlockOperation { [weak self] in
[0;36m223 |[0;0m guard let self else { return }
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m224 |[0;0m Thread.current.name = self.operationQueue.name
[0;36m225 |[0;0m Thread.current.stackSize = KSOptions.stackSize
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift:223:23: [1;33mwarning: [1;39mcapture of non-Sendable type 'Frame.Type' in an isolated closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes\SendableMetatypes]8;;\]
[0;36m221 |[0;0m guard operationQueue.operationCount == 0 else { return }
[0;36m222 |[0;0m decodeOperation = BlockOperation { [weak self] in
[0;36m223 |[0;0m guard let self else { return }
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of non-Sendable type 'Frame.Type' in an isolated closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes\SendableMetatypes]8;;\]
[0;36m224 |[0;0m Thread.current.name = self.operationQueue.name
[0;36m225 |[0;0m Thread.current.stackSize = KSOptions.stackSize
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:28:43: [1;33mwarning: [1;39mconformance of 'MetalPlayView' to protocol 'VideoOutput' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation\ConformanceIsolation]8;;\]
[0;36m26 |[0;0m }
[0;36m27 |[0;0m
[0;36m28 |[0;0m public final class MetalPlayView: UIView, VideoOutput {
[0;36m|[0;0m |- [1;33mwarning: [1;39mconformance of 'MetalPlayView' to protocol 'VideoOutput' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation\ConformanceIsolation]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39misolate this conformance to the main actor with '@MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mturn data races into runtime errors with '@preconcurrency'[0;0m
[0;36m29 |[0;0m public var displayLayer: AVSampleBufferDisplayLayer {
[0;36m|[0;0m |- [1;39mnote: [1;39mmain actor-isolated property 'displayLayer' cannot satisfy nonisolated requirement[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmark property 'displayLayer' 'nonisolated'[0;0m
[0;36m30 |[0;0m displayView.displayLayer
[0;36m31 |[0;0m }
[0;36m:[0;0m
[0;36m54 |[0;0m }
[0;36m55 |[0;0m
[0;36m56 |[0;0m public private(set) var pixelBuffer: PixelBufferProtocol?
[0;36m|[0;0m |- [1;39mnote: [1;39mmain actor-isolated property 'pixelBuffer' cannot satisfy nonisolated requirement[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mchange property 'pixelBuffer' to a 'nonisolated let' constant[0;0m
[0;36m57 |[0;0m /// 用displayLink会导致锁屏无法draw,
[0;36m58 |[0;0m /// 用DispatchSourceTimer的话,在播放4k视频的时候repeat的时间会变长,
[0;36m:[0;0m
[0;36m60 |[0;0m private var displayLink: CADisplayLink!
[0;36m61 |[0;0m // private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
[0;36m62 |[0;0m public var options: KSOptions
[0;36m|[0;0m `- [1;39mnote: [1;39mmain actor-isolated property 'options' cannot satisfy nonisolated requirement[0;0m
[0;36m63 |[0;0m public weak var renderSource: OutputRenderSourceDelegate?
[0;36m64 |[0;0m // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
[0;36m:[0;0m
[0;36m70 |[0;0m
[0;36m71 |[0;0m private let metalView = MetalView()
[0;36m72 |[0;0m public weak var displayLayerDelegate: DisplayLayerDelegate?
[0;36m|[0;0m `- [1;39mnote: [1;39mmain actor-isolated property 'displayLayerDelegate' cannot satisfy nonisolated requirement[0;0m
[0;36m73 |[0;0m public init(options: KSOptions) {
[0;36m|[0;0m |- [1;39mnote: [1;39mmain actor-isolated initializer 'init(options:)' cannot satisfy nonisolated requirement[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmark initializer 'init(options:)' 'nonisolated'[0;0m
[0;36m74 |[0;0m self.options = options
[0;36m75 |[0;0m super.init(frame: .zero)
[0;36m:[0;0m
[0;36m151 |[0;0m }
[0;36m152 |[0;0m
[0;36m153 |[0;0m public func invalidate() {
[0;36m|[0;0m |- [1;39mnote: [1;39mmain actor-isolated instance method 'invalidate()' cannot satisfy nonisolated requirement[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmark instance method 'invalidate()' 'nonisolated'[0;0m
[0;36m154 |[0;0m displayLink.invalidate()
[0;36m155 |[0;0m }
[0;36m156 |[0;0m
[0;36m157 |[0;0m public func readNextFrame() {
[0;36m|[0;0m |- [1;39mnote: [1;39mmain actor-isolated instance method 'readNextFrame()' cannot satisfy nonisolated requirement[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmark instance method 'readNextFrame()' 'nonisolated'[0;0m
[0;36m158 |[0;0m draw(force: true)
[0;36m159 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:28:20: [1;33mwarning: [1;39mconformance of 'MetalPlayView' to protocol 'FrameOutput' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation\ConformanceIsolation]8;;\]
[0;36m26 |[0;0m }
[0;36m27 |[0;0m
[0;36m28 |[0;0m public final class MetalPlayView: UIView, VideoOutput {
[0;36m|[0;0m |- [1;33mwarning: [1;39mconformance of 'MetalPlayView' to protocol 'FrameOutput' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation\ConformanceIsolation]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39misolate this conformance to the main actor with '@MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mturn data races into runtime errors with '@preconcurrency'[0;0m
[0;36m29 |[0;0m public var displayLayer: AVSampleBufferDisplayLayer {
[0;36m30 |[0;0m displayView.displayLayer
[0;36m:[0;0m
[0;36m61 |[0;0m // private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
[0;36m62 |[0;0m public var options: KSOptions
[0;36m63 |[0;0m public weak var renderSource: OutputRenderSourceDelegate?
[0;36m|[0;0m `- [1;39mnote: [1;39mmain actor-isolated property 'renderSource' cannot satisfy nonisolated requirement[0;0m
[0;36m64 |[0;0m // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
[0;36m65 |[0;0m var displayView = AVSampleBufferDisplayView() {
[0;36m:[0;0m
[0;36m84 |[0;0m }
[0;36m85 |[0;0m
[0;36m86 |[0;0m public func play() {
[0;36m|[0;0m |- [1;39mnote: [1;39mmain actor-isolated instance method 'play()' cannot satisfy nonisolated requirement[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmark instance method 'play()' 'nonisolated'[0;0m
[0;36m87 |[0;0m displayLink.isPaused = false
[0;36m88 |[0;0m }
[0;36m89 |[0;0m
[0;36m90 |[0;0m public func pause() {
[0;36m|[0;0m |- [1;39mnote: [1;39mmain actor-isolated instance method 'pause()' cannot satisfy nonisolated requirement[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmark instance method 'pause()' 'nonisolated'[0;0m
[0;36m91 |[0;0m displayLink.isPaused = true
[0;36m92 |[0;0m }
[0;36m:[0;0m
[0;36m142 |[0;0m #endif
[0;36m143 |[0;0m
[0;36m144 |[0;0m public func flush() {
[0;36m|[0;0m |- [1;39mnote: [1;39mmain actor-isolated instance method 'flush()' cannot satisfy nonisolated requirement[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mmark instance method 'flush()' 'nonisolated'[0;0m
[0;36m145 |[0;0m pixelBuffer = nil
[0;36m146 |[0;0m if displayView.isHidden {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:415:23: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'CADisplayLink?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m366 |[0;0m import CoreVideo
[0;36m367 |[0;0m
[0;36m368 |[0;0m class CADisplayLink {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'CADisplayLink' does not conform to the 'Sendable' protocol[0;0m
[0;36m369 |[0;0m private let displayLink: CVDisplayLink
[0;36m370 |[0;0m private var runloop: RunLoop?
[0;36m:[0;0m
[0;36m413 |[0;0m self.displayLink = displayLink!
[0;36m414 |[0;0m CVDisplayLinkSetOutputHandler(self.displayLink) { [weak self] _, _, _, _, _ in
[0;36m415 |[0;0m guard let self else { return kCVReturnSuccess }
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'CADisplayLink?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m416 |[0;0m self.runloop?.perform(selector, target: target, argument: self, order: 0, modes: [self.mode])
[0;36m417 |[0;0m return kCVReturnSuccess
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:416:53: [1;33mwarning: [1;39mcapture of 'target' with non-Sendable type 'NSObject' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m414 |[0;0m CVDisplayLinkSetOutputHandler(self.displayLink) { [weak self] _, _, _, _, _ in
[0;36m415 |[0;0m guard let self else { return kCVReturnSuccess }
[0;36m416 |[0;0m self.runloop?.perform(selector, target: target, argument: self, order: 0, modes: [self.mode])
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'target' with non-Sendable type 'NSObject' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m417 |[0;0m return kCVReturnSuccess
[0;36m418 |[0;0m }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/objc/NSObject.h:53:12: [1;39mnote: [1;39mclass 'NSObject' does not conform to the 'Sendable' protocol[0;0m
[0;36m51 |[0;0m OBJC_ROOT_CLASS
[0;36m52 |[0;0m OBJC_EXPORT
[0;36m53 |[0;0m @interface NSObject <NSObject> {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'NSObject' does not conform to the 'Sendable' protocol[0;0m
[0;36m54 |[0;0m #pragma clang diagnostic push
[0;36m55 |[0;0m #pragma clang diagnostic ignored "-Wobjc-interface-ivars"
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:8:1: [1;33mwarning: [1;39madd '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import\AddPreconcurrencyImport]8;;\]
[0;36m6 |[0;0m //
[0;36m7 |[0;0m
[0;36m8 |[0;0m import AVFoundation
[0;36m|[0;0m `- [1;33mwarning: [1;39madd '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import\AddPreconcurrencyImport]8;;\]
[0;36m9 |[0;0m import Combine
[0;36m10 |[0;0m import CoreMedia
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:427:13: [1;33mwarning: [1;39mcapture of 'block' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m425 |[0;0m self.displayLink = displayLink!
[0;36m426 |[0;0m CVDisplayLinkSetOutputHandler(self.displayLink) { _, _, _, _, _ in
[0;36m427 |[0;0m block()
[0;36m|[0;0m |- [1;33mwarning: [1;39mcapture of 'block' with non-Sendable type '() -> Void' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39ma function type must be marked '@Sendable' to conform to 'Sendable'[0;0m
[0;36m428 |[0;0m return kCVReturnSuccess
[0;36m429 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: [1;33mwarning: [1;39msending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m514 |[0;0m self.play()
[0;36m515 |[0;0m }
[0;36m516 |[0;0m completionHandler()
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m517 |[0;0m }
[0;36m518 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: [1;33mwarning: [1;39msending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m530 |[0;0m self.pause()
[0;36m531 |[0;0m }
[0;36m532 |[0;0m completionHandler()
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m533 |[0;0m }
[0;36m534 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: [1;33mwarning: [1;39msending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m555 |[0;0m }
[0;36m556 |[0;0m guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
[0;36m557 |[0;0m completionHandler()
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m558 |[0;0m return
[0;36m559 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:494:28: [1;33mwarning: [1;39m'result' mutated after capture by sendable closure[0;0m
[0;36m483 |[0;0m // can not seek to key frame
[0;36m484 |[0;0m let seekStartTime = CACurrentMediaTime()
[0;36m485 |[0;0m var result = avformat_seek_file(formatCtx, -1, seekMin, timeStamp, seekMax, seekFlags)
[0;36m|[0;0m `- [1;39mnote: [1;39mvariable defined here[0;0m
[0;36m486 |[0;0m // var result = av_seek_frame(formatCtx, -1, timeStamp, seekFlags)
[0;36m487 |[0;0m // When seeking before the beginning of the file, and seeking fails,
[0;36m:[0;0m
[0;36m492 |[0;0m options.seekFlags &= ~AVSEEK_FLAG_BACKWARD
[0;36m493 |[0;0m seekFlags &= ~AVSEEK_FLAG_BACKWARD
[0;36m494 |[0;0m result = avformat_seek_file(formatCtx, -1, seekMin, timeStamp, seekMax, seekFlags)
[0;36m|[0;0m `- [1;33mwarning: [1;39m'result' mutated after capture by sendable closure[0;0m
[0;36m495 |[0;0m }
[0;36m496 |[0;0m KSLog("seek to \(seekToTime) spend Time: \(CACurrentMediaTime() - seekStartTime)")
[0;36m:[0;0m
[0;36m503 |[0;0m isSeek = true
[0;36m504 |[0;0m allPlayerItemTracks.forEach { $0.seek(time: seekToTime) }
[0;36m505 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m|[0;0m `- [1;39mnote: [1;39mvariable captured by sendable closure[0;0m
[0;36m506 |[0;0m guard let self else { return }
[0;36m507 |[0;0m self.seekingCompletionHandler?(result >= 0)
[0;36m|[0;0m `- [1;39mnote: [1;39mcapturing use[0;0m
[0;36m508 |[0;0m self.seekingCompletionHandler = nil
[0;36m509 |[0;0m }
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#AddPreconcurrencyImport]: <https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import>
[#ConformanceIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation>
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
[#NoUsage]: <https://docs.swift.org/compiler/documentation/diagnostics/no-usage>
[#RegionIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/region-isolation>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: [1;33mwarning: [1;39mstatic property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m278 |[0;0m }
[0;36m279 |[0;0m
[0;36m280 |[0;0m public static var textColor: Color = .white
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'textColor' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m281 |[0;0m public static var textBackgroundColor: Color = .clear
[0;36m282 |[0;0m public static var textFont: UIFont {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: [1;33mwarning: [1;39mstatic property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m279 |[0;0m
[0;36m280 |[0;0m public static var textColor: Color = .white
[0;36m281 |[0;0m public static var textBackgroundColor: Color = .clear
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'textBackgroundColor' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m282 |[0;0m public static var textFont: UIFont {
[0;36m283 |[0;0m textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: [1;33mwarning: [1;39mstatic property 'textFontSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m284 |[0;0m }
[0;36m285 |[0;0m
[0;36m286 |[0;0m public static var textFontSize = SubtitleModel.Size.standard.rawValue
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'textFontSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'textFontSize' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'textFontSize' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m287 |[0;0m public static var textBold = false
[0;36m288 |[0;0m public static var textItalic = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:287:23: [1;33mwarning: [1;39mstatic property 'textBold' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m285 |[0;0m
[0;36m286 |[0;0m public static var textFontSize = SubtitleModel.Size.standard.rawValue
[0;36m287 |[0;0m public static var textBold = false
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'textBold' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'textBold' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'textBold' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m288 |[0;0m public static var textItalic = false
[0;36m289 |[0;0m public static var textPosition = TextPosition()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:288:23: [1;33mwarning: [1;39mstatic property 'textItalic' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m286 |[0;0m public static var textFontSize = SubtitleModel.Size.standard.rawValue
[0;36m287 |[0;0m public static var textBold = false
[0;36m288 |[0;0m public static var textItalic = false
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'textItalic' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'textItalic' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'textItalic' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m289 |[0;0m public static var textPosition = TextPosition()
[0;36m290 |[0;0m public static var audioRecognizes = [any AudioRecognize]()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:289:23: [1;33mwarning: [1;39mstatic property 'textPosition' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m287 |[0;0m public static var textBold = false
[0;36m288 |[0;0m public static var textItalic = false
[0;36m289 |[0;0m public static var textPosition = TextPosition()
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'textPosition' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'textPosition' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'textPosition' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m290 |[0;0m public static var audioRecognizes = [any AudioRecognize]()
[0;36m291 |[0;0m private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: [1;33mwarning: [1;39mstatic property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m288 |[0;0m public static var textItalic = false
[0;36m289 |[0;0m public static var textPosition = TextPosition()
[0;36m290 |[0;0m public static var audioRecognizes = [any AudioRecognize]()
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'audioRecognizes' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'audioRecognizes' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m291 |[0;0m private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
[0;36m292 |[0;0m @Published
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'SubtitleModel?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m231 |[0;0m }
[0;36m232 |[0;0m
[0;36m233 |[0;0m open class SubtitleModel: ObservableObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'SubtitleModel' does not conform to the 'Sendable' protocol[0;0m
[0;36m234 |[0;0m public enum Size {
[0;36m235 |[0;0m case smaller
[0;36m:[0;0m
[0;36m307 |[0;0m // 要用async,不能在更新UI的时候,修改Publishe变量
[0;36m308 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m309 |[0;0m self?.parts = []
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'SubtitleModel?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m310 |[0;0m self?.selectedSubtitleInfo = nil
[0;36m311 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: [1;33mwarning: [1;39mstatic property 'subtitleDataSouces' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m78 |[0;0m
[0;36m79 |[0;0m public extension KSOptions {
[0;36m80 |[0;0m static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'subtitleDataSouces' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'subtitleDataSouces' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'subtitleDataSouces' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m81 |[0;0m }
[0;36m82 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:84:23: [1;33mwarning: [1;39mstatic property 'singleton' is not concurrency-safe because non-'Sendable' type 'PlistCacheSubtitleDataSouce' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m81 |[0;0m }
[0;36m82 |[0;0m
[0;36m83 |[0;0m public class PlistCacheSubtitleDataSouce: CacheSubtitleDataSouce {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'PlistCacheSubtitleDataSouce' does not conform to the 'Sendable' protocol[0;0m
[0;36m84 |[0;0m public static let singleton = PlistCacheSubtitleDataSouce()
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'singleton' is not concurrency-safe because non-'Sendable' type 'PlistCacheSubtitleDataSouce' may have shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'singleton' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m85 |[0;0m public var infos = [any SubtitleInfo]()
[0;36m86 |[0;0m private let srtCacheInfoPath: String
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:97:23: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'PlistCacheSubtitleDataSouce?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m81 |[0;0m }
[0;36m82 |[0;0m
[0;36m83 |[0;0m public class PlistCacheSubtitleDataSouce: CacheSubtitleDataSouce {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'PlistCacheSubtitleDataSouce' does not conform to the 'Sendable' protocol[0;0m
[0;36m84 |[0;0m public static let singleton = PlistCacheSubtitleDataSouce()
[0;36m85 |[0;0m public var infos = [any SubtitleInfo]()
[0;36m:[0;0m
[0;36m95 |[0;0m srtInfoCaches = [String: [String]]()
[0;36m96 |[0;0m DispatchQueue.global().async { [weak self] in
[0;36m97 |[0;0m guard let self else {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'PlistCacheSubtitleDataSouce?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m98 |[0;0m return
[0;36m99 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:127:27: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'PlistCacheSubtitleDataSouce?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m81 |[0;0m }
[0;36m82 |[0;0m
[0;36m83 |[0;0m public class PlistCacheSubtitleDataSouce: CacheSubtitleDataSouce {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'PlistCacheSubtitleDataSouce' does not conform to the 'Sendable' protocol[0;0m
[0;36m84 |[0;0m public static let singleton = PlistCacheSubtitleDataSouce()
[0;36m85 |[0;0m public var infos = [any SubtitleInfo]()
[0;36m:[0;0m
[0;36m125 |[0;0m srtInfoCaches[file] = array
[0;36m126 |[0;0m DispatchQueue.global().async { [weak self] in
[0;36m127 |[0;0m guard let self else {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'PlistCacheSubtitleDataSouce?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m128 |[0;0m return
[0;36m129 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:218:25: [1;33mwarning: [1;39mcall to main actor-isolated instance method 'openURL' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m216 |[0;0m providers.first?.loadDataRepresentation(forTypeIdentifier: "public.file-url") { data, _ in
[0;36m217 |[0;0m if let data, let path = NSString(data: data, encoding: 4), let url = URL(string: path as String) {
[0;36m218 |[0;0m openURL(url)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcall to main actor-isolated instance method 'openURL' in a synchronous nonisolated context[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call\ActorIsolatedCall]8;;\]
[0;36m219 |[0;0m }
[0;36m220 |[0;0m }
[0;36m:[0;0m
[0;36m302 |[0;0m }
[0;36m303 |[0;0m
[0;36m304 |[0;0m public func openURL(_ url: URL) {
[0;36m|[0;0m `- [1;39mnote: [1;39mcalls to instance method 'openURL' from outside of its actor context are implicitly asynchronous[0;0m
[0;36m305 |[0;0m runOnMainThread {
[0;36m306 |[0;0m if url.isSubtitle {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:42: [1;33mwarning: [1;39msending 'dataSouce' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m358 |[0;0m }
[0;36m359 |[0;0m
[0;36m360 |[0;0m public func searchSubtitle(query: String?, languages: [String]) {
[0;36m|[0;0m `- [1;39mnote: [1;39misolated conformance to protocol 'SearchSubtitleDataSouce' can be introduced here[0;0m
[0;36m361 |[0;0m for dataSouce in subtitleDataSouces {
[0;36m362 |[0;0m if let dataSouce = dataSouce as? SearchSubtitleDataSouce {
[0;36m:[0;0m
[0;36m367 |[0;0m }
[0;36m368 |[0;0m Task { @MainActor in
[0;36m369 |[0;0m try? await dataSouce.searchSubtitle(query: query, languages: languages)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'dataSouce' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'dataSouce' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m370 |[0;0m subtitleInfos.append(contentsOf: dataSouce.infos)
[0;36m371 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:370:21: [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m358 |[0;0m }
[0;36m359 |[0;0m
[0;36m360 |[0;0m public func searchSubtitle(query: String?, languages: [String]) {
[0;36m|[0;0m `- [1;39mnote: [1;39misolated conformance to protocol 'SearchSubtitleDataSouce' can be introduced here[0;0m
[0;36m361 |[0;0m for dataSouce in subtitleDataSouces {
[0;36m362 |[0;0m if let dataSouce = dataSouce as? SearchSubtitleDataSouce {
[0;36m:[0;0m
[0;36m368 |[0;0m Task { @MainActor in
[0;36m369 |[0;0m try? await dataSouce.searchSubtitle(query: query, languages: languages)
[0;36m370 |[0;0m subtitleInfos.append(contentsOf: dataSouce.infos)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m371 |[0;0m }
[0;36m372 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:38: [1;33mwarning: [1;39msending 'dataSouce' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m374 |[0;0m }
[0;36m375 |[0;0m
[0;36m376 |[0;0m public func addSubtitle(dataSouce: SubtitleDataSouce) {
[0;36m|[0;0m `- [1;39mnote: [1;39misolated conformance to protocol 'FileURLSubtitleDataSouce' can be introduced here[0;0m
[0;36m377 |[0;0m if let dataSouce = dataSouce as? FileURLSubtitleDataSouce {
[0;36m378 |[0;0m Task { @MainActor in
[0;36m379 |[0;0m try? await dataSouce.searchSubtitle(fileURL: url)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'dataSouce' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'dataSouce' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m380 |[0;0m subtitleInfos.append(contentsOf: dataSouce.infos)
[0;36m381 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:62: [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m374 |[0;0m }
[0;36m375 |[0;0m
[0;36m376 |[0;0m public func addSubtitle(dataSouce: SubtitleDataSouce) {
[0;36m|[0;0m `- [1;39mnote: [1;39misolated conformance to protocol 'FileURLSubtitleDataSouce' can be introduced here[0;0m
[0;36m377 |[0;0m if let dataSouce = dataSouce as? FileURLSubtitleDataSouce {
[0;36m378 |[0;0m Task { @MainActor in
[0;36m379 |[0;0m try? await dataSouce.searchSubtitle(fileURL: url)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m380 |[0;0m subtitleInfos.append(contentsOf: dataSouce.infos)
[0;36m381 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:21: [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m307 |[0;0m // 要用async,不能在更新UI的时候,修改Publishe变量
[0;36m308 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m309 |[0;0m self?.parts = []
[0;36m|[0;0m |- [1;33mwarning: [1;39msending 'self' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39m'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context[0;0m
[0;36m310 |[0;0m self?.selectedSubtitleInfo = nil
[0;36m311 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:42: [1;33mwarning: [1;39msending value of non-Sendable type 'any SearchSubtitleDataSouce' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m367 |[0;0m }
[0;36m368 |[0;0m Task { @MainActor in
[0;36m369 |[0;0m try? await dataSouce.searchSubtitle(query: query, languages: languages)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending value of non-Sendable type 'any SearchSubtitleDataSouce' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39msending main actor-isolated value of non-Sendable type 'any SearchSubtitleDataSouce' to @concurrent instance method 'searchSubtitle(query:languages:)' risks causing races in between main actor-isolated and @concurrent uses[0;0m
[0;36m370 |[0;0m subtitleInfos.append(contentsOf: dataSouce.infos)
[0;36m371 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:38: [1;33mwarning: [1;39msending value of non-Sendable type 'any FileURLSubtitleDataSouce' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m377 |[0;0m if let dataSouce = dataSouce as? FileURLSubtitleDataSouce {
[0;36m378 |[0;0m Task { @MainActor in
[0;36m379 |[0;0m try? await dataSouce.searchSubtitle(fileURL: url)
[0;36m|[0;0m |- [1;33mwarning: [1;39msending value of non-Sendable type 'any FileURLSubtitleDataSouce' risks causing data races; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race\SendingRisksDataRace]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39msending main actor-isolated value of non-Sendable type 'any FileURLSubtitleDataSouce' to @concurrent instance method 'searchSubtitle(fileURL:)' risks causing races in between main actor-isolated and @concurrent uses[0;0m
[0;36m380 |[0;0m subtitleInfos.append(contentsOf: dataSouce.infos)
[0;36m381 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:23:17: [1;33mwarning: [1;39mpassing closure as a 'sending' parameter risks causing data races between code in the current isolation context and concurrent execution of the closure; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-closure-risks-data-race\SendingClosureRisksDataRace]8;;\]
[0;36m21 |[0;0m didSet {
[0;36m22 |[0;0m if isEnabled, parts.isEmpty {
[0;36m23 |[0;0m Task {
[0;36m|[0;0m `- [1;33mwarning: [1;39mpassing closure as a 'sending' parameter risks causing data races between code in the current isolation context and concurrent execution of the closure; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/region-isolation\RegionIsolation]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/sending-closure-risks-data-race\SendingClosureRisksDataRace]8;;\]
[0;36m24 |[0;0m try? await parse(url: downloadURL, userAgent: userAgent)
[0;36m|[0;0m `- [1;39mnote: [1;39mclosure captures 'self' which is accessible to code in the current isolation context[0;0m
[0;36m25 |[0;0m }
[0;36m26 |[0;0m }
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
[#RegionIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/region-isolation>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendingClosureRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-closure-risks-data-race>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:34:77: [1;33mwarning: [1;39mreference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode[0;0m
[0;36m32 |[0;0m }()
[0;36m33 |[0;0m
[0;36m34 |[0;0m private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
[0;36m|[0;0m `- [1;33mwarning: [1;39mreference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode[0;0m
[0;36m35 |[0;0m
[0;36m36 |[0;0m private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/Headers/vImage_Types.h:881:51: [1;39mnote: [1;39mvar declared here[0;0m
[0;36m879 |[0;0m /*! @const kvImage_YpCbCrToARGBMatrix_ITU_R_601_4
[0;36m880 |[0;0m @abstract Y'CbCr->RGB conversion matrix for ITU-Recommendation BT.601-4 */
[0;36m881 |[0;0m extern VIMAGE_PF const vImage_YpCbCrToARGBMatrix *kvImage_YpCbCrToARGBMatrix_ITU_R_601_4 API_AVAILABLE(macos(10.10), ios(8.0), watchos(1.0), tvos(8.0));
[0;36m|[0;0m `- [1;39mnote: [1;39mvar declared here[0;0m
[0;36m882 |[0;0m
[0;36m883 |[0;0m /*! @const kvImage_YpCbCrToARGBMatrix_ITU_R_709_2
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:36:76: [1;33mwarning: [1;39mreference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode[0;0m
[0;36m34 |[0;0m private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
[0;36m35 |[0;0m
[0;36m36 |[0;0m private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
[0;36m|[0;0m `- [1;33mwarning: [1;39mreference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode[0;0m
[0;36m37 |[0;0m
[0;36m38 |[0;0m private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/Headers/vImage_Types.h:881:51: [1;39mnote: [1;39mvar declared here[0;0m
[0;36m879 |[0;0m /*! @const kvImage_YpCbCrToARGBMatrix_ITU_R_601_4
[0;36m880 |[0;0m @abstract Y'CbCr->RGB conversion matrix for ITU-Recommendation BT.601-4 */
[0;36m881 |[0;0m extern VIMAGE_PF const vImage_YpCbCrToARGBMatrix *kvImage_YpCbCrToARGBMatrix_ITU_R_601_4 API_AVAILABLE(macos(10.10), ios(8.0), watchos(1.0), tvos(8.0));
[0;36m|[0;0m `- [1;39mnote: [1;39mvar declared here[0;0m
[0;36m882 |[0;0m
[0;36m883 |[0;0m /*! @const kvImage_YpCbCrToARGBMatrix_ITU_R_709_2
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:38:77: [1;33mwarning: [1;39mreference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode[0;0m
[0;36m36 |[0;0m private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
[0;36m37 |[0;0m
[0;36m38 |[0;0m private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
[0;36m|[0;0m `- [1;33mwarning: [1;39mreference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode[0;0m
[0;36m39 |[0;0m
[0;36m40 |[0;0m private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/Headers/vImage_Types.h:885:51: [1;39mnote: [1;39mvar declared here[0;0m
[0;36m883 |[0;0m /*! @const kvImage_YpCbCrToARGBMatrix_ITU_R_709_2
[0;36m884 |[0;0m @abstract Y'CbCr->RGB conversion matrix for ITU-Recommendation BT.709-2 */
[0;36m885 |[0;0m extern VIMAGE_PF const vImage_YpCbCrToARGBMatrix *kvImage_YpCbCrToARGBMatrix_ITU_R_709_2 API_AVAILABLE(macos(10.10), ios(8.0), watchos(1.0), tvos(8.0));
[0;36m|[0;0m `- [1;39mnote: [1;39mvar declared here[0;0m
[0;36m886 |[0;0m #endif
[0;36m887 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:40:76: [1;33mwarning: [1;39mreference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode[0;0m
[0;36m38 |[0;0m private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
[0;36m39 |[0;0m
[0;36m40 |[0;0m private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
[0;36m|[0;0m `- [1;33mwarning: [1;39mreference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode[0;0m
[0;36m41 |[0;0m
[0;36m42 |[0;0m private lazy var colorConversionSMPTE240MVideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_SMPTE_240M_1995.videoRange.buffer
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/Headers/vImage_Types.h:885:51: [1;39mnote: [1;39mvar declared here[0;0m
[0;36m883 |[0;0m /*! @const kvImage_YpCbCrToARGBMatrix_ITU_R_709_2
[0;36m884 |[0;0m @abstract Y'CbCr->RGB conversion matrix for ITU-Recommendation BT.709-2 */
[0;36m885 |[0;0m extern VIMAGE_PF const vImage_YpCbCrToARGBMatrix *kvImage_YpCbCrToARGBMatrix_ITU_R_709_2 API_AVAILABLE(macos(10.10), ios(8.0), watchos(1.0), tvos(8.0));
[0;36m|[0;0m `- [1;39mnote: [1;39mvar declared here[0;0m
[0;36m886 |[0;0m #endif
[0;36m887 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/PixelBufferProtocol.swift:50:28: [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m48 |[0;0m public var aspectRatio: CGSize {
[0;36m49 |[0;0m get {
[0;36m50 |[0;0m if let ratio = CVBufferGetAttachment(self, kCVImageBufferPixelAspectRatioKey, nil)?.takeUnretainedValue() as? NSDictionary,
[0;36m|[0;0m |- [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39muse 'CVBufferCopyAttachment(_:_:_:)' instead[0;0m
[0;36m51 |[0;0m let horizontal = (ratio[kCVImageBufferPixelAspectRatioHorizontalSpacingKey] as? NSNumber)?.intValue,
[0;36m52 |[0;0m let vertical = (ratio[kCVImageBufferPixelAspectRatioVerticalSpacingKey] as? NSNumber)?.intValue,
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/PixelBufferProtocol.swift:80:9: [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m78 |[0;0m
[0;36m79 |[0;0m public var isFullRangeVideo: Bool {
[0;36m80 |[0;0m CVBufferGetAttachment(self, kCMFormatDescriptionExtension_FullRangeVideo, nil)?.takeUnretainedValue() as? Bool ?? false
[0;36m|[0;0m |- [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39muse 'CVBufferCopyAttachment(_:_:_:)' instead[0;0m
[0;36m81 |[0;0m }
[0;36m82 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/PixelBufferProtocol.swift:84:9: [1;33mwarning: [1;39m'CVBufferGetAttachments' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachments(_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m82 |[0;0m
[0;36m83 |[0;0m public var attachmentsDic: CFDictionary? {
[0;36m84 |[0;0m CVBufferGetAttachments(self, .shouldPropagate)
[0;36m|[0;0m |- [1;33mwarning: [1;39m'CVBufferGetAttachments' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachments(_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39muse 'CVBufferCopyAttachments(_:_:)' instead[0;0m
[0;36m85 |[0;0m }
[0;36m86 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/PixelBufferProtocol.swift:89:13: [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m87 |[0;0m public var yCbCrMatrix: CFString? {
[0;36m88 |[0;0m get {
[0;36m89 |[0;0m CVBufferGetAttachment(self, kCVImageBufferYCbCrMatrixKey, nil)?.takeUnretainedValue() as? NSString
[0;36m|[0;0m |- [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39muse 'CVBufferCopyAttachment(_:_:_:)' instead[0;0m
[0;36m90 |[0;0m }
[0;36m91 |[0;0m set {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/PixelBufferProtocol.swift:100:13: [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m98 |[0;0m public var colorPrimaries: CFString? {
[0;36m99 |[0;0m get {
[0;36m100 |[0;0m CVBufferGetAttachment(self, kCVImageBufferColorPrimariesKey, nil)?.takeUnretainedValue() as? NSString
[0;36m|[0;0m |- [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39muse 'CVBufferCopyAttachment(_:_:_:)' instead[0;0m
[0;36m101 |[0;0m }
[0;36m102 |[0;0m set {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/PixelBufferProtocol.swift:111:13: [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m109 |[0;0m public var transferFunction: CFString? {
[0;36m110 |[0;0m get {
[0;36m111 |[0;0m CVBufferGetAttachment(self, kCVImageBufferTransferFunctionKey, nil)?.takeUnretainedValue() as? NSString
[0;36m|[0;0m |- [1;33mwarning: [1;39m'CVBufferGetAttachment' was deprecated in macOS 12.0: renamed to 'CVBufferCopyAttachment(_:_:_:)'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m|[0;0m `- [1;39mnote: [1;39muse 'CVBufferCopyAttachment(_:_:_:)' instead[0;0m
[0;36m112 |[0;0m }
[0;36m113 |[0;0m set {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:20:16: [1;33mwarning: [1;39mstatic property 'subtitleParses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m18 |[0;0m
[0;36m19 |[0;0m public extension KSOptions {
[0;36m20 |[0;0m static var subtitleParses: [KSParseProtocol] = [AssParse(), VTTParse(), SrtParse()]
[0;36m|[0;0m |- [1;33mwarning: [1;39mstatic property 'subtitleParses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable\MutableGlobalVariable]8;;\]
[0;36m|[0;0m |- [1;39mnote: [1;39mconvert 'subtitleParses' to a 'let' constant to make 'Sendable' shared state immutable[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39madd '@MainActor' to make static property 'subtitleParses' part of global actor 'MainActor'[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39mdisable concurrency-safety checks if accesses are protected by an external synchronization mechanism[0;0m
[0;36m21 |[0;0m }
[0;36m22 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:271:16: [1;33mwarning: [1;39mvalue 'assColor' was defined but never used; consider replacing with boolean test[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m269 |[0;0m }
[0;36m270 |[0;0m // 还不知道这个要设置到什么颜色上
[0;36m271 |[0;0m if let assColor = self["SecondaryColour"] {
[0;36m|[0;0m `- [1;33mwarning: [1;39mvalue 'assColor' was defined but never used; consider replacing with boolean test[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m272 |[0;0m // attributes[.backgroundColor] = UIColor(assColor: assColor)
[0;36m273 |[0;0m }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
[#NoUsage]: <https://docs.swift.org/compiler/documentation/diagnostics/no-usage>
Build complete.
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "ffmpegkit",
"requirement" : {
"range" : [
{
"lower_bound" : "6.1.3",
"upper_bound" : "7.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/kingslay/FFmpegKit.git"
}
],
"manifest_display_name" : "KSPlayer",
"name" : "KSPlayer",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "maccatalyst",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "KSPlayer",
"targets" : [
"KSPlayer"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "KSPlayerTests",
"module_type" : "SwiftTarget",
"name" : "KSPlayerTests",
"path" : "Tests/KSPlayerTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/KSPlayerTests/Resources/test.m3u",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"AudioTest.swift",
"KSAVPlayerTest.swift",
"KSMEPlayerTest.swift",
"KSPlayerLayerTest.swift",
"M3UParseTest.swift",
"SubtitleTest.swift",
"VideoPlayerControllerTest.swift",
"VideoPlayerViewTest.swift"
],
"target_dependencies" : [
"KSPlayer"
],
"type" : "test"
},
{
"c99name" : "KSPlayer",
"module_type" : "SwiftTarget",
"name" : "KSPlayer",
"path" : "Sources/KSPlayer",
"product_dependencies" : [
"FFmpegKit"
],
"product_memberships" : [
"KSPlayer"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/Shaders.metal",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"AVPlayer/KSAVPlayer.swift",
"AVPlayer/KSOptions.swift",
"AVPlayer/KSPictureInPictureController.swift",
"AVPlayer/KSPlayerLayer.swift",
"AVPlayer/KSVideoPlayer.swift",
"AVPlayer/MediaPlayerProtocol.swift",
"AVPlayer/PlayerDefines.swift",
"Audio/AudioPlayerView.swift",
"Core/AppKitExtend.swift",
"Core/PlayerToolBar.swift",
"Core/PlayerView.swift",
"Core/UIKitExtend.swift",
"Core/UXKit.swift",
"Core/Utility.swift",
"MEPlayer/AVFFmpegExtension.swift",
"MEPlayer/AVFoundationExtension.swift",
"MEPlayer/AudioEnginePlayer.swift",
"MEPlayer/AudioGraphPlayer.swift",
"MEPlayer/AudioRendererPlayer.swift",
"MEPlayer/AudioUnitPlayer.swift",
"MEPlayer/CircularBuffer.swift",
"MEPlayer/EmbedDataSouce.swift",
"MEPlayer/FFmpegAssetTrack.swift",
"MEPlayer/FFmpegDecode.swift",
"MEPlayer/Filter.swift",
"MEPlayer/KSMEPlayer.swift",
"MEPlayer/MEPlayerItem.swift",
"MEPlayer/MEPlayerItemTrack.swift",
"MEPlayer/MetalPlayView.swift",
"MEPlayer/Model.swift",
"MEPlayer/Resample.swift",
"MEPlayer/SubtitleDecode.swift",
"MEPlayer/ThumbnailController.swift",
"MEPlayer/VideoToolboxDecode.swift",
"Metal/DisplayModel.swift",
"Metal/MetalRender.swift",
"Metal/MotionSensor.swift",
"Metal/PixelBufferProtocol.swift",
"Metal/Transforms.swift",
"Subtitle/AudioRecognize.swift",
"Subtitle/KSParseProtocol.swift",
"Subtitle/KSSubtitle.swift",
"Subtitle/SubtitleDataSouce.swift",
"SwiftUI/AirPlayView.swift",
"SwiftUI/KSVideoPlayerView.swift",
"SwiftUI/KSVideoPlayerViewBuilder.swift",
"SwiftUI/LiveTextImage.swift",
"SwiftUI/Slider.swift",
"Video/BrightnessVolume.swift",
"Video/IOSVideoPlayerView.swift",
"Video/KSMenu.swift",
"Video/KSPlayerItem.swift",
"Video/MacVideoPlayerView.swift",
"Video/PlayerFullScreenViewController.swift",
"Video/PlayerTransitionAnimator.swift",
"Video/SeekView.swift",
"Video/VideoPlayerView.swift"
],
"target_dependencies" : [
"DisplayCriteria"
],
"type" : "library"
},
{
"c99name" : "DisplayCriteria",
"module_type" : "ClangTarget",
"name" : "DisplayCriteria",
"path" : "Sources/DisplayCriteria",
"product_memberships" : [
"KSPlayer"
],
"sources" : [
"DisplayCriteria.m"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.