Various fixes

This commit is contained in:
Ilya Laktyushin 2023-06-30 00:18:42 +02:00
parent 7dab239431
commit 8c2a06a3c8
3 changed files with 17 additions and 2 deletions

View File

@ -38,6 +38,8 @@ protocol MediaEditorVideoExportWriter {
func markAudioAsFinished() func markAudioAsFinished()
var status: ExportWriterStatus { get } var status: ExportWriterStatus { get }
var error: Error? { get }
} }
public final class MediaEditorVideoAVAssetWriter: MediaEditorVideoExportWriter { public final class MediaEditorVideoAVAssetWriter: MediaEditorVideoExportWriter {
@ -178,6 +180,10 @@ public final class MediaEditorVideoAVAssetWriter: MediaEditorVideoExportWriter {
return .unknown return .unknown
} }
} }
var error: Error? {
return self.writer?.error
}
} }
public final class MediaEditorVideoExport { public final class MediaEditorVideoExport {
@ -497,10 +503,16 @@ public final class MediaEditorVideoExport {
} }
if writer.status == .failed { if writer.status == .failed {
if let error = writer.error {
Logger.shared.log("VideoExport", "Failed with writer error \(error.localizedDescription)")
}
try? FileManager().removeItem(at: outputUrl) try? FileManager().removeItem(at: outputUrl)
self.internalStatus = .finished self.internalStatus = .finished
self.statusValue = .failed(.writing(nil)) self.statusValue = .failed(.writing(nil))
} else if let reader = self.reader, reader.status == .failed { } else if let reader = self.reader, reader.status == .failed {
if let error = reader.error {
Logger.shared.log("VideoExport", "Failed with reader error \(error.localizedDescription)")
}
try? FileManager().removeItem(at: outputUrl) try? FileManager().removeItem(at: outputUrl)
writer.cancelWriting() writer.cancelWriting()
self.internalStatus = .finished self.internalStatus = .finished
@ -509,6 +521,9 @@ public final class MediaEditorVideoExport {
writer.finishWriting { writer.finishWriting {
self.queue.async { self.queue.async {
if writer.status == .failed { if writer.status == .failed {
if let error = writer.error {
Logger.shared.log("VideoExport", "Failed after finishWriting with writer error \(error.localizedDescription)")
}
try? FileManager().removeItem(at: outputUrl) try? FileManager().removeItem(at: outputUrl)
self.internalStatus = .finished self.internalStatus = .finished
self.statusValue = .failed(.writing(nil)) self.statusValue = .failed(.writing(nil))

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long