Build Information
Successful build of Buffie, reference 2.0.2 (61a24b
), with Swift 6.1 for macOS (SPM) on 25 Apr 2025 03:28:34 UTC.
Swift 6 data race errors: 5
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/krad/buffie.git
Reference: 2.0.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/krad/buffie
* tag 2.0.2 -> FETCH_HEAD
HEAD is now at 61a24bd Adjusting what h264 profiles we want to support.
Submodule path 'Examples/cli/capture': checked out 'eae3f6b02252067286692688333a9ce00d992ff3'
Submodule 'Examples/cli/capture' (https://www.github.com/krad/capture.git) registered for path 'Examples/cli/capture'
Cloning into '/Users/admin/builder/spi-builder-workspace/Examples/cli/capture'...
warning: redirecting to https://github.com/krad/capture.git/
Cloned https://github.com/krad/buffie.git
Revision (git rev-parse @):
61a24bd00c02b50a9ba998f297d7651385be20bf
SUCCESS checkout https://github.com/krad/buffie.git at 2.0.2
========================================
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": "buffie",
"name": "Buffie",
"url": "https://github.com/krad/buffie.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/buffie",
"dependencies": [
]
}
]
}
Fetching https://github.com/krad/buffie.git
[1/3318] Fetching buffie
Fetched https://github.com/krad/buffie.git from cache (0.91s)
Creating working copy for https://github.com/krad/buffie.git
Working copy of https://github.com/krad/buffie.git resolved at 2.0.2 (61a24bd)
warning: '.resolve-product-dependencies': dependency 'buffie' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/krad/buffie.git
https://github.com/krad/buffie.git
{
"dependencies" : [
],
"manifest_display_name" : "Buffie",
"name" : "Buffie",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Buffie",
"targets" : [
"Buffie"
],
"type" : {
"library" : [
"dynamic"
]
}
}
],
"targets" : [
{
"c99name" : "BuffieTests",
"module_type" : "SwiftTarget",
"name" : "BuffieTests",
"path" : "Tests/BuffieTests",
"sources" : [
"AACEncoderTests.swift",
"AVMuxerTests.swift",
"AudioEncoderTests.swift",
"CameraTests.swift",
"DeviceEnumerationTests.swift",
"DisplayTests.swift",
"MP4WriterTests.swift",
"Mocks/NALUData.swift",
"Mocks/SimpleMocks.swift",
"PathHelpers.swift",
"PlaylistWriterTests.swift",
"ScreenRecorderTests.swift",
"SegmenterTests.swift",
"VideoDecoderTests.swift",
"VideoEncoderTests.swift"
],
"target_dependencies" : [
"Buffie"
],
"type" : "test"
},
{
"c99name" : "Buffie",
"module_type" : "SwiftTarget",
"name" : "Buffie",
"path" : "Sources/Buffie",
"product_memberships" : [
"Buffie"
],
"sources" : [
"Audio/AACEncoder.swift",
"ByteHelpers.swift",
"Capture/AVReader.swift",
"Capture/Camera/Camera.swift",
"Capture/Camera/CaptureSession.swift",
"Capture/Camera/DeviceHelpers.swift",
"Capture/Displays/Display.swift",
"Capture/Displays/ScreenRecording.swift",
"File Writers/M4VWriter.swift",
"File Writers/MOVWriter.swift",
"File Writers/MP4Writer.swift",
"File Writers/MovieFileContainer.swift",
"File Writers/MovieFileQuality.swift",
"File Writers/MovieFileWriter.swift",
"FormatHelpers.swift",
"Helpers.swift",
"ThreadSafeArray.swift",
"Video/NALU.swift",
"Video/SampleHelpers.swift",
"Video/VideoDecoder.swift",
"Video/VideoEncoder.swift",
"Video/VideoEncoderSettings.swift",
"Video/VideoSampleHelpers.swift"
],
"type" : "library"
}
],
"tools_version" : "4.0"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/4] Write sources
[1/4] Write swift-version-2F0A5646E1D333AE.txt
[3/26] Emitting module Buffie
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/Display.swift:6:15: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
4 | #if os(macOS)
5 |
6 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
7 | internal enum DisplayType {
8 | case active
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/Display.swift:12:15: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
10 | }
11 |
12 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
13 | public struct Display {
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:5:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
3 |
4 | #if os(macOS)
5 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
6 | public class ScreenRecorder {
7 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:62:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
60 | }
61 |
62 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
63 | extension ScreenRecorder: CaptureDevice { }
64 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:65:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
63 | extension ScreenRecorder: CaptureDevice { }
64 |
65 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
66 | extension ScreenRecorder: CameraControlDelegate {
67 | public func cameraStarted() {
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:6:5: warning: 'public' modifier is redundant for static method declared in a public extension
4 | public extension AVCaptureDevice {
5 |
6 | public static func videoDevices() -> [AVCaptureDevice] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
7 | return AVCaptureDevice.devices(for: .video)
8 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:10:5: warning: 'public' modifier is redundant for static method declared in a public extension
8 | }
9 |
10 | public static func audioDevices() -> [AVCaptureDevice] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
11 | return AVCaptureDevice.devices(for: .audio)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:14:5: warning: 'public' modifier is redundant for static method declared in a public extension
12 | }
13 |
14 | public static func videoDevicesDictionary() -> [String: String] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
15 | return self.dictionary(for: self.videoDevices())
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:18:5: warning: 'public' modifier is redundant for static method declared in a public extension
16 | }
17 |
18 | public static func audioDevicesDictionary() -> [String: String] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
19 | return self.dictionary(for: self.audioDevices())
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:43:5: warning: 'public' modifier is redundant for static method declared in a public extension
41 | public extension AVCaptureDeviceInput {
42 |
43 | public static func input(for deviceID: String?) throws -> AVCaptureDeviceInput? {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
44 | if let devID = deviceID {
45 | if let device = AVCaptureDevice(uniqueID: devID) {
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:24:5: warning: 'public' modifier is redundant for property declared in a public extension
22 | }
23 |
24 | public var notSync: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
25 | return self.attachmentValue(for: kCMSampleAttachmentKey_NotSync)
26 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:28:5: warning: 'public' modifier is redundant for property declared in a public extension
26 | }
27 |
28 | public var dependsOnOthers: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
29 | return self.attachmentValue(for: kCMSampleAttachmentKey_DependsOnOthers)
30 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:32:5: warning: 'public' modifier is redundant for property declared in a public extension
30 | }
31 |
32 | public var earlierPTS: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
33 | return self.attachmentValue(for: kCMSampleAttachmentKey_EarlierDisplayTimesAllowed)
34 | }
[4/28] Compiling Buffie VideoEncoderSettings.swift
[5/28] Compiling Buffie VideoSampleHelpers.swift
[6/28] Compiling Buffie Helpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
16 |
17 | internal func append(_ newElement: T) {
18 | q.async(flags: .barrier) { self.array.append(newElement) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
19 | }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
16 |
17 | internal func append(_ newElement: T) {
18 | q.async(flags: .barrier) { self.array.append(newElement) }
| `- warning: capture of 'newElement' with non-sendable type 'T' in a '@Sendable' closure
19 | }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
20 |
21 | internal func append(contentsOf: [T]) {
22 | q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
23 | }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
20 |
21 | internal func append(contentsOf: [T]) {
22 | q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
| `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a '@Sendable' closure
23 | }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
24 |
25 | internal func remove(at index: Int) {
26 | q.async(flags: .barrier) { self.array.remove(at: index) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
27 | }
28 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
28 |
29 | internal func removeFirst(n: Int) {
30 | q.async(flags: .barrier) { self.array.removeFirst(n) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
31 | }
32 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
32 |
33 | internal func removeLast() {
34 | q.async(flags: .barrier) { self.array.removeLast() }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
35 | }
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
36 |
37 | internal func removeLast(n: Int) {
38 | q.async(flags: .barrier) { self.array.removeLast(n) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
39 | }
40 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:73:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
71 | internal subscript(index: Int) -> T {
72 | set {
73 | q.async(flags: .barrier) { self.array[index] = newValue }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
74 | }
75 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:73:60: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
71 | internal subscript(index: Int) -> T {
72 | set {
73 | q.async(flags: .barrier) { self.array[index] = newValue }
| `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
74 | }
75 |
[7/28] Compiling Buffie ThreadSafeArray.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
16 |
17 | internal func append(_ newElement: T) {
18 | q.async(flags: .barrier) { self.array.append(newElement) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
19 | }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
16 |
17 | internal func append(_ newElement: T) {
18 | q.async(flags: .barrier) { self.array.append(newElement) }
| `- warning: capture of 'newElement' with non-sendable type 'T' in a '@Sendable' closure
19 | }
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
20 |
21 | internal func append(contentsOf: [T]) {
22 | q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
23 | }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
20 |
21 | internal func append(contentsOf: [T]) {
22 | q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
| `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a '@Sendable' closure
23 | }
24 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
24 |
25 | internal func remove(at index: Int) {
26 | q.async(flags: .barrier) { self.array.remove(at: index) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
27 | }
28 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
28 |
29 | internal func removeFirst(n: Int) {
30 | q.async(flags: .barrier) { self.array.removeFirst(n) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
31 | }
32 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
32 |
33 | internal func removeLast() {
34 | q.async(flags: .barrier) { self.array.removeLast() }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
35 | }
36 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
36 |
37 | internal func removeLast(n: Int) {
38 | q.async(flags: .barrier) { self.array.removeLast(n) }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
39 | }
40 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:73:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
71 | internal subscript(index: Int) -> T {
72 | set {
73 | q.async(flags: .barrier) { self.array[index] = newValue }
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a '@Sendable' closure
74 | }
75 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/ThreadSafeArray.swift:73:60: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
1 | import Foundation
2 |
3 | internal class ThreadSafeArray<T>: Collection {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
4 |
5 | var startIndex: Int = 0
:
71 | internal subscript(index: Int) -> T {
72 | set {
73 | q.async(flags: .barrier) { self.array[index] = newValue }
| `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
74 | }
75 |
[8/28] Compiling Buffie MovieFileContainer.swift
[9/28] Compiling Buffie MovieFileQuality.swift
[10/28] Compiling Buffie NALU.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:24:5: warning: 'public' modifier is redundant for property declared in a public extension
22 | }
23 |
24 | public var notSync: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
25 | return self.attachmentValue(for: kCMSampleAttachmentKey_NotSync)
26 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:28:5: warning: 'public' modifier is redundant for property declared in a public extension
26 | }
27 |
28 | public var dependsOnOthers: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
29 | return self.attachmentValue(for: kCMSampleAttachmentKey_DependsOnOthers)
30 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:32:5: warning: 'public' modifier is redundant for property declared in a public extension
30 | }
31 |
32 | public var earlierPTS: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
33 | return self.attachmentValue(for: kCMSampleAttachmentKey_EarlierDisplayTimesAllowed)
34 | }
[11/28] Compiling Buffie SampleHelpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:24:5: warning: 'public' modifier is redundant for property declared in a public extension
22 | }
23 |
24 | public var notSync: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
25 | return self.attachmentValue(for: kCMSampleAttachmentKey_NotSync)
26 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:28:5: warning: 'public' modifier is redundant for property declared in a public extension
26 | }
27 |
28 | public var dependsOnOthers: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
29 | return self.attachmentValue(for: kCMSampleAttachmentKey_DependsOnOthers)
30 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/SampleHelpers.swift:32:5: warning: 'public' modifier is redundant for property declared in a public extension
30 | }
31 |
32 | public var earlierPTS: Bool {
| `- warning: 'public' modifier is redundant for property declared in a public extension
33 | return self.attachmentValue(for: kCMSampleAttachmentKey_EarlierDisplayTimesAllowed)
34 | }
[12/28] Compiling Buffie Display.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/Display.swift:6:15: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
4 | #if os(macOS)
5 |
6 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
7 | internal enum DisplayType {
8 | case active
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/Display.swift:12:15: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
10 | }
11 |
12 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
13 | public struct Display {
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:5:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
3 |
4 | #if os(macOS)
5 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
6 | public class ScreenRecorder {
7 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:62:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
60 | }
61 |
62 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
63 | extension ScreenRecorder: CaptureDevice { }
64 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:65:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
63 | extension ScreenRecorder: CaptureDevice { }
64 |
65 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
66 | extension ScreenRecorder: CameraControlDelegate {
67 | public func cameraStarted() {
[13/28] Compiling Buffie ScreenRecording.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/Display.swift:6:15: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
4 | #if os(macOS)
5 |
6 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
7 | internal enum DisplayType {
8 | case active
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/Display.swift:12:15: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
10 | }
11 |
12 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
13 | public struct Display {
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:5:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
3 |
4 | #if os(macOS)
5 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
6 | public class ScreenRecorder {
7 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:62:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
60 | }
61 |
62 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
63 | extension ScreenRecorder: CaptureDevice { }
64 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:65:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
63 | extension ScreenRecorder: CaptureDevice { }
64 |
65 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
66 | extension ScreenRecorder: CameraControlDelegate {
67 | public func cameraStarted() {
[14/28] Compiling Buffie M4VWriter.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/Display.swift:6:15: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
4 | #if os(macOS)
5 |
6 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
7 | internal enum DisplayType {
8 | case active
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/Display.swift:12:15: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
10 | }
11 |
12 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
13 | public struct Display {
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:5:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
3 |
4 | #if os(macOS)
5 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
6 | public class ScreenRecorder {
7 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:62:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
60 | }
61 |
62 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
63 | extension ScreenRecorder: CaptureDevice { }
64 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Displays/ScreenRecording.swift:65:11: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
63 | extension ScreenRecorder: CaptureDevice { }
64 |
65 | @available (macOS 10.11, *)
| `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
66 | extension ScreenRecorder: CameraControlDelegate {
67 | public func cameraStarted() {
[15/28] Compiling Buffie MOVWriter.swift
[16/28] Compiling Buffie MP4Writer.swift
[17/28] Compiling Buffie MovieFileWriter.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/File Writers/MovieFileWriter.swift:105:13: warning: capture of 'onComplete' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
103 |
104 | self.writer.finishWriting {
105 | onComplete?()
| |- warning: capture of 'onComplete' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
106 | }
107 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/FormatHelpers.swift:31:19: warning: initialization of 'UnsafeBufferPointer<AudioBuffer>' results in a dangling buffer pointer
29 |
30 | var shallowBuffer = audioBufferList
31 | let buffers = UnsafeBufferPointer<AudioBuffer>(start: &shallowBuffer.mBuffers, count: Int(audioBufferList.mNumberBuffers))
| | |- note: implicit argument conversion from 'AudioBuffer' to 'UnsafePointer<AudioBuffer>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
| | `- note: use 'withUnsafePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'UnsafeBufferPointer<AudioBuffer>' results in a dangling buffer pointer
32 | for buffer in buffers {
33 | if let framePtr = buffer.mData?.assumingMemoryBound(to: UInt8.self) {
[18/28] Compiling Buffie FormatHelpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/File Writers/MovieFileWriter.swift:105:13: warning: capture of 'onComplete' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
103 |
104 | self.writer.finishWriting {
105 | onComplete?()
| |- warning: capture of 'onComplete' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
106 | }
107 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/FormatHelpers.swift:31:19: warning: initialization of 'UnsafeBufferPointer<AudioBuffer>' results in a dangling buffer pointer
29 |
30 | var shallowBuffer = audioBufferList
31 | let buffers = UnsafeBufferPointer<AudioBuffer>(start: &shallowBuffer.mBuffers, count: Int(audioBufferList.mNumberBuffers))
| | |- note: implicit argument conversion from 'AudioBuffer' to 'UnsafePointer<AudioBuffer>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
| | `- note: use 'withUnsafePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'UnsafeBufferPointer<AudioBuffer>' results in a dangling buffer pointer
32 | for buffer in buffers {
33 | if let framePtr = buffer.mData?.assumingMemoryBound(to: UInt8.self) {
[19/28] Compiling Buffie Camera.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/CaptureSession.swift:153:17: warning: capture of 'self' with non-sendable type 'CaptureSession' in a '@Sendable' closure
14 | }
15 |
16 | internal class CaptureSession: CaptureSessionProtocol {
| `- note: class 'CaptureSession' does not conform to the 'Sendable' protocol
17 |
18 | private var controlDelegate: CameraControlDelegate
:
151 | self.sessionObserver = self.session.observe(\.isRunning) { session, _ in
152 | if session.isRunning {
153 | self.controlDelegate.cameraStarted()
| `- warning: capture of 'self' with non-sendable type 'CaptureSession' in a '@Sendable' closure
154 | } else {
155 | self.controlDelegate.cameraStopped()
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:6:5: warning: 'public' modifier is redundant for static method declared in a public extension
4 | public extension AVCaptureDevice {
5 |
6 | public static func videoDevices() -> [AVCaptureDevice] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
7 | return AVCaptureDevice.devices(for: .video)
8 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:10:5: warning: 'public' modifier is redundant for static method declared in a public extension
8 | }
9 |
10 | public static func audioDevices() -> [AVCaptureDevice] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
11 | return AVCaptureDevice.devices(for: .audio)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:14:5: warning: 'public' modifier is redundant for static method declared in a public extension
12 | }
13 |
14 | public static func videoDevicesDictionary() -> [String: String] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
15 | return self.dictionary(for: self.videoDevices())
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:18:5: warning: 'public' modifier is redundant for static method declared in a public extension
16 | }
17 |
18 | public static func audioDevicesDictionary() -> [String: String] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
19 | return self.dictionary(for: self.audioDevices())
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:43:5: warning: 'public' modifier is redundant for static method declared in a public extension
41 | public extension AVCaptureDeviceInput {
42 |
43 | public static func input(for deviceID: String?) throws -> AVCaptureDeviceInput? {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
44 | if let devID = deviceID {
45 | if let device = AVCaptureDevice(uniqueID: devID) {
[20/28] Compiling Buffie CaptureSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/CaptureSession.swift:153:17: warning: capture of 'self' with non-sendable type 'CaptureSession' in a '@Sendable' closure
14 | }
15 |
16 | internal class CaptureSession: CaptureSessionProtocol {
| `- note: class 'CaptureSession' does not conform to the 'Sendable' protocol
17 |
18 | private var controlDelegate: CameraControlDelegate
:
151 | self.sessionObserver = self.session.observe(\.isRunning) { session, _ in
152 | if session.isRunning {
153 | self.controlDelegate.cameraStarted()
| `- warning: capture of 'self' with non-sendable type 'CaptureSession' in a '@Sendable' closure
154 | } else {
155 | self.controlDelegate.cameraStopped()
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:6:5: warning: 'public' modifier is redundant for static method declared in a public extension
4 | public extension AVCaptureDevice {
5 |
6 | public static func videoDevices() -> [AVCaptureDevice] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
7 | return AVCaptureDevice.devices(for: .video)
8 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:10:5: warning: 'public' modifier is redundant for static method declared in a public extension
8 | }
9 |
10 | public static func audioDevices() -> [AVCaptureDevice] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
11 | return AVCaptureDevice.devices(for: .audio)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:14:5: warning: 'public' modifier is redundant for static method declared in a public extension
12 | }
13 |
14 | public static func videoDevicesDictionary() -> [String: String] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
15 | return self.dictionary(for: self.videoDevices())
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:18:5: warning: 'public' modifier is redundant for static method declared in a public extension
16 | }
17 |
18 | public static func audioDevicesDictionary() -> [String: String] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
19 | return self.dictionary(for: self.audioDevices())
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:43:5: warning: 'public' modifier is redundant for static method declared in a public extension
41 | public extension AVCaptureDeviceInput {
42 |
43 | public static func input(for deviceID: String?) throws -> AVCaptureDeviceInput? {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
44 | if let devID = deviceID {
45 | if let device = AVCaptureDevice(uniqueID: devID) {
[21/28] Compiling Buffie DeviceHelpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/CaptureSession.swift:153:17: warning: capture of 'self' with non-sendable type 'CaptureSession' in a '@Sendable' closure
14 | }
15 |
16 | internal class CaptureSession: CaptureSessionProtocol {
| `- note: class 'CaptureSession' does not conform to the 'Sendable' protocol
17 |
18 | private var controlDelegate: CameraControlDelegate
:
151 | self.sessionObserver = self.session.observe(\.isRunning) { session, _ in
152 | if session.isRunning {
153 | self.controlDelegate.cameraStarted()
| `- warning: capture of 'self' with non-sendable type 'CaptureSession' in a '@Sendable' closure
154 | } else {
155 | self.controlDelegate.cameraStopped()
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:6:5: warning: 'public' modifier is redundant for static method declared in a public extension
4 | public extension AVCaptureDevice {
5 |
6 | public static func videoDevices() -> [AVCaptureDevice] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
7 | return AVCaptureDevice.devices(for: .video)
8 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:10:5: warning: 'public' modifier is redundant for static method declared in a public extension
8 | }
9 |
10 | public static func audioDevices() -> [AVCaptureDevice] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
11 | return AVCaptureDevice.devices(for: .audio)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:14:5: warning: 'public' modifier is redundant for static method declared in a public extension
12 | }
13 |
14 | public static func videoDevicesDictionary() -> [String: String] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
15 | return self.dictionary(for: self.videoDevices())
16 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:18:5: warning: 'public' modifier is redundant for static method declared in a public extension
16 | }
17 |
18 | public static func audioDevicesDictionary() -> [String: String] {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
19 | return self.dictionary(for: self.audioDevices())
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Capture/Camera/DeviceHelpers.swift:43:5: warning: 'public' modifier is redundant for static method declared in a public extension
41 | public extension AVCaptureDeviceInput {
42 |
43 | public static func input(for deviceID: String?) throws -> AVCaptureDeviceInput? {
| `- warning: 'public' modifier is redundant for static method declared in a public extension
44 | if let devID = deviceID {
45 | if let device = AVCaptureDevice(uniqueID: devID) {
[22/28] Compiling Buffie VideoDecoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/VideoEncoder.swift:84:5: warning: expression of type 'CFString' is unused
82 | }
83 |
84 | kVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes
| `- warning: expression of type 'CFString' is unused
85 | kVTCompressionPropertyKey_PixelTransferProperties
86 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/VideoEncoder.swift:85:5: warning: expression of type 'CFString' is unused
83 |
84 | kVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes
85 | kVTCompressionPropertyKey_PixelTransferProperties
| `- warning: expression of type 'CFString' is unused
86 |
87 | VTSessionSetProperty(session,
[23/28] Compiling Buffie VideoEncoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/VideoEncoder.swift:84:5: warning: expression of type 'CFString' is unused
82 | }
83 |
84 | kVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes
| `- warning: expression of type 'CFString' is unused
85 | kVTCompressionPropertyKey_PixelTransferProperties
86 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Video/VideoEncoder.swift:85:5: warning: expression of type 'CFString' is unused
83 |
84 | kVTCompressionPropertyKey_VideoEncoderPixelBufferAttributes
85 | kVTCompressionPropertyKey_PixelTransferProperties
| `- warning: expression of type 'CFString' is unused
86 |
87 | VTSessionSetProperty(session,
[24/28] Compiling Buffie AACEncoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:109:16: warning: capture of 'self' with non-sendable type 'AACEncoder' in a '@Sendable' closure
4 | import Dispatch
5 |
6 | public class AACEncoder {
| `- note: class 'AACEncoder' does not conform to the 'Sendable' protocol
7 |
8 | private var encoderQ = DispatchQueue(label: "aac.encoder.q")
:
107 | {
108 | self.encoderQ.async {
109 | if self.audioConverter == nil { self.setupEncoder(from: sampleBuffer) }
| `- warning: capture of 'self' with non-sendable type 'AACEncoder' in a '@Sendable' closure
110 | guard let audioConverter = self.audioConverter else { return }
111 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:109:69: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a '@Sendable' closure
107 | {
108 | self.encoderQ.async {
109 | if self.audioConverter == nil { self.setupEncoder(from: sampleBuffer) }
| `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a '@Sendable' closure
110 | guard let audioConverter = self.audioConverter else { return }
111 |
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
| `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:171:17: warning: capture of 'onComplete' with non-sendable type '([UInt8]?, OSStatus, CMTime?) -> Void' (aka '(Optional<Array<UInt8>>, Int32, Optional<CMTime>) -> ()') in a '@Sendable' closure
169 | case noErr:
170 | let aacPayload = Array(self.aacBuffer[0..<Int(outBuffer[0].mDataByteSize)])
171 | onComplete(aacPayload, noErr, duration)
| |- warning: capture of 'onComplete' with non-sendable type '([UInt8]?, OSStatus, CMTime?) -> Void' (aka '(Optional<Array<UInt8>>, Int32, Optional<CMTime>) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
172 | case -1:
173 | print("Needed more bytes")
[25/28] Compiling Buffie ByteHelpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:109:16: warning: capture of 'self' with non-sendable type 'AACEncoder' in a '@Sendable' closure
4 | import Dispatch
5 |
6 | public class AACEncoder {
| `- note: class 'AACEncoder' does not conform to the 'Sendable' protocol
7 |
8 | private var encoderQ = DispatchQueue(label: "aac.encoder.q")
:
107 | {
108 | self.encoderQ.async {
109 | if self.audioConverter == nil { self.setupEncoder(from: sampleBuffer) }
| `- warning: capture of 'self' with non-sendable type 'AACEncoder' in a '@Sendable' closure
110 | guard let audioConverter = self.audioConverter else { return }
111 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:109:69: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a '@Sendable' closure
107 | {
108 | self.encoderQ.async {
109 | if self.audioConverter == nil { self.setupEncoder(from: sampleBuffer) }
| `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a '@Sendable' closure
110 | guard let audioConverter = self.audioConverter else { return }
111 |
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
| `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:171:17: warning: capture of 'onComplete' with non-sendable type '([UInt8]?, OSStatus, CMTime?) -> Void' (aka '(Optional<Array<UInt8>>, Int32, Optional<CMTime>) -> ()') in a '@Sendable' closure
169 | case noErr:
170 | let aacPayload = Array(self.aacBuffer[0..<Int(outBuffer[0].mDataByteSize)])
171 | onComplete(aacPayload, noErr, duration)
| |- warning: capture of 'onComplete' with non-sendable type '([UInt8]?, OSStatus, CMTime?) -> Void' (aka '(Optional<Array<UInt8>>, Int32, Optional<CMTime>) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
172 | case -1:
173 | print("Needed more bytes")
[26/28] Compiling Buffie AVReader.swift
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:109:16: warning: capture of 'self' with non-sendable type 'AACEncoder' in a '@Sendable' closure
4 | import Dispatch
5 |
6 | public class AACEncoder {
| `- note: class 'AACEncoder' does not conform to the 'Sendable' protocol
7 |
8 | private var encoderQ = DispatchQueue(label: "aac.encoder.q")
:
107 | {
108 | self.encoderQ.async {
109 | if self.audioConverter == nil { self.setupEncoder(from: sampleBuffer) }
| `- warning: capture of 'self' with non-sendable type 'AACEncoder' in a '@Sendable' closure
110 | guard let audioConverter = self.audioConverter else { return }
111 |
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:109:69: warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a '@Sendable' closure
107 | {
108 | self.encoderQ.async {
109 | if self.audioConverter == nil { self.setupEncoder(from: sampleBuffer) }
| `- warning: capture of 'sampleBuffer' with non-sendable type 'CMSampleBuffer' in a '@Sendable' closure
110 | guard let audioConverter = self.audioConverter else { return }
111 |
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
| `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/Buffie/Audio/AACEncoder.swift:171:17: warning: capture of 'onComplete' with non-sendable type '([UInt8]?, OSStatus, CMTime?) -> Void' (aka '(Optional<Array<UInt8>>, Int32, Optional<CMTime>) -> ()') in a '@Sendable' closure
169 | case noErr:
170 | let aacPayload = Array(self.aacBuffer[0..<Int(outBuffer[0].mDataByteSize)])
171 | onComplete(aacPayload, noErr, duration)
| |- warning: capture of 'onComplete' with non-sendable type '([UInt8]?, OSStatus, CMTime?) -> Void' (aka '(Optional<Array<UInt8>>, Int32, Optional<CMTime>) -> ()') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
172 | case -1:
173 | print("Needed more bytes")
[26/28] Write Objects.LinkFileList
[27/28] Linking libBuffie.dylib
Build complete! (10.83s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Buffie",
"name" : "Buffie",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Buffie",
"targets" : [
"Buffie"
],
"type" : {
"library" : [
"dynamic"
]
}
}
],
"targets" : [
{
"c99name" : "BuffieTests",
"module_type" : "SwiftTarget",
"name" : "BuffieTests",
"path" : "Tests/BuffieTests",
"sources" : [
"AACEncoderTests.swift",
"AVMuxerTests.swift",
"AudioEncoderTests.swift",
"CameraTests.swift",
"DeviceEnumerationTests.swift",
"DisplayTests.swift",
"MP4WriterTests.swift",
"Mocks/NALUData.swift",
"Mocks/SimpleMocks.swift",
"PathHelpers.swift",
"PlaylistWriterTests.swift",
"ScreenRecorderTests.swift",
"SegmenterTests.swift",
"VideoDecoderTests.swift",
"VideoEncoderTests.swift"
],
"target_dependencies" : [
"Buffie"
],
"type" : "test"
},
{
"c99name" : "Buffie",
"module_type" : "SwiftTarget",
"name" : "Buffie",
"path" : "Sources/Buffie",
"product_memberships" : [
"Buffie"
],
"sources" : [
"Audio/AACEncoder.swift",
"ByteHelpers.swift",
"Capture/AVReader.swift",
"Capture/Camera/Camera.swift",
"Capture/Camera/CaptureSession.swift",
"Capture/Camera/DeviceHelpers.swift",
"Capture/Displays/Display.swift",
"Capture/Displays/ScreenRecording.swift",
"File Writers/M4VWriter.swift",
"File Writers/MOVWriter.swift",
"File Writers/MP4Writer.swift",
"File Writers/MovieFileContainer.swift",
"File Writers/MovieFileQuality.swift",
"File Writers/MovieFileWriter.swift",
"FormatHelpers.swift",
"Helpers.swift",
"ThreadSafeArray.swift",
"Video/NALU.swift",
"Video/SampleHelpers.swift",
"Video/VideoDecoder.swift",
"Video/VideoEncoder.swift",
"Video/VideoEncoderSettings.swift",
"Video/VideoSampleHelpers.swift"
],
"type" : "library"
}
],
"tools_version" : "4.0"
}
Done.