Integrate with libass-android to support SSA/ASS subtitles in ExoPlayer (#1052)
## Description Add better ASS/SSA support to ExoPlayer by using [`libass-android`](https://github.com/peerless2012/libass-android). This is enabled with the "Use libass for ASS subtitles" advanced settings for ExoPlayer. It is enabled by default. ### Related issues Related to #22 Replaces reverted #569 Fixes #1107
This commit is contained in:
parent
95859be3c6
commit
b18416c954
13 changed files with 626 additions and 521 deletions
|
|
@ -431,16 +431,18 @@ sealed interface AppPreference<Pref, T> {
|
|||
summaryOn = R.string.enabled,
|
||||
summaryOff = R.string.disabled,
|
||||
)
|
||||
val DirectPlayAss =
|
||||
AppSwitchPreference<AppPreferences>(
|
||||
title = R.string.direct_play_ass,
|
||||
defaultValue = true,
|
||||
getter = { it.playbackPreferences.overrides.directPlayAss },
|
||||
val AssSubtitleMode =
|
||||
AppChoicePreference<AppPreferences, AssPlaybackMode>(
|
||||
title = R.string.ass_subtitle_playback,
|
||||
defaultValue = AssPlaybackMode.ASS_LIBASS,
|
||||
getter = { it.playbackPreferences.overrides.assPlaybackMode },
|
||||
setter = { prefs, value ->
|
||||
prefs.updatePlaybackOverrides { directPlayAss = value }
|
||||
prefs.updatePlaybackOverrides { assPlaybackMode = value }
|
||||
},
|
||||
summaryOn = R.string.enabled,
|
||||
summaryOff = R.string.disabled,
|
||||
displayValues = R.array.ass_subtitle_modes,
|
||||
subtitles = R.array.ass_subtitle_modes_summary,
|
||||
indexToValue = { AssPlaybackMode.forNumber(it) },
|
||||
valueToIndex = { if (it != AssPlaybackMode.UNRECOGNIZED) it.number else AssPlaybackMode.ASS_LIBASS.number },
|
||||
)
|
||||
val DirectPlayPgs =
|
||||
AppSwitchPreference<AppPreferences>(
|
||||
|
|
@ -1100,7 +1102,7 @@ private val ExoPlayerSettings =
|
|||
AppPreference.FfmpegPreference,
|
||||
AppPreference.DownMixStereo,
|
||||
AppPreference.Ac3Supported,
|
||||
AppPreference.DirectPlayAss,
|
||||
AppPreference.AssSubtitleMode,
|
||||
AppPreference.DirectPlayPgs,
|
||||
AppPreference.DirectPlayDoviProfile7,
|
||||
AppPreference.DecodeAv1,
|
||||
|
|
|
|||
|
|
@ -61,10 +61,11 @@ class AppPreferencesSerializer
|
|||
.apply {
|
||||
ac3Supported = AppPreference.Ac3Supported.defaultValue
|
||||
downmixStereo = AppPreference.DownMixStereo.defaultValue
|
||||
directPlayAss = AppPreference.DirectPlayAss.defaultValue
|
||||
// directPlayAss = AppPreference.DirectPlayAss.defaultValue
|
||||
directPlayPgs = AppPreference.DirectPlayPgs.defaultValue
|
||||
mediaExtensionsEnabled =
|
||||
AppPreference.FfmpegPreference.defaultValue
|
||||
assPlaybackMode = AppPreference.AssSubtitleMode.defaultValue
|
||||
}.build()
|
||||
|
||||
mpvOptions =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue