@@ -51,13 +51,11 @@ public class UpscalingExportSession {
51
51
throw Error . outputURLAlreadyExists
52
52
}
53
53
54
- let outputFileType : AVFileType = {
55
- switch outputURL. pathExtension. lowercased ( ) {
56
- case " mov " : return . mov
57
- case " m4v " : return . m4v
58
- default : return . mp4
59
- }
60
- } ( )
54
+ let outputFileType : AVFileType = switch outputURL. pathExtension. lowercased ( ) {
55
+ case " mov " : . mov
56
+ case " m4v " : . m4v
57
+ default : . mp4
58
+ }
61
59
62
60
let assetWriter = try AVAssetWriter ( outputURL: outputURL, fileType: outputFileType)
63
61
assetWriter. metadata = try await asset. load ( . metadata)
@@ -383,7 +381,10 @@ public class UpscalingExportSession {
383
381
while assetWriterInput. isReadyForMoreMediaData {
384
382
if let nextSampleBuffer = assetReaderOutput. copyNextSampleBuffer ( ) {
385
383
if nextSampleBuffer. presentationTimeStamp. isNumeric {
386
- progress. completedUnitCount = Int64 ( nextSampleBuffer. presentationTimeStamp. seconds)
384
+ let timestamp = Int64 ( nextSampleBuffer. presentationTimeStamp. seconds)
385
+ DispatchQueue . main. async {
386
+ progress. completedUnitCount = timestamp
387
+ }
387
388
}
388
389
if let imageBuffer = nextSampleBuffer. imageBuffer {
389
390
let upscaledImageBuffer = upscaler. upscale (
@@ -433,7 +434,10 @@ public class UpscalingExportSession {
433
434
while assetWriterInput. isReadyForMoreMediaData {
434
435
if let nextSampleBuffer = assetReaderOutput. copyNextSampleBuffer ( ) {
435
436
if nextSampleBuffer. presentationTimeStamp. isNumeric {
436
- progress. completedUnitCount = Int64 ( nextSampleBuffer. presentationTimeStamp. seconds)
437
+ let timestamp = Int64 ( nextSampleBuffer. presentationTimeStamp. seconds)
438
+ DispatchQueue . main. async {
439
+ progress. completedUnitCount = timestamp
440
+ }
437
441
}
438
442
if let taggedBuffers = nextSampleBuffer. taggedBuffers {
439
443
let leftEyeBuffer = taggedBuffers. first ( where: {
0 commit comments