The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of KSPlayer, reference 2.3.4 (bdfa2d), with Swift 5.9 for macOS (SPM) on 20 Feb 2025 16:40:04 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.2.0.app xcrun swift build --arch arm64

Build Log

    public var canStartPictureInPictureAutomaticallyFromInline = KSOptions.canStartPictureInPictureAutomaticallyFromInline
                                                                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:478:16: note: static property declared here
    static var canStartPictureInPictureAutomaticallyFromInline = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:644:36: warning: reference to static property 'logLevel' is not concurrency-safe because it involves shared mutable state
    if level.rawValue <= KSOptions.logLevel.rawValue {
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:482:16: note: static property declared here
    static var logLevel = LogLevel.warning
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:646:19: warning: reference to static property 'logger' is not concurrency-safe because it involves shared mutable state
        KSOptions.logger.log(level: level, message: message(), file: fileName, function: function, line: line)
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:483:16: note: static property declared here
    static var logger: LogHandler = OSLog(lable: "KSPlayer")
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:652:36: warning: reference to static property 'logLevel' is not concurrency-safe because it involves shared mutable state
    if level.rawValue <= KSOptions.logLevel.rawValue {
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:482:16: note: static property declared here
    static var logLevel = LogLevel.warning
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:84:35: warning: capture of 'self' with non-sendable type 'KSPlayerLayer?' in a `@Sendable` closure
                        guard let self else { return }
                                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:67:12: note: class 'KSPlayerLayer' does not conform to the 'Sendable' protocol
open class KSPlayerLayer: NSObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:85:25: warning: capture of 'pipController' with non-sendable type 'KSPictureInPictureController' in a `@Sendable` closure
                        pipController.start(view: self)
                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:11:14: note: class 'KSPictureInPictureController' does not conform to the 'Sendable' protocol
public class KSPictureInPictureController: AVPictureInPictureController {
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:102:73: warning: main actor-isolated property 'superview' can not be referenced from a non-isolated context; this is an error in Swift 6
                if let oldView = oldValue.view, let superview = oldView.superview, let view = player.view {
                                                                        ^
AppKit.NSView:5:30: note: property declared here
    unowned(unsafe) open var superview: NSView? { get }
                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:106:31: warning: call to main actor-isolated instance method 'addSubview(_:positioned:relativeTo:)' in a synchronous nonisolated context; this is an error in Swift 6
                    superview.addSubview(view, positioned: .below, relativeTo: oldView)
                              ^
AppKit.NSView:30:15: note: calls to instance method 'addSubview(_:positioned:relativeTo:)' from outside of its actor context are implicitly asynchronous
    open func addSubview(_ view: NSView, positioned place: NSWindow.OrderingMode, relativeTo otherView: NSView?)
              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:108:26: warning: main actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a non-isolated context; this is an error in Swift 6
                    view.translatesAutoresizingMaskIntoConstraints = false
                         ^
AppKit.NSView:3:14: note: mutation of this property is only permitted within the actor
    open var translatesAutoresizingMaskIntoConstraints: Bool { get set }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:110:30: warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in Swift 6
                        view.topAnchor.constraint(equalTo: superview.topAnchor),
                             ^
AppKit.NSView:11:14: note: property declared here
    open var topAnchor: NSLayoutYAxisAnchor { get }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:110:70: warning: main actor-isolated property 'topAnchor' can not be referenced from a non-isolated context; this is an error in Swift 6
                        view.topAnchor.constraint(equalTo: superview.topAnchor),
                                                                     ^
AppKit.NSView:11:14: note: property declared here
    open var topAnchor: NSLayoutYAxisAnchor { get }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:111:30: warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in Swift 6
                        view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
                             ^
AppKit.NSView:3:14: note: property declared here
    open var leadingAnchor: NSLayoutXAxisAnchor { get }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:111:74: warning: main actor-isolated property 'leadingAnchor' can not be referenced from a non-isolated context; this is an error in Swift 6
                        view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
                                                                         ^
AppKit.NSView:3:14: note: property declared here
    open var leadingAnchor: NSLayoutXAxisAnchor { get }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:112:30: warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in Swift 6
                        view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
                             ^
AppKit.NSView:13:14: note: property declared here
    open var bottomAnchor: NSLayoutYAxisAnchor { get }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:112:73: warning: main actor-isolated property 'bottomAnchor' can not be referenced from a non-isolated context; this is an error in Swift 6
                        view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
                                                                        ^
AppKit.NSView:13:14: note: property declared here
    open var bottomAnchor: NSLayoutYAxisAnchor { get }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:113:30: warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in Swift 6
                        view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
                             ^
AppKit.NSView:5:14: note: property declared here
    open var trailingAnchor: NSLayoutXAxisAnchor { get }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:113:75: warning: main actor-isolated property 'trailingAnchor' can not be referenced from a non-isolated context; this is an error in Swift 6
                        view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
                                                                          ^
AppKit.NSView:5:14: note: property declared here
    open var trailingAnchor: NSLayoutXAxisAnchor { get }
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:116:32: warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context; this is an error in Swift 6
                oldValue.view?.removeFromSuperview()
                               ^
AppKit.NSView:44:15: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
    open func removeFromSuperview()
              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:140:45: warning: reference to static property 'firstPlayerType' is not concurrency-safe because it involves shared mutable state
                firstPlayerType = KSOptions.firstPlayerType
                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:458:16: note: static property declared here
    static var firstPlayerType: MediaPlayerProtocol.Type = KSAVPlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:176:19: warning: capture of 'self' with non-sendable type 'KSPlayerLayer?' in a `@Sendable` closure
        guard let self, self.player.isReadyToPlay else {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:67:12: note: class 'KSPlayerLayer' does not conform to the 'Sendable' protocol
open class KSPlayerLayer: NSObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:179:24: warning: call to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' in a synchronous nonisolated context; this is an error in Swift 6
        self.delegate?.player(layer: self, currentTime: self.player.currentPlaybackTime, totalTime: self.player.duration)
                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:62:10: note: calls to instance method 'player(layer:currentTime:totalTime:)' from outside of its actor context are implicitly asynchronous
    func player(layer: KSPlayerLayer, currentTime: TimeInterval, totalTime: TimeInterval)
         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:195:56: warning: reference to static property 'isAutoPlay' is not concurrency-safe because it involves shared mutable state
    public init(url: URL, isAutoPlay: Bool = KSOptions.isAutoPlay, options: KSOptions, delegate: KSPlayerLayerDelegate? = nil) {
                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:471:16: note: static property declared here
    static var isAutoPlay = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:488:5: warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
    open func prepareToPlay() {
    ^~~~
    public
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:406:41: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            update(state: isSelected ? .selected : .normal)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:406:53: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            update(state: isSelected ? .selected : .normal)
                                                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:412:40: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            update(state: isEnabled ? .normal : .disabled)
                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:412:50: warning: reference to static property 'disabled' is not concurrency-safe because it involves shared mutable state
            update(state: isEnabled ? .normal : .disabled)
                                                 ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:360:27: note: static property declared here
        public static var disabled = State(rawValue: 1 << 2)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/PlayerView.swift:159:15: warning: main actor-isolated instance method 'slider(value:event:)' cannot be used to satisfy nonisolated protocol requirement
    open func slider(value: Double, event: ControlEvents) {
              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/PlayerView.swift:159:15: note: add 'nonisolated' to 'slider(value:event:)' to make this instance method not isolated to the actor
    open func slider(value: Double, event: ControlEvents) {
              ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/UXKit.swift:47:10: note: mark the protocol requirement 'slider(value:event:)' 'async' to allow actor-isolated conformances
    func slider(value: Double, event: ControlEvents)
         ^
                                                     async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:26:27: warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context; this is an error in Swift 6
                oldValue?.removeFromSuperview()
                          ^
AppKit.NSView:44:15: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
    open func removeFromSuperview()
              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:110:35: warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in Swift 6
                        delegate?.finish(player: self, error: nil)
                                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
    func finish(player: some MediaPlayerProtocol, error: Error?)
         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:429:16: warning: main actor-isolated property 'contentMode' cannot be used to satisfy nonisolated protocol requirement
    public var contentMode: UIViewContentMode {
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:83:9: note: 'contentMode' declared here
    var contentMode: UIViewContentMode { get set }
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:309:16: warning: main actor-isolated property 'naturalSize' cannot be used to satisfy nonisolated protocol requirement
    public var naturalSize: CGSize {
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:19:9: note: 'naturalSize' declared here
    var naturalSize: CGSize { get }
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:16:17: warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-sendable type 'KSOptions'
    private let options: KSOptions
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:17:12: note: class 'KSOptions' does not conform to the 'Sendable' protocol
open class KSOptions {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:19:17: warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable
    private var formatCtx: UnsafeMutablePointer<AVFormatContext>?
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:43:30: warning: reference to static property 'preferredFrame' is not concurrency-safe because it involves shared mutable state
                if KSOptions.preferredFrame {
                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:479:16: note: static property declared here
    static var preferredFrame = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:72:21: warning: main actor-isolated property 'displayLayerDelegate' cannot be used to satisfy nonisolated protocol requirement
    public weak var displayLayerDelegate: DisplayLayerDelegate?
                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:19:9: note: 'displayLayerDelegate' declared here
    var displayLayerDelegate: DisplayLayerDelegate? { get set }
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:62:16: warning: main actor-isolated property 'options' cannot be used to satisfy nonisolated protocol requirement
    public var options: KSOptions
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:20:9: note: 'options' declared here
    var options: KSOptions { get set }
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:29:16: warning: main actor-isolated property 'displayLayer' cannot be used to satisfy nonisolated protocol requirement
    public var displayLayer: AVSampleBufferDisplayLayer {
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:21:9: note: 'displayLayer' declared here
    var displayLayer: AVSampleBufferDisplayLayer { get }
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:56:29: warning: main actor-isolated property 'pixelBuffer' cannot be used to satisfy nonisolated protocol requirement
    public private(set) var pixelBuffer: PixelBufferProtocol?
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:22:9: note: 'pixelBuffer' declared here
    var pixelBuffer: PixelBufferProtocol? { get }
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:73:12: warning: main actor-isolated initializer 'init(options:)' cannot be used to satisfy nonisolated protocol requirement
    public init(options: KSOptions) {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:73:12: note: add 'nonisolated' to 'init(options:)' to make this initializer not isolated to the actor
    public init(options: KSOptions) {
           ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:23:5: note: mark the protocol requirement 'init(options:)' 'async' to allow actor-isolated conformances
    init(options: KSOptions)
    ^
                             async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:153:17: warning: main actor-isolated instance method 'invalidate()' cannot be used to satisfy nonisolated protocol requirement
    public func invalidate() {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:153:17: note: add 'nonisolated' to 'invalidate()' to make this instance method not isolated to the actor
    public func invalidate() {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:24:10: note: mark the protocol requirement 'invalidate()' 'async' to allow actor-isolated conformances
    func invalidate()
         ^
                      async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:157:17: warning: main actor-isolated instance method 'readNextFrame()' cannot be used to satisfy nonisolated protocol requirement
    public func readNextFrame() {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:157:17: note: add 'nonisolated' to 'readNextFrame()' to make this instance method not isolated to the actor
    public func readNextFrame() {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:25:10: note: mark the protocol requirement 'readNextFrame()' 'async' to allow actor-isolated conformances
    func readNextFrame()
         ^
                         async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:63:21: warning: main actor-isolated property 'renderSource' cannot be used to satisfy nonisolated protocol requirement
    public weak var renderSource: OutputRenderSourceDelegate?
                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:67:9: note: 'renderSource' declared here
    var renderSource: OutputRenderSourceDelegate? { get set }
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:90:17: warning: main actor-isolated instance method 'pause()' cannot be used to satisfy nonisolated protocol requirement
    public func pause() {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:90:17: note: add 'nonisolated' to 'pause()' to make this instance method not isolated to the actor
    public func pause() {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:68:10: note: mark the protocol requirement 'pause()' 'async' to allow actor-isolated conformances
    func pause()
         ^
                 async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:144:17: warning: main actor-isolated instance method 'flush()' cannot be used to satisfy nonisolated protocol requirement
    public func flush() {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:144:17: note: add 'nonisolated' to 'flush()' to make this instance method not isolated to the actor
    public func flush() {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:69:10: note: mark the protocol requirement 'flush()' 'async' to allow actor-isolated conformances
    func flush()
         ^
                 async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:86:17: warning: main actor-isolated instance method 'play()' cannot be used to satisfy nonisolated protocol requirement
    public func play() {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:86:17: note: add 'nonisolated' to 'play()' to make this instance method not isolated to the actor
    public func play() {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:70:10: note: mark the protocol requirement 'play()' 'async' to allow actor-isolated conformances
    func play()
         ^
                async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:34:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:36:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:38:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:40:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:291:69: warning: reference to static property 'subtitleDataSouces' is not concurrency-safe because it involves shared mutable state
    private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
                                                                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: note: static property declared here
    static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:302:64: warning: reference to static property 'audioRecognizes' is not concurrency-safe because it involves shared mutable state
                subtitleInfos.append(contentsOf: SubtitleModel.audioRecognizes)
                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: note: static property declared here
    public static var audioRecognizes = [any AudioRecognize]()
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: warning: capture of 'self' with non-sendable type 'SubtitleModel?' in a `@Sendable` closure
                self?.parts = []
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:24:32: warning: capture of 'self' with non-sendable type 'URLSubtitleInfo' in a `@Sendable` closure
                    try? await parse(url: downloadURL, userAgent: userAgent)
                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:19:14: note: class 'URLSubtitleInfo' does not conform to the 'Sendable' protocol
public class URLSubtitleInfo: KSSubtitle, SubtitleInfo {
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:36:17: warning: stored property 'interaction' within struct cannot have a global actor; this is an error in Swift 6
    private let interaction = ImageAnalysisOverlayView()
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:194:10: warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement
    func startAnimating() {
         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:194:10: note: add 'nonisolated' to 'startAnimating()' to make this instance method not isolated to the actor
    func startAnimating() {
         ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:24:10: note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
    func startAnimating()
         ^
                          async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:205:10: warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement
    func stopAnimating() {
         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:205:10: note: add 'nonisolated' to 'stopAnimating()' to make this instance method not isolated to the actor
    func stopAnimating() {
         ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:25:10: note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
    func stopAnimating()
         ^
                         async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement
    public func set(text: String, isAdd: Bool) {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
    public func set(text: String, isAdd: Bool) {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:13:10: note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
    func set(text: String, isAdd: Bool)
         ^
                                        async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:52:109: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                toolBar.definitionButton.setTitle(resource.definitions[currentDefinition].definition, for: .normal)
                                                                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
[73/89] Compiling KSPlayer MotionSensor.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:271:16: warning: value 'assColor' was defined but never used; consider replacing with boolean test
        if let assColor = self["SecondaryColour"] {
           ~~~~^~~~~~~~~~~
                                                  != nil
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:291:69: warning: reference to static property 'subtitleDataSouces' is not concurrency-safe because it involves shared mutable state
    private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
                                                                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: note: static property declared here
    static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:302:64: warning: reference to static property 'audioRecognizes' is not concurrency-safe because it involves shared mutable state
                subtitleInfos.append(contentsOf: SubtitleModel.audioRecognizes)
                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: note: static property declared here
    public static var audioRecognizes = [any AudioRecognize]()
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: warning: capture of 'self' with non-sendable type 'SubtitleModel?' in a `@Sendable` closure
                self?.parts = []
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:193:31: warning: reference to static property 'subtitleParses' is not concurrency-safe because it involves shared mutable state
        let parse = KSOptions.subtitleParses.first { $0.canParse(scanner: scanner) }
                              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:20:16: note: static property declared here
    static var subtitleParses: [KSParseProtocol] = [AssParse(), VTTParse(), SrtParse()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:9: warning: reference to static property 'textBold' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:287:23: note: static property declared here
    public static var textBold = false
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:44: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:80: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:32: warning: capture of 'dataSouce' with non-sendable type 'any SearchSubtitleDataSouce' in a `@Sendable` closure
                    try? await dataSouce.searchSubtitle(query: query, languages: languages)
                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:75:17: note: protocol 'SearchSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol SearchSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:370:21: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                    subtitleInfos.append(contentsOf: dataSouce.infos)
                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:28: warning: capture of 'dataSouce' with non-sendable type 'any FileURLSubtitleDataSouce' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:67:17: note: protocol 'FileURLSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol FileURLSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:62: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
[74/89] Compiling KSPlayer PixelBufferProtocol.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:271:16: warning: value 'assColor' was defined but never used; consider replacing with boolean test
        if let assColor = self["SecondaryColour"] {
           ~~~~^~~~~~~~~~~
                                                  != nil
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:291:69: warning: reference to static property 'subtitleDataSouces' is not concurrency-safe because it involves shared mutable state
    private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
                                                                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: note: static property declared here
    static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:302:64: warning: reference to static property 'audioRecognizes' is not concurrency-safe because it involves shared mutable state
                subtitleInfos.append(contentsOf: SubtitleModel.audioRecognizes)
                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: note: static property declared here
    public static var audioRecognizes = [any AudioRecognize]()
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: warning: capture of 'self' with non-sendable type 'SubtitleModel?' in a `@Sendable` closure
                self?.parts = []
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:193:31: warning: reference to static property 'subtitleParses' is not concurrency-safe because it involves shared mutable state
        let parse = KSOptions.subtitleParses.first { $0.canParse(scanner: scanner) }
                              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:20:16: note: static property declared here
    static var subtitleParses: [KSParseProtocol] = [AssParse(), VTTParse(), SrtParse()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:9: warning: reference to static property 'textBold' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:287:23: note: static property declared here
    public static var textBold = false
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:44: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:80: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:32: warning: capture of 'dataSouce' with non-sendable type 'any SearchSubtitleDataSouce' in a `@Sendable` closure
                    try? await dataSouce.searchSubtitle(query: query, languages: languages)
                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:75:17: note: protocol 'SearchSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol SearchSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:370:21: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                    subtitleInfos.append(contentsOf: dataSouce.infos)
                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:28: warning: capture of 'dataSouce' with non-sendable type 'any FileURLSubtitleDataSouce' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:67:17: note: protocol 'FileURLSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol FileURLSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:62: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
[75/89] Compiling KSPlayer Transforms.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:271:16: warning: value 'assColor' was defined but never used; consider replacing with boolean test
        if let assColor = self["SecondaryColour"] {
           ~~~~^~~~~~~~~~~
                                                  != nil
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:291:69: warning: reference to static property 'subtitleDataSouces' is not concurrency-safe because it involves shared mutable state
    private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
                                                                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: note: static property declared here
    static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:302:64: warning: reference to static property 'audioRecognizes' is not concurrency-safe because it involves shared mutable state
                subtitleInfos.append(contentsOf: SubtitleModel.audioRecognizes)
                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: note: static property declared here
    public static var audioRecognizes = [any AudioRecognize]()
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: warning: capture of 'self' with non-sendable type 'SubtitleModel?' in a `@Sendable` closure
                self?.parts = []
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:193:31: warning: reference to static property 'subtitleParses' is not concurrency-safe because it involves shared mutable state
        let parse = KSOptions.subtitleParses.first { $0.canParse(scanner: scanner) }
                              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:20:16: note: static property declared here
    static var subtitleParses: [KSParseProtocol] = [AssParse(), VTTParse(), SrtParse()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:9: warning: reference to static property 'textBold' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:287:23: note: static property declared here
    public static var textBold = false
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:44: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:80: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:32: warning: capture of 'dataSouce' with non-sendable type 'any SearchSubtitleDataSouce' in a `@Sendable` closure
                    try? await dataSouce.searchSubtitle(query: query, languages: languages)
                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:75:17: note: protocol 'SearchSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol SearchSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:370:21: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                    subtitleInfos.append(contentsOf: dataSouce.infos)
                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:28: warning: capture of 'dataSouce' with non-sendable type 'any FileURLSubtitleDataSouce' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:67:17: note: protocol 'FileURLSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol FileURLSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:62: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
[76/89] Compiling KSPlayer AudioRecognize.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:271:16: warning: value 'assColor' was defined but never used; consider replacing with boolean test
        if let assColor = self["SecondaryColour"] {
           ~~~~^~~~~~~~~~~
                                                  != nil
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:291:69: warning: reference to static property 'subtitleDataSouces' is not concurrency-safe because it involves shared mutable state
    private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
                                                                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: note: static property declared here
    static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:302:64: warning: reference to static property 'audioRecognizes' is not concurrency-safe because it involves shared mutable state
                subtitleInfos.append(contentsOf: SubtitleModel.audioRecognizes)
                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: note: static property declared here
    public static var audioRecognizes = [any AudioRecognize]()
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: warning: capture of 'self' with non-sendable type 'SubtitleModel?' in a `@Sendable` closure
                self?.parts = []
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:193:31: warning: reference to static property 'subtitleParses' is not concurrency-safe because it involves shared mutable state
        let parse = KSOptions.subtitleParses.first { $0.canParse(scanner: scanner) }
                              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:20:16: note: static property declared here
    static var subtitleParses: [KSParseProtocol] = [AssParse(), VTTParse(), SrtParse()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:9: warning: reference to static property 'textBold' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:287:23: note: static property declared here
    public static var textBold = false
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:44: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:80: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:32: warning: capture of 'dataSouce' with non-sendable type 'any SearchSubtitleDataSouce' in a `@Sendable` closure
                    try? await dataSouce.searchSubtitle(query: query, languages: languages)
                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:75:17: note: protocol 'SearchSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol SearchSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:370:21: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                    subtitleInfos.append(contentsOf: dataSouce.infos)
                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:28: warning: capture of 'dataSouce' with non-sendable type 'any FileURLSubtitleDataSouce' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:67:17: note: protocol 'FileURLSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol FileURLSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:62: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
[77/89] Compiling KSPlayer KSParseProtocol.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:271:16: warning: value 'assColor' was defined but never used; consider replacing with boolean test
        if let assColor = self["SecondaryColour"] {
           ~~~~^~~~~~~~~~~
                                                  != nil
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:291:69: warning: reference to static property 'subtitleDataSouces' is not concurrency-safe because it involves shared mutable state
    private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
                                                                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: note: static property declared here
    static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:302:64: warning: reference to static property 'audioRecognizes' is not concurrency-safe because it involves shared mutable state
                subtitleInfos.append(contentsOf: SubtitleModel.audioRecognizes)
                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: note: static property declared here
    public static var audioRecognizes = [any AudioRecognize]()
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: warning: capture of 'self' with non-sendable type 'SubtitleModel?' in a `@Sendable` closure
                self?.parts = []
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:193:31: warning: reference to static property 'subtitleParses' is not concurrency-safe because it involves shared mutable state
        let parse = KSOptions.subtitleParses.first { $0.canParse(scanner: scanner) }
                              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:20:16: note: static property declared here
    static var subtitleParses: [KSParseProtocol] = [AssParse(), VTTParse(), SrtParse()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:9: warning: reference to static property 'textBold' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:287:23: note: static property declared here
    public static var textBold = false
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:44: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:80: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:32: warning: capture of 'dataSouce' with non-sendable type 'any SearchSubtitleDataSouce' in a `@Sendable` closure
                    try? await dataSouce.searchSubtitle(query: query, languages: languages)
                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:75:17: note: protocol 'SearchSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol SearchSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:370:21: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                    subtitleInfos.append(contentsOf: dataSouce.infos)
                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:28: warning: capture of 'dataSouce' with non-sendable type 'any FileURLSubtitleDataSouce' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:67:17: note: protocol 'FileURLSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol FileURLSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:62: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
[78/89] Compiling KSPlayer KSSubtitle.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:241:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:243:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:253:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:255:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: warning: unknown operating system for build configuration 'os'
                #if os(tvOS) || os(xrOS)
                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'tvOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:265:36: note: did you mean 'iOS'?
                #if os(tvOS) || os(xrOS)
                                   ^~~~
                                   iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: warning: unknown operating system for build configuration 'os'
                #elseif os(macOS) || os(xrOS)
                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'tvOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        tvOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:267:41: note: did you mean 'iOS'?
                #elseif os(macOS) || os(xrOS)
                                        ^~~~
                                        iOS
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:271:16: warning: value 'assColor' was defined but never used; consider replacing with boolean test
        if let assColor = self["SecondaryColour"] {
           ~~~~^~~~~~~~~~~
                                                  != nil
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:291:69: warning: reference to static property 'subtitleDataSouces' is not concurrency-safe because it involves shared mutable state
    private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
                                                                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: note: static property declared here
    static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:302:64: warning: reference to static property 'audioRecognizes' is not concurrency-safe because it involves shared mutable state
                subtitleInfos.append(contentsOf: SubtitleModel.audioRecognizes)
                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: note: static property declared here
    public static var audioRecognizes = [any AudioRecognize]()
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: warning: capture of 'self' with non-sendable type 'SubtitleModel?' in a `@Sendable` closure
                self?.parts = []
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:193:31: warning: reference to static property 'subtitleParses' is not concurrency-safe because it involves shared mutable state
        let parse = KSOptions.subtitleParses.first { $0.canParse(scanner: scanner) }
                              ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSParseProtocol.swift:20:16: note: static property declared here
    static var subtitleParses: [KSParseProtocol] = [AssParse(), VTTParse(), SrtParse()]
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:9: warning: reference to static property 'textBold' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:287:23: note: static property declared here
    public static var textBold = false
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:44: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:283:80: warning: reference to static property 'textFontSize' is not concurrency-safe because it involves shared mutable state
        textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: note: static property declared here
    public static var textFontSize = SubtitleModel.Size.standard.rawValue
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:32: warning: capture of 'dataSouce' with non-sendable type 'any SearchSubtitleDataSouce' in a `@Sendable` closure
                    try? await dataSouce.searchSubtitle(query: query, languages: languages)
                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:75:17: note: protocol 'SearchSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol SearchSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:370:21: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                    subtitleInfos.append(contentsOf: dataSouce.infos)
                    ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:28: warning: capture of 'dataSouce' with non-sendable type 'any FileURLSubtitleDataSouce' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:67:17: note: protocol 'FileURLSubtitleDataSouce' does not conform to the 'Sendable' protocol
public protocol FileURLSubtitleDataSouce: SubtitleDataSouce {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:62: warning: capture of 'self' with non-sendable type 'SubtitleModel' in a `@Sendable` closure
                try? await dataSouce.searchSubtitle(fileURL: url)
                                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:233:12: note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
open class SubtitleModel: ObservableObject {
           ^
[79/89] Compiling KSPlayer Resample.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:175:25: warning: variable 'source' was never mutated; consider changing to 'let' constant
                    var source = data[i]!
                    ~~~ ^
                    let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:368:33: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        interleaved = KSOptions.audioPlayerType == AudioRendererPlayer.self
                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:24: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:81: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                                                                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:34:11: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        }.value
          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:33:17: warning: capture of 'self' with non-sendable type 'ThumbnailController' in a `@Sendable` closure
            try getPeeks(for: url, thumbWidth: thumbWidth)
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:24:14: note: class 'ThumbnailController' does not conform to the 'Sendable' protocol
public class ThumbnailController {
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:72:13: warning: variable 'codecContext' was never mutated; consider changing to 'let' constant
        var codecContext = try videoStream.pointee.codecpar.pointee.createContext(options: nil)
        ~~~ ^
        let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:51:27: warning: capture of 'self' with non-sendable type 'VideoToolboxDecode?' in a `@Sendable` closure
                guard let self, !infoFlags.contains(.frameDropped) else {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:13:7: note: class 'VideoToolboxDecode' does not conform to the 'Sendable' protocol
class VideoToolboxDecode: DecodeProtocol {
      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:56:28: warning: capture of 'packet' with non-sendable type 'Packet' in a `@Sendable` closure
                        if packet.isKeyFrame {
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:195:13: note: class 'Packet' does not conform to the 'Sendable' protocol
final class Packet: ObjectQueueItem {
            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: warning: capture of 'completionHandler' with non-sendable type '(Result<any MEFrame, any Error>) -> Void' in a `@Sendable` closure
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: note: a function type must be marked '@Sendable' to conform to 'Sendable'
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:34:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:36:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:38:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:40:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
[80/89] Compiling KSPlayer SubtitleDecode.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:175:25: warning: variable 'source' was never mutated; consider changing to 'let' constant
                    var source = data[i]!
                    ~~~ ^
                    let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:368:33: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        interleaved = KSOptions.audioPlayerType == AudioRendererPlayer.self
                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:24: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:81: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                                                                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:34:11: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        }.value
          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:33:17: warning: capture of 'self' with non-sendable type 'ThumbnailController' in a `@Sendable` closure
            try getPeeks(for: url, thumbWidth: thumbWidth)
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:24:14: note: class 'ThumbnailController' does not conform to the 'Sendable' protocol
public class ThumbnailController {
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:72:13: warning: variable 'codecContext' was never mutated; consider changing to 'let' constant
        var codecContext = try videoStream.pointee.codecpar.pointee.createContext(options: nil)
        ~~~ ^
        let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:51:27: warning: capture of 'self' with non-sendable type 'VideoToolboxDecode?' in a `@Sendable` closure
                guard let self, !infoFlags.contains(.frameDropped) else {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:13:7: note: class 'VideoToolboxDecode' does not conform to the 'Sendable' protocol
class VideoToolboxDecode: DecodeProtocol {
      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:56:28: warning: capture of 'packet' with non-sendable type 'Packet' in a `@Sendable` closure
                        if packet.isKeyFrame {
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:195:13: note: class 'Packet' does not conform to the 'Sendable' protocol
final class Packet: ObjectQueueItem {
            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: warning: capture of 'completionHandler' with non-sendable type '(Result<any MEFrame, any Error>) -> Void' in a `@Sendable` closure
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: note: a function type must be marked '@Sendable' to conform to 'Sendable'
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:34:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:36:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:38:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:40:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
[81/89] Compiling KSPlayer ThumbnailController.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:175:25: warning: variable 'source' was never mutated; consider changing to 'let' constant
                    var source = data[i]!
                    ~~~ ^
                    let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:368:33: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        interleaved = KSOptions.audioPlayerType == AudioRendererPlayer.self
                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:24: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:81: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                                                                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:34:11: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        }.value
          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:33:17: warning: capture of 'self' with non-sendable type 'ThumbnailController' in a `@Sendable` closure
            try getPeeks(for: url, thumbWidth: thumbWidth)
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:24:14: note: class 'ThumbnailController' does not conform to the 'Sendable' protocol
public class ThumbnailController {
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:72:13: warning: variable 'codecContext' was never mutated; consider changing to 'let' constant
        var codecContext = try videoStream.pointee.codecpar.pointee.createContext(options: nil)
        ~~~ ^
        let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:51:27: warning: capture of 'self' with non-sendable type 'VideoToolboxDecode?' in a `@Sendable` closure
                guard let self, !infoFlags.contains(.frameDropped) else {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:13:7: note: class 'VideoToolboxDecode' does not conform to the 'Sendable' protocol
class VideoToolboxDecode: DecodeProtocol {
      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:56:28: warning: capture of 'packet' with non-sendable type 'Packet' in a `@Sendable` closure
                        if packet.isKeyFrame {
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:195:13: note: class 'Packet' does not conform to the 'Sendable' protocol
final class Packet: ObjectQueueItem {
            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: warning: capture of 'completionHandler' with non-sendable type '(Result<any MEFrame, any Error>) -> Void' in a `@Sendable` closure
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: note: a function type must be marked '@Sendable' to conform to 'Sendable'
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:34:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:36:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:38:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:40:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
[82/89] Compiling KSPlayer VideoToolboxDecode.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:175:25: warning: variable 'source' was never mutated; consider changing to 'let' constant
                    var source = data[i]!
                    ~~~ ^
                    let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:368:33: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        interleaved = KSOptions.audioPlayerType == AudioRendererPlayer.self
                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:24: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:81: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                                                                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:34:11: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        }.value
          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:33:17: warning: capture of 'self' with non-sendable type 'ThumbnailController' in a `@Sendable` closure
            try getPeeks(for: url, thumbWidth: thumbWidth)
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:24:14: note: class 'ThumbnailController' does not conform to the 'Sendable' protocol
public class ThumbnailController {
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:72:13: warning: variable 'codecContext' was never mutated; consider changing to 'let' constant
        var codecContext = try videoStream.pointee.codecpar.pointee.createContext(options: nil)
        ~~~ ^
        let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:51:27: warning: capture of 'self' with non-sendable type 'VideoToolboxDecode?' in a `@Sendable` closure
                guard let self, !infoFlags.contains(.frameDropped) else {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:13:7: note: class 'VideoToolboxDecode' does not conform to the 'Sendable' protocol
class VideoToolboxDecode: DecodeProtocol {
      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:56:28: warning: capture of 'packet' with non-sendable type 'Packet' in a `@Sendable` closure
                        if packet.isKeyFrame {
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:195:13: note: class 'Packet' does not conform to the 'Sendable' protocol
final class Packet: ObjectQueueItem {
            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: warning: capture of 'completionHandler' with non-sendable type '(Result<any MEFrame, any Error>) -> Void' in a `@Sendable` closure
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: note: a function type must be marked '@Sendable' to conform to 'Sendable'
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:34:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:36:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:38:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:40:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
[83/89] Compiling KSPlayer DisplayModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:175:25: warning: variable 'source' was never mutated; consider changing to 'let' constant
                    var source = data[i]!
                    ~~~ ^
                    let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:368:33: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        interleaved = KSOptions.audioPlayerType == AudioRendererPlayer.self
                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:24: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:81: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                                                                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:34:11: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        }.value
          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:33:17: warning: capture of 'self' with non-sendable type 'ThumbnailController' in a `@Sendable` closure
            try getPeeks(for: url, thumbWidth: thumbWidth)
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:24:14: note: class 'ThumbnailController' does not conform to the 'Sendable' protocol
public class ThumbnailController {
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:72:13: warning: variable 'codecContext' was never mutated; consider changing to 'let' constant
        var codecContext = try videoStream.pointee.codecpar.pointee.createContext(options: nil)
        ~~~ ^
        let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:51:27: warning: capture of 'self' with non-sendable type 'VideoToolboxDecode?' in a `@Sendable` closure
                guard let self, !infoFlags.contains(.frameDropped) else {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:13:7: note: class 'VideoToolboxDecode' does not conform to the 'Sendable' protocol
class VideoToolboxDecode: DecodeProtocol {
      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:56:28: warning: capture of 'packet' with non-sendable type 'Packet' in a `@Sendable` closure
                        if packet.isKeyFrame {
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:195:13: note: class 'Packet' does not conform to the 'Sendable' protocol
final class Packet: ObjectQueueItem {
            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: warning: capture of 'completionHandler' with non-sendable type '(Result<any MEFrame, any Error>) -> Void' in a `@Sendable` closure
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: note: a function type must be marked '@Sendable' to conform to 'Sendable'
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:34:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:36:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:38:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:40:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
[84/89] Compiling KSPlayer MetalRender.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:175:25: warning: variable 'source' was never mutated; consider changing to 'let' constant
                    var source = data[i]!
                    ~~~ ^
                    let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:368:33: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        interleaved = KSOptions.audioPlayerType == AudioRendererPlayer.self
                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:24: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Resample.swift:369:81: warning: reference to static property 'audioPlayerType' is not concurrency-safe because it involves shared mutable state
        if !(KSOptions.audioPlayerType == AudioRendererPlayer.self || KSOptions.audioPlayerType == AudioUnitPlayer.self) {
                                                                                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: note: static property declared here
    static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:32:19: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        try await Task {
                  ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:34:11: warning: type 'FFThumbnail' does not conform to the 'Sendable' protocol
        }.value
          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:15:15: note: consider making struct 'FFThumbnail' conform to the 'Sendable' protocol
public struct FFThumbnail {
              ^
                          : Sendable
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:33:17: warning: capture of 'self' with non-sendable type 'ThumbnailController' in a `@Sendable` closure
            try getPeeks(for: url, thumbWidth: thumbWidth)
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:24:14: note: class 'ThumbnailController' does not conform to the 'Sendable' protocol
public class ThumbnailController {
             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/ThumbnailController.swift:72:13: warning: variable 'codecContext' was never mutated; consider changing to 'let' constant
        var codecContext = try videoStream.pointee.codecpar.pointee.createContext(options: nil)
        ~~~ ^
        let
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:51:27: warning: capture of 'self' with non-sendable type 'VideoToolboxDecode?' in a `@Sendable` closure
                guard let self, !infoFlags.contains(.frameDropped) else {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:13:7: note: class 'VideoToolboxDecode' does not conform to the 'Sendable' protocol
class VideoToolboxDecode: DecodeProtocol {
      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:56:28: warning: capture of 'packet' with non-sendable type 'Packet' in a `@Sendable` closure
                        if packet.isKeyFrame {
                           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:195:13: note: class 'Packet' does not conform to the 'Sendable' protocol
final class Packet: ObjectQueueItem {
            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: warning: capture of 'completionHandler' with non-sendable type '(Result<any MEFrame, any Error>) -> Void' in a `@Sendable` closure
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/VideoToolboxDecode.swift:57:29: note: a function type must be marked '@Sendable' to conform to 'Sendable'
                            completionHandler(.failure(NSError(errorCode: .codecVideoReceiveFrame, avErrorCode: status)))
                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:34:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:36:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_601_4' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion601FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_601_4.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_601_4:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_601_4: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:38:77: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709VideoRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.videoRange.buffer
                                                                            ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:40:76: warning: reference to var 'kvImage_YpCbCrToARGBMatrix_ITU_R_709_2' is not concurrency-safe because it involves shared mutable state
    private lazy var colorConversion709FullRangeMatrixBuffer: MTLBuffer? = kvImage_YpCbCrToARGBMatrix_ITU_R_709_2.pointee.buffer
                                                                           ^
Accelerate.kvImage_YpCbCrToARGBMatrix_ITU_R_709_2:2:12: note: var declared here
public var kvImage_YpCbCrToARGBMatrix_ITU_R_709_2: UnsafePointer<vImage_YpCbCrToARGBMatrix>!
           ^
[85/89] Compiling KSPlayer PlayerFullScreenViewController.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement
    public func set(text: String, isAdd: Bool) {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
    public func set(text: String, isAdd: Bool) {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:13:10: note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
    func set(text: String, isAdd: Bool)
         ^
                                        async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:52:109: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                toolBar.definitionButton.setTitle(resource.definitions[currentDefinition].definition, for: .normal)
                                                                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:188:42: warning: reference to static property 'topBarShowInCase' is not concurrency-safe because it involves shared mutable state
        topMaskView.isHidden = KSOptions.topBarShowInCase != .always
                                         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: note: static property declared here
    static var topBarShowInCase = KSPlayerTopBarShowCase.always
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:217:75: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "play.fill"), for: .normal)
                                                                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:218:88: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "arrow.counterclockwise"), for: .selected)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:219:73: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock.open"), for: .normal)
                                                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:220:68: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock"), for: .selected)
                                                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:402:27: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
            if !KSOptions.enablePlaytimeGestures {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:426:54: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
        if scrollDirection == .horizontal, KSOptions.enablePlaytimeGestures {
                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:621:46: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                button.setTitle(title, for: .normal)
                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:687:61: warning: reference to static property 'textColor' is not concurrency-safe because it involves shared mutable state
            subtitleLabel.textColor = UIColor(SubtitleModel.textColor)
                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: note: static property declared here
    public static var textColor: Color = .white
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:688:70: warning: reference to static property 'textBackgroundColor' is not concurrency-safe because it involves shared mutable state
            subtitleBackView.backgroundColor = UIColor(SubtitleModel.textBackgroundColor)
                                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: note: static property declared here
    public static var textBackgroundColor: Color = .clear
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:729:80: warning: reference to static property 'animateDelayTimeInterval' is not concurrency-safe because it involves shared mutable state
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + KSOptions.animateDelayTimeInterval,
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: note: static property declared here
    static var animateDelayTimeInterval = TimeInterval(5)
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:746:88: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .normal)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:748:88: warning: reference to static property 'highlighted' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .highlighted)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: note: static property declared here
        public static var highlighted = State(rawValue: 1 << 1)
                          ^
[86/89] Compiling KSPlayer PlayerTransitionAnimator.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement
    public func set(text: String, isAdd: Bool) {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
    public func set(text: String, isAdd: Bool) {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:13:10: note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
    func set(text: String, isAdd: Bool)
         ^
                                        async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:52:109: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                toolBar.definitionButton.setTitle(resource.definitions[currentDefinition].definition, for: .normal)
                                                                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:188:42: warning: reference to static property 'topBarShowInCase' is not concurrency-safe because it involves shared mutable state
        topMaskView.isHidden = KSOptions.topBarShowInCase != .always
                                         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: note: static property declared here
    static var topBarShowInCase = KSPlayerTopBarShowCase.always
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:217:75: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "play.fill"), for: .normal)
                                                                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:218:88: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "arrow.counterclockwise"), for: .selected)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:219:73: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock.open"), for: .normal)
                                                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:220:68: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock"), for: .selected)
                                                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:402:27: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
            if !KSOptions.enablePlaytimeGestures {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:426:54: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
        if scrollDirection == .horizontal, KSOptions.enablePlaytimeGestures {
                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:621:46: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                button.setTitle(title, for: .normal)
                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:687:61: warning: reference to static property 'textColor' is not concurrency-safe because it involves shared mutable state
            subtitleLabel.textColor = UIColor(SubtitleModel.textColor)
                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: note: static property declared here
    public static var textColor: Color = .white
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:688:70: warning: reference to static property 'textBackgroundColor' is not concurrency-safe because it involves shared mutable state
            subtitleBackView.backgroundColor = UIColor(SubtitleModel.textBackgroundColor)
                                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: note: static property declared here
    public static var textBackgroundColor: Color = .clear
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:729:80: warning: reference to static property 'animateDelayTimeInterval' is not concurrency-safe because it involves shared mutable state
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + KSOptions.animateDelayTimeInterval,
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: note: static property declared here
    static var animateDelayTimeInterval = TimeInterval(5)
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:746:88: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .normal)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:748:88: warning: reference to static property 'highlighted' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .highlighted)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: note: static property declared here
        public static var highlighted = State(rawValue: 1 << 1)
                          ^
[87/89] Compiling KSPlayer SeekView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement
    public func set(text: String, isAdd: Bool) {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
    public func set(text: String, isAdd: Bool) {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:13:10: note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
    func set(text: String, isAdd: Bool)
         ^
                                        async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:52:109: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                toolBar.definitionButton.setTitle(resource.definitions[currentDefinition].definition, for: .normal)
                                                                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:188:42: warning: reference to static property 'topBarShowInCase' is not concurrency-safe because it involves shared mutable state
        topMaskView.isHidden = KSOptions.topBarShowInCase != .always
                                         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: note: static property declared here
    static var topBarShowInCase = KSPlayerTopBarShowCase.always
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:217:75: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "play.fill"), for: .normal)
                                                                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:218:88: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "arrow.counterclockwise"), for: .selected)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:219:73: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock.open"), for: .normal)
                                                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:220:68: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock"), for: .selected)
                                                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:402:27: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
            if !KSOptions.enablePlaytimeGestures {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:426:54: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
        if scrollDirection == .horizontal, KSOptions.enablePlaytimeGestures {
                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:621:46: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                button.setTitle(title, for: .normal)
                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:687:61: warning: reference to static property 'textColor' is not concurrency-safe because it involves shared mutable state
            subtitleLabel.textColor = UIColor(SubtitleModel.textColor)
                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: note: static property declared here
    public static var textColor: Color = .white
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:688:70: warning: reference to static property 'textBackgroundColor' is not concurrency-safe because it involves shared mutable state
            subtitleBackView.backgroundColor = UIColor(SubtitleModel.textBackgroundColor)
                                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: note: static property declared here
    public static var textBackgroundColor: Color = .clear
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:729:80: warning: reference to static property 'animateDelayTimeInterval' is not concurrency-safe because it involves shared mutable state
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + KSOptions.animateDelayTimeInterval,
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: note: static property declared here
    static var animateDelayTimeInterval = TimeInterval(5)
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:746:88: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .normal)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:748:88: warning: reference to static property 'highlighted' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .highlighted)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: note: static property declared here
        public static var highlighted = State(rawValue: 1 << 1)
                          ^
[88/89] Compiling KSPlayer VideoPlayerView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement
    public func set(text: String, isAdd: Bool) {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
    public func set(text: String, isAdd: Bool) {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:13:10: note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
    func set(text: String, isAdd: Bool)
         ^
                                        async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:52:109: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                toolBar.definitionButton.setTitle(resource.definitions[currentDefinition].definition, for: .normal)
                                                                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:188:42: warning: reference to static property 'topBarShowInCase' is not concurrency-safe because it involves shared mutable state
        topMaskView.isHidden = KSOptions.topBarShowInCase != .always
                                         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: note: static property declared here
    static var topBarShowInCase = KSPlayerTopBarShowCase.always
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:217:75: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "play.fill"), for: .normal)
                                                                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:218:88: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "arrow.counterclockwise"), for: .selected)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:219:73: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock.open"), for: .normal)
                                                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:220:68: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock"), for: .selected)
                                                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:402:27: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
            if !KSOptions.enablePlaytimeGestures {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:426:54: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
        if scrollDirection == .horizontal, KSOptions.enablePlaytimeGestures {
                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:621:46: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                button.setTitle(title, for: .normal)
                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:687:61: warning: reference to static property 'textColor' is not concurrency-safe because it involves shared mutable state
            subtitleLabel.textColor = UIColor(SubtitleModel.textColor)
                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: note: static property declared here
    public static var textColor: Color = .white
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:688:70: warning: reference to static property 'textBackgroundColor' is not concurrency-safe because it involves shared mutable state
            subtitleBackView.backgroundColor = UIColor(SubtitleModel.textBackgroundColor)
                                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: note: static property declared here
    public static var textBackgroundColor: Color = .clear
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:729:80: warning: reference to static property 'animateDelayTimeInterval' is not concurrency-safe because it involves shared mutable state
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + KSOptions.animateDelayTimeInterval,
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: note: static property declared here
    static var animateDelayTimeInterval = TimeInterval(5)
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:746:88: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .normal)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:748:88: warning: reference to static property 'highlighted' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .highlighted)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: note: static property declared here
        public static var highlighted = State(rawValue: 1 << 1)
                          ^
[89/89] Compiling KSPlayer resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement
    public func set(text: String, isAdd: Bool) {
                ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
    public func set(text: String, isAdd: Bool) {
                ^
    nonisolated
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:13:10: note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
    func set(text: String, isAdd: Bool)
         ^
                                        async
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:52:109: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                toolBar.definitionButton.setTitle(resource.definitions[currentDefinition].definition, for: .normal)
                                                                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:188:42: warning: reference to static property 'topBarShowInCase' is not concurrency-safe because it involves shared mutable state
        topMaskView.isHidden = KSOptions.topBarShowInCase != .always
                                         ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: note: static property declared here
    static var topBarShowInCase = KSPlayerTopBarShowCase.always
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:217:75: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "play.fill"), for: .normal)
                                                                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:218:88: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            replayButton.setImage(UIImage(systemName: "arrow.counterclockwise"), for: .selected)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:219:73: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock.open"), for: .normal)
                                                                        ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:220:68: warning: reference to static property 'selected' is not concurrency-safe because it involves shared mutable state
            lockButton.setImage(UIImage(systemName: "lock"), for: .selected)
                                                                   ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: note: static property declared here
        public static var selected = State(rawValue: 1 << 3)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:402:27: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
            if !KSOptions.enablePlaytimeGestures {
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:426:54: warning: reference to static property 'enablePlaytimeGestures' is not concurrency-safe because it involves shared mutable state
        if scrollDirection == .horizontal, KSOptions.enablePlaytimeGestures {
                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: note: static property declared here
    static var enablePlaytimeGestures = true
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:621:46: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
                button.setTitle(title, for: .normal)
                                             ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:687:61: warning: reference to static property 'textColor' is not concurrency-safe because it involves shared mutable state
            subtitleLabel.textColor = UIColor(SubtitleModel.textColor)
                                                            ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: note: static property declared here
    public static var textColor: Color = .white
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:688:70: warning: reference to static property 'textBackgroundColor' is not concurrency-safe because it involves shared mutable state
            subtitleBackView.backgroundColor = UIColor(SubtitleModel.textBackgroundColor)
                                                                     ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: note: static property declared here
    public static var textBackgroundColor: Color = .clear
                      ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:729:80: warning: reference to static property 'animateDelayTimeInterval' is not concurrency-safe because it involves shared mutable state
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + KSOptions.animateDelayTimeInterval,
                                                                               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: note: static property declared here
    static var animateDelayTimeInterval = TimeInterval(5)
               ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:746:88: warning: reference to static property 'normal' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .normal)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: note: static property declared here
        public static var normal = State(rawValue: 1 << 0)
                          ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:748:88: warning: reference to static property 'highlighted' is not concurrency-safe because it involves shared mutable state
            toolBar.timeSlider.setThumbImage(UIImage(systemName: "circle.fill"), for: .highlighted)
                                                                                       ^
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: note: static property declared here
        public static var highlighted = State(rawValue: 1 << 1)
                          ^
Build complete! (43.24s)
Fetching https://github.com/kingslay/FFmpegKit.git
[1/8612] Fetching ffmpegkit
Fetched https://github.com/kingslay/FFmpegKit.git (22.62s)
Computing version for https://github.com/kingslay/FFmpegKit.git
Computed https://github.com/kingslay/FFmpegKit.git at 6.1.3 (0.39s)
Creating working copy for https://github.com/kingslay/FFmpegKit.git
Working copy of https://github.com/kingslay/FFmpegKit.git resolved at 6.1.3
warning: failed to retrieve search paths with pkg-config; maybe pkg-config is not installed
warning: you may be able to install sdl2 using your system-packager:
    brew install sdl2
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.