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.