fix: enable decoder fallback when software decoders are available

ExoPlayer was not falling back to software decoders when hardware
decoders reported NO_EXCEEDS_CAPABILITIES (e.g., HEVC 10-bit on
devices like Lenovo Tab M11).

This enables setEnableDecoderFallback for all modes except
EXTENSION_RENDERER_MODE_OFF (device only), respecting users who
explicitly disabled software decoders.
This commit is contained in:
VenusIsJaded 2026-05-15 00:59:11 -05:00
parent 37203d1fc1
commit bc0220f15c

View file

@ -102,6 +102,7 @@ actual fun PlatformPlayerSurface(
val exoPlayer = remember(sourceUrl, sourceAudioUrl, sanitizedSourceHeaders, sanitizedSourceResponseHeaders) { val exoPlayer = remember(sourceUrl, sourceAudioUrl, sanitizedSourceHeaders, sanitizedSourceResponseHeaders) {
val renderersFactory = DefaultRenderersFactory(context) val renderersFactory = DefaultRenderersFactory(context)
.setExtensionRendererMode(playerSettings.decoderPriority) .setExtensionRendererMode(playerSettings.decoderPriority)
.setEnableDecoderFallback(playerSettings.decoderPriority != DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF)
.setMapDV7ToHevc(playerSettings.mapDV7ToHevc) .setMapDV7ToHevc(playerSettings.mapDV7ToHevc)
val trackSelector = DefaultTrackSelector(context).apply { val trackSelector = DefaultTrackSelector(context).apply {