Bob
03/31/2022, 5:01 AM*let* command = shared.FFmpegCommand.Builder()
<- ‘init()’ is unavailable
Kotlin
class FFmpegCommand private constructor(
private val inputs: String?,
private val concat: String?,
val command: StringBuilder = StringBuilder("-y")
.append(inputs)
.append(concat)
) {
data class Builder(
var inputs: List<String> = emptyList(),
var concat: String? = "",
) {
fun inputs(inputs: List<String>) = apply { this.inputs = inputs }
fun concat(output: String) = apply { this.concat = buildConcatFilter(this.inputs.size, output)}
fun build() = FFmpegCommand(
inputs.joinToString("") { " -i $it" },
concat,
).command.toString()
private fun buildConcatFilter(size: Int, output: String): String {
val filterBuilder = StringBuilder(" -filter_complex \"")
for (i in 0..size) filterBuilder.append("[$i]")
filterBuilder.append("concat=n=$size:v=1:a=1[v1][a1]\"")
filterBuilder.append(" -map '[v0]'")
filterBuilder.append(" $output")
return filterBuilder.toString()
}
}
}
I need to the defaulting for the builder. I’m not sure how to get around this one