Unfuck
This commit is contained in:
parent
d76388c28b
commit
174ac51736
@ -16,13 +16,12 @@ import no.iktdev.mediaprocessing.shared.common.event_task_contract.TaskRegistry
|
|||||||
import no.iktdev.mediaprocessing.shared.common.getAppVersion
|
import no.iktdev.mediaprocessing.shared.common.getAppVersion
|
||||||
import no.iktdev.mediaprocessing.shared.database.DatabaseApplication
|
import no.iktdev.mediaprocessing.shared.database.DatabaseApplication
|
||||||
import no.iktdev.mediaprocessing.shared.database.DatabasebasedMediaProcessingApp
|
import no.iktdev.mediaprocessing.shared.database.DatabasebasedMediaProcessingApp
|
||||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan
|
|
||||||
import org.springframework.boot.context.properties.EnableConfigurationProperties
|
import org.springframework.boot.context.properties.EnableConfigurationProperties
|
||||||
import org.springframework.boot.runApplication
|
import org.springframework.boot.runApplication
|
||||||
import org.springframework.context.annotation.Configuration
|
import org.springframework.context.annotation.Configuration
|
||||||
|
|
||||||
@DatabasebasedMediaProcessingApp
|
@DatabasebasedMediaProcessingApp
|
||||||
@ConfigurationPropertiesScan("no.iktdev.mediaprocessing.processer")
|
|
||||||
class ProcesserApplication: DatabaseApplication() {
|
class ProcesserApplication: DatabaseApplication() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,6 +77,7 @@ class ProcesserConfig(
|
|||||||
require(directoryProperties.logs.isNotBlank()) {
|
require(directoryProperties.logs.isNotBlank()) {
|
||||||
"directories.logs must be set"
|
"directories.logs must be set"
|
||||||
}
|
}
|
||||||
|
log.info {"Logs will be stored in ${directoryProperties.logs}"}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -11,11 +11,10 @@ class FileUtil(
|
|||||||
private val dirs: DirectoryProperties,
|
private val dirs: DirectoryProperties,
|
||||||
private val mediaPaths: MediaPaths
|
private val mediaPaths: MediaPaths
|
||||||
) {
|
) {
|
||||||
init {
|
|
||||||
assert(dirs.logs != null)
|
|
||||||
}
|
|
||||||
fun getTemporaryStoreFile(fileName: String): File =
|
fun getTemporaryStoreFile(fileName: String): File =
|
||||||
File(mediaPaths.cache).using(fileName)
|
File(mediaPaths.cache).using(fileName)
|
||||||
|
|
||||||
fun getLogDirectory(): File = File(dirs.logs)
|
fun getLogDirectory(): File {
|
||||||
|
return File(dirs.logs)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -3,7 +3,19 @@ package no.iktdev.mediaprocessing.processer.listeners
|
|||||||
import no.iktdev.eventi.tasks.TaskListener
|
import no.iktdev.eventi.tasks.TaskListener
|
||||||
import no.iktdev.eventi.tasks.TaskType
|
import no.iktdev.eventi.tasks.TaskType
|
||||||
import no.iktdev.mediaprocessing.ffmpeg.FFmpeg
|
import no.iktdev.mediaprocessing.ffmpeg.FFmpeg
|
||||||
|
import no.iktdev.mediaprocessing.ffmpeg.FFmpeg.Listener
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
abstract class FfmpegTaskListener(taskType: TaskType): TaskListener(taskType) {
|
abstract class FfmpegTaskListener(taskType: TaskType): TaskListener(taskType) {
|
||||||
abstract fun getFfmpeg(): FFmpeg
|
open fun getFfmpeg(listener: Listener? = null, execPath: String, logDirectory: File): FFmpeg {
|
||||||
|
return buildFfmpeg(
|
||||||
|
listener = listener,
|
||||||
|
execPath = execPath,
|
||||||
|
logDirectory = logDirectory,
|
||||||
|
).also {
|
||||||
|
it.onCreate()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract fun buildFfmpeg(listener: Listener? = null, execPath: String, logDirectory: File): FFmpeg
|
||||||
}
|
}
|
||||||
@ -9,8 +9,8 @@ import no.iktdev.eventi.tasks.TaskType
|
|||||||
import no.iktdev.exfl.using
|
import no.iktdev.exfl.using
|
||||||
import no.iktdev.mediaprocessing.ffmpeg.FFmpeg
|
import no.iktdev.mediaprocessing.ffmpeg.FFmpeg
|
||||||
import no.iktdev.mediaprocessing.ffmpeg.arguments.MpegArgument
|
import no.iktdev.mediaprocessing.ffmpeg.arguments.MpegArgument
|
||||||
import no.iktdev.mediaprocessing.processer.config.FileUtil
|
|
||||||
import no.iktdev.mediaprocessing.processer.config.ExecutablesConfig
|
import no.iktdev.mediaprocessing.processer.config.ExecutablesConfig
|
||||||
|
import no.iktdev.mediaprocessing.processer.config.FileUtil
|
||||||
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.ProcesserExtractResultEvent
|
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.ProcesserExtractResultEvent
|
||||||
import no.iktdev.mediaprocessing.shared.common.event_task_contract.tasks.ExtractSubtitleTask
|
import no.iktdev.mediaprocessing.shared.common.event_task_contract.tasks.ExtractSubtitleTask
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
@ -60,7 +60,8 @@ class SubtitleTaskListener(
|
|||||||
.outputFile(cachedOutFile.absolutePath)
|
.outputFile(cachedOutFile.absolutePath)
|
||||||
.args(taskData.data.arguments)
|
.args(taskData.data.arguments)
|
||||||
|
|
||||||
val result = getFfmpeg()
|
val logDirectory = fileUtil.getLogDirectory().using("subtitles")
|
||||||
|
val result = getFfmpeg(execPath = executableConfig.ffmpeg, logDirectory = logDirectory)
|
||||||
withHeartbeatRunner {
|
withHeartbeatRunner {
|
||||||
reporter?.updateLastSeen(task.taskId)
|
reporter?.updateLastSeen(task.taskId)
|
||||||
}
|
}
|
||||||
@ -91,12 +92,10 @@ class SubtitleTaskListener(
|
|||||||
return ProcesserExtractResultEvent(null, status, error = message).producedFrom(task)
|
return ProcesserExtractResultEvent(null, status, error = message).producedFrom(task)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getFfmpeg(): FFmpeg {
|
override fun buildFfmpeg(listener: FFmpeg.Listener?, execPath: String, logDirectory: File): FFmpeg {
|
||||||
val logDirectory = fileUtil.getLogDirectory().using("subtitles")
|
return SubtitleFFmpeg(listener, executableConfig.ffmpeg, logDirectory)
|
||||||
return SubtitleFFmpeg(null, executableConfig.ffmpeg, logDirectory)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class SubtitleFFmpeg(override val listener: Listener? = null, private val executablePath: String, val logDirectory: File) :
|
class SubtitleFFmpeg(override val listener: Listener? = null, private val executablePath: String, val logDirectory: File) :
|
||||||
FFmpeg(executable = executablePath, logDir = logDirectory) {
|
FFmpeg(executable = executablePath, logDir = logDirectory) {
|
||||||
|
|
||||||
|
|||||||
@ -11,9 +11,9 @@ import no.iktdev.mediaprocessing.ffmpeg.FFmpeg
|
|||||||
import no.iktdev.mediaprocessing.ffmpeg.arguments.MpegArgument
|
import no.iktdev.mediaprocessing.ffmpeg.arguments.MpegArgument
|
||||||
import no.iktdev.mediaprocessing.ffmpeg.decoder.FfmpegDecodedProgress
|
import no.iktdev.mediaprocessing.ffmpeg.decoder.FfmpegDecodedProgress
|
||||||
import no.iktdev.mediaprocessing.processer.CoordinatorClient
|
import no.iktdev.mediaprocessing.processer.CoordinatorClient
|
||||||
import no.iktdev.mediaprocessing.processer.config.FileUtil
|
|
||||||
import no.iktdev.mediaprocessing.processer.LocalProgressCache
|
import no.iktdev.mediaprocessing.processer.LocalProgressCache
|
||||||
import no.iktdev.mediaprocessing.processer.config.ExecutablesConfig
|
import no.iktdev.mediaprocessing.processer.config.ExecutablesConfig
|
||||||
|
import no.iktdev.mediaprocessing.processer.config.FileUtil
|
||||||
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.ProcesserEncodeResultEvent
|
import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.ProcesserEncodeResultEvent
|
||||||
import no.iktdev.mediaprocessing.shared.common.event_task_contract.tasks.EncodeTask
|
import no.iktdev.mediaprocessing.shared.common.event_task_contract.tasks.EncodeTask
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
@ -63,7 +63,12 @@ class VideoTaskListener(
|
|||||||
.args(taskData.data.arguments)
|
.args(taskData.data.arguments)
|
||||||
.withProgress(true)
|
.withProgress(true)
|
||||||
|
|
||||||
val result = getFfmpeg()
|
val logDirectory = fileUtil.getLogDirectory().using("encode")
|
||||||
|
val result = getFfmpeg(
|
||||||
|
listener = listener,
|
||||||
|
logDirectory = logDirectory,
|
||||||
|
execPath = executableConfig.ffmpeg
|
||||||
|
)
|
||||||
withHeartbeatRunner {
|
withHeartbeatRunner {
|
||||||
reporter?.updateLastSeen(task.taskId)
|
reporter?.updateLastSeen(task.taskId)
|
||||||
}
|
}
|
||||||
@ -97,12 +102,7 @@ class VideoTaskListener(
|
|||||||
return ProcesserEncodeResultEvent(null, null, status, error = message).producedFrom(task)
|
return ProcesserEncodeResultEvent(null, null, status, error = message).producedFrom(task)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val listener = object : FFmpeg.Listener {
|
||||||
override fun getFfmpeg(): FFmpeg {
|
|
||||||
val logDirectory = fileUtil.getLogDirectory().using("encode")
|
|
||||||
return VideoFFmpeg(execPath = executableConfig.ffmpeg,
|
|
||||||
logDirectory = logDirectory,
|
|
||||||
listener = object : FFmpeg.Listener {
|
|
||||||
var lastProgress: FfmpegDecodedProgress? = null
|
var lastProgress: FfmpegDecodedProgress? = null
|
||||||
override fun onStarted(inputFile: String) {
|
override fun onStarted(inputFile: String) {
|
||||||
}
|
}
|
||||||
@ -141,9 +141,13 @@ class VideoTaskListener(
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun buildFfmpeg(listener: FFmpeg.Listener?, execPath: String, logDirectory: File): FFmpeg {
|
||||||
|
return VideoFFmpeg(execPath = executableConfig.ffmpeg,
|
||||||
|
logDirectory = logDirectory,
|
||||||
|
listener = listener)
|
||||||
|
}
|
||||||
|
|
||||||
class VideoFFmpeg(override val listener: Listener? = null, private val execPath: String, val logDirectory: File) :
|
class VideoFFmpeg(override val listener: Listener? = null, private val execPath: String, val logDirectory: File) :
|
||||||
FFmpeg(executable = execPath, logDir = logDirectory) {
|
FFmpeg(executable = execPath, logDir = logDirectory) {
|
||||||
|
|||||||
@ -36,10 +36,6 @@ open class FFmpeg(val executable: String, val logDir: File) {
|
|||||||
|
|
||||||
open fun onCreate() {}
|
open fun onCreate() {}
|
||||||
|
|
||||||
init {
|
|
||||||
onCreate()
|
|
||||||
}
|
|
||||||
|
|
||||||
protected lateinit var inputFile: String
|
protected lateinit var inputFile: String
|
||||||
open suspend fun run(argument: MpegArgument) {
|
open suspend fun run(argument: MpegArgument) {
|
||||||
inputFile = if (argument.inputFile == null) throw RuntimeException("Input file is required") else argument.inputFile!!
|
inputFile = if (argument.inputFile == null) throw RuntimeException("Input file is required") else argument.inputFile!!
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user