Skip to content

Commit e4e1b7c

Browse files
authored
Merge pull request #55 from amir-cg/master
Fix XCode 14 circular reference issue
2 parents 2f618d3 + abbbe9c commit e4e1b7c

File tree

9 files changed

+32
-37
lines changed

9 files changed

+32
-37
lines changed

SCNRecorder.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'SCNRecorder'
3-
s.version = '2.8.0'
3+
s.version = '2.8.1'
44
s.summary = 'A lags-free recorder of ARKit and SceneKit for iOS in Swift'
55
s.homepage = 'https://github.com/gorastudio/SCNRecorder'
66
s.license = { :type => 'MIT', :file => 'LICENSE.md' }

Sources/MediaSession/MediaSession.swift

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,14 @@ import UIKit
2929

3030
final class MediaSession {
3131

32-
typealias Input = MediaSessionInput
3332

34-
typealias Output = MediaSessionOutput
33+
enum VideoInput: VideoMediaSessionInput {
3534

36-
enum VideoInput: Input.Video {
35+
case pixel(_ input: MediaSessionInput_PixelBufferVideo)
3736

38-
case pixel(_ input: Input.PixelBufferVideo)
37+
case sample(_ input: MediaSessionInput_SampleBufferVideo)
3938

40-
case sample(_ input: Input.SampleBufferVideo)
41-
42-
var videoInput: Input.Video {
39+
var videoInput: VideoMediaSessionInput {
4340
switch self {
4441
case .pixel(let input): return input
4542
case .sample(let input): return input
@@ -61,15 +58,15 @@ final class MediaSession {
6158

6259
let queue: DispatchQueue
6360

64-
@UnfairAtomic var videoOutputs = [Output.Video]()
61+
@UnfairAtomic var videoOutputs = [VideoMediaSessionOutput]()
6562

66-
@UnfairAtomic var audioOutputs = [Output.Audio]()
63+
@UnfairAtomic var audioOutputs = [AudioMediaSessionOutput]()
6764

6865
@Observable var error: Swift.Error?
6966

7067
let videoInput: VideoInput
7168

72-
private(set) var audioInput: Input.SampleBufferAudio?
69+
private(set) var audioInput: MediaSessionInput_SampleBufferAudio?
7370

7471
init(
7572
queue: DispatchQueue,
@@ -81,7 +78,7 @@ final class MediaSession {
8178

8279
convenience init(
8380
queue: DispatchQueue,
84-
videoInput: Input.PixelBufferVideo
81+
videoInput: MediaSessionInput_PixelBufferVideo
8582
) {
8683
self.init(queue: queue, videoInput: .pixel(videoInput))
8784

@@ -93,7 +90,7 @@ final class MediaSession {
9390

9491
convenience init(
9592
queue: DispatchQueue,
96-
videoInput: Input.SampleBufferVideo
93+
videoInput: MediaSessionInput_SampleBufferVideo
9794
) {
9895
self.init(queue: queue, videoInput: .sample(videoInput))
9996

@@ -103,7 +100,7 @@ final class MediaSession {
103100
}
104101
}
105102

106-
func setAudioInput(_ audioInput: Input.SampleBufferAudio) {
103+
func setAudioInput(_ audioInput: MediaSessionInput_SampleBufferAudio) {
107104
self.audioInput = audioInput
108105
audioInput.output = { [weak self] (sampleBuffer) in
109106
guard let self = self else { return }
@@ -206,28 +203,28 @@ extension MediaSession {
206203

207204
extension MediaSession {
208205

209-
func addVideoOutput(_ videoOutput: MediaSession.Output.Video) {
206+
func addVideoOutput(_ videoOutput: VideoMediaSessionOutput) {
210207
if ($videoOutputs.modify {
211208
$0.append(videoOutput)
212209
return $0.count == 1
213210
}) { videoInput.start() }
214211
}
215212

216-
func removeVideoOutput(_ videoOutput: MediaSession.Output.Video) {
213+
func removeVideoOutput(_ videoOutput: VideoMediaSessionOutput) {
217214
if ($videoOutputs.modify {
218215
$0 = $0.filter { $0 !== videoOutput }
219216
return $0.count == 0
220217
}) { videoInput.stop() }
221218
}
222219

223-
func addAudioOutput(_ audioOutput: MediaSession.Output.Audio) {
220+
func addAudioOutput(_ audioOutput: AudioMediaSessionOutput) {
224221
if ($audioOutputs.modify {
225222
$0.append(audioOutput)
226223
return $0.count == 1
227224
}) { audioInput?.start() }
228225
}
229226

230-
func removeAudioOutput(_ audioOutput: MediaSession.Output.Audio) {
227+
func removeAudioOutput(_ audioOutput: AudioMediaSessionOutput) {
231228
if ($audioOutputs.modify {
232229
$0 = $0.filter { $0 !== audioOutput }
233230
return $0.count == 0

Sources/MediaSession/MediaSessionInput.swift

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,29 @@ import Foundation
2727
import AVFoundation
2828
import UIKit
2929

30-
protocol MediaSessionInput {
31-
32-
typealias Audio = AudioMediaSessionInput
3330

34-
typealias Video = VideoMediaSessionInput
31+
internal typealias MediaSessionInput_SampleBufferAudio = AudioMediaSessionInput & SampleBufferInput
32+
internal typealias MediaSessionInput_SampleBufferVideo = VideoMediaSessionInput & SampleBufferInput
33+
internal typealias MediaSessionInput_PixelBufferVideo = VideoMediaSessionInput & BufferInput
3534

36-
typealias SampleBufferAudio = AudioMediaSessionInput & SampleBufferInput
3735

38-
typealias SampleBufferVideo = VideoMediaSessionInput & SampleBufferInput
39-
40-
typealias PixelBufferVideo = VideoMediaSessionInput & BufferInput
36+
internal
37+
protocol MediaSessionInput {
4138

4239
func start()
4340

4441
func stop()
4542
}
4643

44+
internal
4745
protocol AudioMediaSessionInput: MediaSessionInput {
4846

4947
func recommendedAudioSettingsForAssetWriter(
5048
writingTo outputFileType: AVFileType
5149
) -> [String: Any]
5250
}
5351

52+
internal
5453
protocol VideoMediaSessionInput: MediaSessionInput {
5554

5655
var size: CGSize { get }
@@ -62,11 +61,13 @@ protocol VideoMediaSessionInput: MediaSessionInput {
6261
var imageOrientation: UIImage.Orientation { get }
6362
}
6463

64+
internal
6565
protocol SampleBufferInput: AnyObject {
6666

6767
var output: ((CMSampleBuffer) -> Void)? { get set }
6868
}
6969

70+
internal
7071
protocol BufferInput: AnyObject {
7172

7273
var output: ((CVBuffer, CMTime) -> Void)? { get set }

Sources/MediaSession/MediaSessionOutput.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ import AVFoundation
2828

2929
protocol MediaSessionOutput: AnyObject {
3030

31-
typealias Audio = AudioMediaSessionOutput
32-
33-
typealias Video = VideoMediaSessionOutput
3431
}
3532

3633
protocol AudioMediaSessionOutput: MediaSessionOutput {

Sources/Outputs/PixelBufferOutput.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ import Foundation
2727
import AVFoundation
2828

2929
final public class PixelBufferOutput {
30-
31-
final class Weak: MediaSession.Output.Video {
30+
31+
final class Weak: VideoMediaSessionOutput {
3232

3333
weak var output: PixelBufferOutput?
3434

@@ -65,7 +65,7 @@ final public class PixelBufferOutput {
6565
}
6666
}
6767

68-
extension PixelBufferOutput: MediaSession.Output.Video {
68+
extension PixelBufferOutput: VideoMediaSessionOutput {
6969

7070
func appendVideoSampleBuffer(_ sampleBuffer: CMSampleBuffer) {
7171
guard let imageBuffer: CVImageBuffer = {

Sources/Outputs/VideoOutput/VideoOutput.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ private extension VideoOutput {
227227
}
228228

229229
// - MARK: VideoOutput
230-
extension VideoOutput: MediaSession.Output.Video {
230+
extension VideoOutput: VideoMediaSessionOutput {
231231

232232
func appendVideoSampleBuffer(_ sampleBuffer: CMSampleBuffer) {
233233
state = state.appendVideoSampleBuffer(sampleBuffer, to: self)
@@ -239,7 +239,7 @@ extension VideoOutput: MediaSession.Output.Video {
239239
}
240240

241241
// - MARK: AudioOutput
242-
extension VideoOutput: MediaSession.Output.Audio {
242+
extension VideoOutput: AudioMediaSessionOutput {
243243

244244
func appendAudioSampleBuffer(_ sampleBuffer: CMSampleBuffer) {
245245
state = state.appendAudioSampleBuffer(sampleBuffer, to: self)

Sources/Recorder/BaseRecorder/BaseRecorder.AudioInput.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import ARKit
2929

3030
extension BaseRecorder {
3131

32-
final class AudioInput: NSObject, MediaSession.Input.SampleBufferAudio {
32+
final class AudioInput: NSObject, MediaSessionInput_SampleBufferAudio {
3333

3434
let queue: DispatchQueue
3535

Sources/Recorder/CleanRecorder/CleanRecorder.VideoInput.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import SceneKit
2929

3030
extension CleanRecorder {
3131

32-
final class VideoInput<T: CleanRecordable>: MediaSession.Input.PixelBufferVideo, TimeScalable {
32+
final class VideoInput<T: CleanRecordable>: MediaSessionInput_PixelBufferVideo, TimeScalable {
3333

3434
weak var cleanRecordable: T?
3535

Sources/Recorder/SceneRecorder/SceneRecorder.VideoInput.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import SceneKit
2929

3030
extension SceneRecorder {
3131

32-
final class VideoInput: MediaSession.Input.PixelBufferVideo, TimeScalable {
32+
final class VideoInput: MediaSessionInput_PixelBufferVideo, TimeScalable {
3333

3434
enum Error: Swift.Error {
3535

0 commit comments

Comments
 (0)