Build Information
Successful build of VideoFrames, reference 1.1.1 (3de476
), with Swift 6.0 for macOS (SPM) on 5 Nov 2024 09:30:04 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/heestand-xyz/VideoFrames.git
Reference: 1.1.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/heestand-xyz/VideoFrames
* tag 1.1.1 -> FETCH_HEAD
HEAD is now at 3de476e Frame Generator Cleanup
Cloned https://github.com/heestand-xyz/VideoFrames.git
Revision (git rev-parse @):
3de476e958b765699eb2f98ca42336acfc262f49
SUCCESS checkout https://github.com/heestand-xyz/VideoFrames.git at 1.1.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "videoframes",
"name": "VideoFrames",
"url": "https://github.com/heestand-xyz/VideoFrames.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/VideoFrames",
"dependencies": [
]
}
]
}
Fetching https://github.com/heestand-xyz/VideoFrames.git
[1/324] Fetching videoframes
Fetched https://github.com/heestand-xyz/VideoFrames.git from cache (1.14s)
Creating working copy for https://github.com/heestand-xyz/VideoFrames.git
Working copy of https://github.com/heestand-xyz/VideoFrames.git resolved at 1.1.1 (3de476e)
warning: '.resolve-product-dependencies': dependency 'videoframes' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/heestand-xyz/VideoFrames.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/6] Compiling VideoFrames ToFrames.swift
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToFrames.swift:39:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
37 | let frameCount = asset.info.frameCount
38 | return AsyncThrowingStream { stream in
39 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
40 | for index in 0..<frameCount {
41 | do {
42 | let image: _Image = try await getFrame(at: index, info: asset.info, with: asset.generator)
| `- note: closure captures 'asset' which is accessible to code in the current task
43 | stream.yield(image)
44 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToFrames.swift:43:28: warning: sending 'image' risks causing data races; this is an error in the Swift 6 language mode
41 | do {
42 | let image: _Image = try await getFrame(at: index, info: asset.info, with: asset.generator)
43 | stream.yield(image)
| |- warning: sending 'image' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'image' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
44 | } catch {
45 | stream.finish(throwing: error)
[4/6] Compiling VideoFrames Shared.swift
[5/6] Compiling VideoFrames ToVideo.swift
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:28:20: warning: unknown operating system for build configuration 'os'
26 | return .h264
27 | case .proRes:
28 | #if os(xrOS)
| |- warning: unknown operating system for build configuration 'os'
| |- note: did you mean 'tvOS'?
| `- note: did you mean 'iOS'?
29 | print("VideoFrames - Warning: ProRes is not supported in visionOS. Will fallback to h264.")
30 | return .h264
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:55:28: warning: capture of 'images' with non-sendable type '[_Image]' (aka 'Array<NSImage>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
53 | do {
54 | try convertFramesToVideo(
55 | count: images.count,
| `- warning: capture of 'images' with non-sendable type '[_Image]' (aka 'Array<NSImage>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
56 | image: { images[$0] },
57 | fps: fps,
Swift.Array:1:23: note: generic struct 'Array' does not conform to the 'Sendable' protocol
1 | @frozen public struct Array<Element> : _DestructorSafeContainer {
| `- note: generic struct 'Array' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:59:29: warning: capture of 'format' with non-sendable type 'VideoFormat' in a `@Sendable` closure; this is an error in the Swift 6 language mode
7 | #endif
8 |
9 | public enum VideoFormat: String, CaseIterable {
| `- note: consider making enum 'VideoFormat' conform to the 'Sendable' protocol
10 | case mov
11 | case mp4
:
57 | fps: fps,
58 | kbps: kbps,
59 | format: format,
| `- warning: capture of 'format' with non-sendable type 'VideoFormat' in a `@Sendable` closure; this is an error in the Swift 6 language mode
60 | codec: codec,
61 | url: url,
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:60:28: warning: capture of 'codec' with non-sendable type 'VideoCodec' in a `@Sendable` closure; this is an error in the Swift 6 language mode
18 | }
19 |
20 | public enum VideoCodec: String, CaseIterable {
| `- note: consider making enum 'VideoCodec' conform to the 'Sendable' protocol
21 | case h264
22 | case proRes
:
58 | kbps: kbps,
59 | format: format,
60 | codec: codec,
| `- warning: capture of 'codec' with non-sendable type 'VideoCodec' in a `@Sendable` closure; this is an error in the Swift 6 language mode
61 | url: url,
62 | frame: { index in
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:63:25: warning: capture of 'frame' with non-sendable type '((Int) -> ())?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
61 | url: url,
62 | frame: { index in
63 | frame?(index)
| |- warning: capture of 'frame' with non-sendable type '((Int) -> ())?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | }, completion: { result in
65 |
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:56:30: warning: capture of 'images' with non-sendable type '[_Image]' (aka 'Array<NSImage>') in an isolated closure; this is an error in the Swift 6 language mode
54 | try convertFramesToVideo(
55 | count: images.count,
56 | image: { images[$0] },
| `- warning: capture of 'images' with non-sendable type '[_Image]' (aka 'Array<NSImage>') in an isolated closure; this is an error in the Swift 6 language mode
57 | fps: fps,
58 | kbps: kbps,
Swift.Array:1:23: note: generic struct 'Array' does not conform to the 'Sendable' protocol
1 | @frozen public struct Array<Element> : _DestructorSafeContainer {
| `- note: generic struct 'Array' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:63:25: warning: capture of 'frame' with non-sendable type '((Int) -> ())?' in an isolated closure; this is an error in the Swift 6 language mode
61 | url: url,
62 | frame: { index in
63 | frame?(index)
| |- warning: capture of 'frame' with non-sendable type '((Int) -> ())?' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
64 | }, completion: { result in
65 |
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:149:15: warning: capture of 'input' with non-sendable type 'AVAssetWriterInput' in a `@Sendable` closure; this is an error in the Swift 6 language mode
147 |
148 | input.requestMediaDataWhenReady(on: queue, using: {
149 | while input.isReadyForMoreMediaData && frameIndex < count {
| `- warning: capture of 'input' with non-sendable type 'AVAssetWriterInput' in a `@Sendable` closure; this is an error in the Swift 6 language mode
150 | let time: CMTime = CMTimeMake(value: Int64(frameIndex * 1_000),
151 | timescale: Int32(fps * 1_000))
AVFoundation.AVAssetWriterInput:2:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class AVAssetWriterInput : NSObject {
| `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
3 | @available(*, unavailable)
4 | public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
1 | import Foundation
2 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
3 | #if os(macOS)
4 | import AppKit
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:153:58: warning: capture of 'image' with non-sendable type '(Int) throws -> (_Image)' (aka '(Int) throws -> (NSImage)') in a `@Sendable` closure; this is an error in the Swift 6 language mode
151 | timescale: Int32(fps * 1_000))
152 | do {
153 | let image: _Image = frameIndex > 0 ? try image(frameIndex) : imageZero
| |- warning: capture of 'image' with non-sendable type '(Int) throws -> (_Image)' (aka '(Int) throws -> (NSImage)') in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
154 | let pixelBuffer: CVPixelBuffer = try getPixelBuffer(from: image)
155 | adaptor.append(pixelBuffer, withPresentationTime: time)
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:153:78: warning: capture of 'imageZero' with non-sendable type '_Image' (aka 'NSImage') in a `@Sendable` closure; this is an error in the Swift 6 language mode
151 | timescale: Int32(fps * 1_000))
152 | do {
153 | let image: _Image = frameIndex > 0 ? try image(frameIndex) : imageZero
| `- warning: capture of 'imageZero' with non-sendable type '_Image' (aka 'NSImage') in a `@Sendable` closure; this is an error in the Swift 6 language mode
154 | let pixelBuffer: CVPixelBuffer = try getPixelBuffer(from: image)
155 | adaptor.append(pixelBuffer, withPresentationTime: time)
AppKit.NSImage:1:12: note: class 'NSImage' does not conform to the 'Sendable' protocol
1 | open class NSImage : NSObject {
| `- note: class 'NSImage' does not conform to the 'Sendable' protocol
2 | public /*not inherited*/ init?(named name: NSImage.Name)
3 | @available(*, unavailable, renamed: "init(named:)", message: "Not available in Swift")
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:155:17: warning: capture of 'adaptor' with non-sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
153 | let image: _Image = frameIndex > 0 ? try image(frameIndex) : imageZero
154 | let pixelBuffer: CVPixelBuffer = try getPixelBuffer(from: image)
155 | adaptor.append(pixelBuffer, withPresentationTime: time)
| `- warning: capture of 'adaptor' with non-sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a `@Sendable` closure; this is an error in the Swift 6 language mode
156 | frame(frameIndex)
157 | frameIndex += 1
AVFoundation.AVAssetWriterInputPixelBufferAdaptor:2:12: note: class 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class AVAssetWriterInputPixelBufferAdaptor : NSObject {
| `- note: class 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol
3 | @available(*, unavailable)
4 | public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:156:17: warning: capture of 'frame' with non-sendable type '(Int) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
154 | let pixelBuffer: CVPixelBuffer = try getPixelBuffer(from: image)
155 | adaptor.append(pixelBuffer, withPresentationTime: time)
156 | frame(frameIndex)
| |- warning: capture of 'frame' with non-sendable type '(Int) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
157 | frameIndex += 1
158 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:159:17: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
157 | frameIndex += 1
158 | } catch {
159 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
160 | return
161 | }
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:165:9: warning: capture of 'writer' with non-sendable type 'AVAssetWriter' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 | guard frameIndex >= count else { return }
164 | input.markAsFinished()
165 | writer.finishWriting {
| `- warning: capture of 'writer' with non-sendable type 'AVAssetWriter' in a `@Sendable` closure; this is an error in the Swift 6 language mode
166 | guard writer.error == nil else {
167 | completion(.failure(writer.error!))
AVFoundation.AVAssetWriter:2:12: note: class 'AVAssetWriter' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class AVAssetWriter : NSObject {
| `- note: class 'AVAssetWriter' does not conform to the 'Sendable' protocol
3 | @available(*, unavailable)
4 | public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:149:48: warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
147 |
148 | input.requestMediaDataWhenReady(on: queue, using: {
149 | while input.isReadyForMoreMediaData && frameIndex < count {
| `- warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
150 | let time: CMTime = CMTimeMake(value: Int64(frameIndex * 1_000),
151 | timescale: Int32(fps * 1_000))
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:150:56: warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
148 | input.requestMediaDataWhenReady(on: queue, using: {
149 | while input.isReadyForMoreMediaData && frameIndex < count {
150 | let time: CMTime = CMTimeMake(value: Int64(frameIndex * 1_000),
| `- warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
151 | timescale: Int32(fps * 1_000))
152 | do {
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:153:37: warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
151 | timescale: Int32(fps * 1_000))
152 | do {
153 | let image: _Image = frameIndex > 0 ? try image(frameIndex) : imageZero
| `- warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
154 | let pixelBuffer: CVPixelBuffer = try getPixelBuffer(from: image)
155 | adaptor.append(pixelBuffer, withPresentationTime: time)
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:153:64: warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
151 | timescale: Int32(fps * 1_000))
152 | do {
153 | let image: _Image = frameIndex > 0 ? try image(frameIndex) : imageZero
| `- warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
154 | let pixelBuffer: CVPixelBuffer = try getPixelBuffer(from: image)
155 | adaptor.append(pixelBuffer, withPresentationTime: time)
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:156:23: warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
154 | let pixelBuffer: CVPixelBuffer = try getPixelBuffer(from: image)
155 | adaptor.append(pixelBuffer, withPresentationTime: time)
156 | frame(frameIndex)
| `- warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
157 | frameIndex += 1
158 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:157:17: warning: mutation of captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
155 | adaptor.append(pixelBuffer, withPresentationTime: time)
156 | frame(frameIndex)
157 | frameIndex += 1
| `- warning: mutation of captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
158 | } catch {
159 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:163:15: warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
161 | }
162 | }
163 | guard frameIndex >= count else { return }
| `- warning: reference to captured var 'frameIndex' in concurrently-executing code; this is an error in the Swift 6 language mode
164 | input.markAsFinished()
165 | writer.finishWriting {
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:166:19: warning: capture of 'writer' with non-sendable type 'AVAssetWriter' in a `@Sendable` closure; this is an error in the Swift 6 language mode
164 | input.markAsFinished()
165 | writer.finishWriting {
166 | guard writer.error == nil else {
| `- warning: capture of 'writer' with non-sendable type 'AVAssetWriter' in a `@Sendable` closure; this is an error in the Swift 6 language mode
167 | completion(.failure(writer.error!))
168 | return
AVFoundation.AVAssetWriter:2:12: note: class 'AVAssetWriter' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | open class AVAssetWriter : NSObject {
| `- note: class 'AVAssetWriter' does not conform to the 'Sendable' protocol
3 | @available(*, unavailable)
4 | public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/VideoFrames/ToVideo.swift:167:17: warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
165 | writer.finishWriting {
166 | guard writer.error == nil else {
167 | completion(.failure(writer.error!))
| |- warning: capture of 'completion' with non-sendable type '(Result<Void, any Error>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
168 | return
169 | }
[6/6] Emitting module VideoFrames
Build complete! (10.94s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "VideoFrames",
"name" : "VideoFrames",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "VideoFrames",
"targets" : [
"VideoFrames"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "VideoFramesTests",
"module_type" : "SwiftTarget",
"name" : "VideoFramesTests",
"path" : "Tests/VideoFramesTests",
"sources" : [
"VideoFramesTests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"VideoFrames"
],
"type" : "test"
},
{
"c99name" : "VideoFrames",
"module_type" : "SwiftTarget",
"name" : "VideoFrames",
"path" : "Sources/VideoFrames",
"product_memberships" : [
"VideoFrames"
],
"sources" : [
"Shared.swift",
"ToFrames.swift",
"ToVideo.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.