enforce avc and acc codecs when selecting compatible mode

pull/1112/head v1.8.7.3-beta
deniscerri 5 months ago
parent 9e8f8d0047
commit dda659624d
No known key found for this signature in database
GPG Key ID: 95C43D517D830350

@ -4,9 +4,11 @@ import android.annotation.SuppressLint
import android.os.Bundle
import androidx.navigation.fragment.findNavController
import androidx.preference.EditTextPreference
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceManager
import androidx.preference.SwitchPreferenceCompat
import com.afollestad.materialdialogs.utils.MDUtil.getStringArray
import com.deniscerri.ytdl.R
import com.deniscerri.ytdl.util.UiUtil
@ -100,9 +102,15 @@ class ProcessingSettingsFragment : BaseSettingsFragment() {
}
}
val audioCodecPref = findPreference<ListPreference>("audio_codec")
val videoCodecPref = findPreference<ListPreference>("video_codec")
val recodeVideoPreference = findPreference<SwitchPreferenceCompat>("recode_video")!!
val compatibleVideoPreference = findPreference<SwitchPreferenceCompat>("compatible_video")!!
audioCodecPref?.isEnabled = !compatibleVideoPreference.isChecked
videoCodecPref?.isEnabled = !compatibleVideoPreference.isChecked
recodeVideoPreference.setOnPreferenceClickListener {
if (compatibleVideoPreference.isChecked && recodeVideoPreference.isChecked) {
compatibleVideoPreference.performClick()
@ -111,8 +119,25 @@ class ProcessingSettingsFragment : BaseSettingsFragment() {
}
compatibleVideoPreference.setOnPreferenceClickListener {
if (compatibleVideoPreference.isChecked && recodeVideoPreference.isChecked) {
recodeVideoPreference.performClick()
audioCodecPref?.isEnabled = !compatibleVideoPreference.isChecked
videoCodecPref?.isEnabled = !compatibleVideoPreference.isChecked
if (compatibleVideoPreference.isChecked) {
if (recodeVideoPreference.isChecked) {
recodeVideoPreference.performClick()
}
val audioCodecs = requireContext().getStringArray(R.array.audio_codec)
val audioCodecValues = requireContext().getStringArray(R.array.audio_codec_values)
val videoCodecs = requireContext().getStringArray(R.array.video_codec)
val videoCodecValues = requireContext().getStringArray(R.array.video_codec_values)
val newAudioCodec = "M4A"
val newVideoCodec = "AVC (H264)"
editor.putString("audio_codec", audioCodecValues[audioCodecs.indexOf(newAudioCodec)]).apply()
editor.putString("video_codec", videoCodecValues[videoCodecs.indexOf(newVideoCodec)]).apply()
requireActivity().recreate()
}
true
}

@ -1280,12 +1280,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co
val preferredCodec = sharedPreferences.getString("video_codec", "")
val vCodecPrefIndex = context.getStringArray(R.array.video_codec_values).indexOf(preferredCodec)
var vCodecPref = context.getStringArray(R.array.video_codec_values_ytdlp)[vCodecPrefIndex]
if (downloadItem.videoPreferences.compatibilityMode) {
vCodecPref = "h264"
aCodecPref = "aac"
}
val vCodecPref = context.getStringArray(R.array.video_codec_values_ytdlp)[vCodecPrefIndex]
val defaultFormats = context.resources.getStringArray(R.array.video_formats_values)
val usingGenericFormat = defaultFormats.contains(videoF) || downloadItem.allFormats.isEmpty() || downloadItem.allFormats == formatUtil.getGenericVideoFormats(context.resources)

Loading…
Cancel
Save