Corrections

This commit is contained in:
bskjon 2024-04-21 03:43:56 +02:00
parent c5f785f2ba
commit 9dd1825064

View File

@ -187,22 +187,38 @@ class EncodeArgumentCreatorTask(@Autowired override var coordinator: Coordinator
val preference: AudioPreference val preference: AudioPreference
) { ) {
fun isAudioCodecEqual() = audioStream.codec_name.lowercase() == preference.codec.lowercase() fun isAudioCodecEqual() = audioStream.codec_name.lowercase() == preference.codec.lowercase()
fun isSurroundButNotEAC3(): Boolean {
return audioStream.channels > 2 && audioStream.codec_name.lowercase() != "eac3"
}
fun isSurroundAndEAC3(): Boolean {
return audioStream.channels > 2 && audioStream.codec_name.lowercase() == "eac3"
}
fun isSurround(): Boolean {
return audioStream.channels > 2
}
private fun shouldUseEAC3(): Boolean { private fun shouldUseEAC3(): Boolean {
return (preference.defaultToEAC3OnSurroundDetected && audioStream.channels > 2 && audioStream.codec_name.lowercase() == "eac3") return (preference.defaultToEAC3OnSurroundDetected && audioStream.channels > 2 && audioStream.codec_name.lowercase() != "eac3")
} }
fun getAudioArguments(): AudioArgumentsDto { fun getAudioArguments(): AudioArgumentsDto {
val optionalParams = mutableListOf<String>() val optionalParams = mutableListOf<String>()
val codecParams = if (shouldUseEAC3())
val codecParams = if (isAudioCodecEqual() || isSurroundAndEAC3()) {
listOf("-acodec", "copy")
} else if (!isSurroundButNotEAC3() && shouldUseEAC3()) {
listOf("-c:a", "eac3") listOf("-c:a", "eac3")
else if (!isAudioCodecEqual()) { } else {
val codecSwap = mutableListOf("-c:a", preference.codec) val codecSwap = mutableListOf("-c:a", preference.codec)
if (audioStream.channels > 2 && !preference.preserveChannels) { if (audioStream.channels > 2 && !preference.preserveChannels) {
codecSwap.addAll(listOf("-ac", "2")) codecSwap.addAll(listOf("-ac", "2"))
} }
codecSwap codecSwap
} else }
listOf("-acodec", "copy")
return AudioArgumentsDto( return AudioArgumentsDto(
index = allStreams.audioStream.indexOf(audioStream), index = allStreams.audioStream.indexOf(audioStream),
codecParameters = codecParams, codecParameters = codecParams,