[Android] Is it possible to enable fallback software decoding?

Product

Player

Question

The ExoPlayer seems to have a function called setEnableDecoderFallback(boolean) in it’s DefaultRenderersFactory:

Sets whether to enable fallback to lower-priority decoders if decoder initialization fails. This may result in using a decoder that is less efficient or slower than the primary decoder.

This seems in most cases to be a nicer option than crashing when a decoder fails. It would of course be best combined with still logging a decoder error somewhere, so we know we can still improve on the decoders, but nothing the users should be directly bothered with…

Would it be possible to set this boolean in the Bitmovin Player initialisation (probably through the TweaksConfig)?

Hi @kaspar.de.geus,

We already have two options for using the software decoder:

  1. TweaksConfig.preferSoftwareDecoding for using the software decoder for the main content
  2. TweaksConfig.preferSoftwareDecodingForAds to use the Software decoding for client-side ads

However, I’ve filed an internal feature request for the automatic fallback as well.

Hi @daniel,

Thanks for filling the internal feature request, because we do prefer hardware decoding, but we don’t want to exclude software decoding where needed…

Hi @kaspar.de.geus,
I’m happy to let you know that starting with Android Player SDK 3.79.0, the player supports automatic fallback to software decoding if needed.

Thanks @daniel. Nice to know this is now the default. Do we also get logs or analytics events about when this feature is actually used, so we can see where the issue comes from and try to improve that in the future, or is this a silent fallback?

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.

You can listen to the PlayerWarning event for the new code DecoderInitializationFallback to be notified if the auto-fallback is used. Analytics is currently not storing Warning events.

1 Like