Problem description
Currently, users have to manually switch between LibMPV and ExoPlayer to play HDR
-LibMPV does a great job with complex files but tone-maps HDR to SDR since it doesn't support HDR on Android.
-ExoPlayer plays native HDR perfectly on compatible devices, but it often fails entirely (black screen/no video) with heavy HDR files like high-bitrate files.
Proposed solution
I would like to request an automated "Smart Player Selection" logic inside AFinity that handles HDR playback dynamically based on success/compatibility.
The fallback logic should work as follows:
- Detect HDR content: When a video contains HDR metadata.
- First Choice (ExoPlayer): Try to open the file with the internal ExoPlayer to achieve native HDR playback.
- Fallback Condition: If ExoPlayer cannot render the video stream (fails or results in a black screen), immediately fallback to LibMPV.
- Fallback Condition (Non-HDR devices): If the device does not support native HDR, or if ExoPlayer fails, use LibMPV with its built-in HDR-to-SDR tone mapping.
Alternatives considered
The current alternative is manually changing the default player backend in the app settings every time.
Feature area
Player/Playback
Priority
High - Significantly impacts my usage
Mockups or examples
No response
Use case
No response
Additional context
No response
Device
No response
Android version
No response
Afinity version
No response
Checklist
Problem description
Currently, users have to manually switch between LibMPV and ExoPlayer to play HDR
-LibMPV does a great job with complex files but tone-maps HDR to SDR since it doesn't support HDR on Android.
-ExoPlayer plays native HDR perfectly on compatible devices, but it often fails entirely (black screen/no video) with heavy HDR files like high-bitrate files.
Proposed solution
I would like to request an automated "Smart Player Selection" logic inside AFinity that handles HDR playback dynamically based on success/compatibility.
The fallback logic should work as follows:
Alternatives considered
The current alternative is manually changing the default player backend in the app settings every time.
Feature area
Player/Playback
Priority
High - Significantly impacts my usage
Mockups or examples
No response
Use case
No response
Additional context
No response
Device
No response
Android version
No response
Afinity version
No response
Checklist