This commit is contained in:
Brage Skjønborg 2026-02-02 01:29:08 +01:00
parent 14633fe72c
commit 2979924068
3 changed files with 18 additions and 7 deletions

View File

@ -18,4 +18,10 @@ abstract class FfmpegTaskListener(taskType: TaskType): TaskListener(taskType) {
}
abstract fun buildFfmpeg(listener: Listener? = null, execPath: String, logDirectory: File): FFmpeg
class FfmpegFailedException(
val logFile: File? = null,
message: String
) : RuntimeException(message)
}

View File

@ -67,7 +67,10 @@ class SubtitleTaskListener(
}
result.run(arguments)
if (result.result.resultCode != 0) {
return ProcesserExtractResultEvent(status = TaskStatus.Failed).producedFrom(task)
throw FfmpegFailedException(
logFile = result.logFile,
"FFmpeg worker returned non zero result code, was ${result.result.resultCode}"
)
}
return ProcesserExtractResultEvent(
@ -89,7 +92,8 @@ class SubtitleTaskListener(
TaskStatus.Cancelled -> "Canceled"
else -> ""
}
return ProcesserExtractResultEvent(null, status, error = message).producedFrom(task)
val logFile = if (exception is FfmpegFailedException) exception.logFile?.absolutePath else null
return ProcesserExtractResultEvent(null, status, error = message, logFile = logFile).producedFrom(task)
}
override fun buildFfmpeg(listener: FFmpeg.Listener?, execPath: String, logDirectory: File): FFmpeg {

View File

@ -74,10 +74,10 @@ class VideoTaskListener(
}
result.run(arguments)
if (result.result.resultCode != 0) {
return ProcesserEncodeResultEvent(
status = TaskStatus.Failed,
logFile = result.logFile.absolutePath
).producedFrom(task)
throw FfmpegFailedException(
logFile = result.logFile,
"FFmpeg worker returned non zero result code, was ${result.result.resultCode}"
)
}
return ProcesserEncodeResultEvent(
@ -99,7 +99,8 @@ class VideoTaskListener(
TaskStatus.Cancelled -> "Canceled"
else -> ""
}
return ProcesserEncodeResultEvent(null, null, status, error = message).producedFrom(task)
val logFile = if (exception is FfmpegFailedException) exception.logFile?.absolutePath else null
return ProcesserEncodeResultEvent(null, logFile, status, error = message).producedFrom(task)
}
val listener = object : FFmpeg.Listener {