Adaptive should be able to avoid resolution bigger than the screen dimension
With adaptive streams, the dimension can go bigger than the dimension of the screen, or worse bigger than the max dimension the hardware decoder is able to deal with.
It's particularily noticable with phones and 8k adaptive streams with intermediate resolutions.
One solution is having the host app configure the module variables depending on the screen dimension itself:
vlc-android!123 (diffs)#42 (closed)dc1e3493328c3665c62084119cd88f0413b830_203_202
However:
-
it leaks module configuration details from libvlccore to the host app
-
it must be duplicated for every host application
Instead, the window provider used by the application should be able to report the maximum size which will be allowed for rendering, probably through the fullscreen-related API, so that adaptive can use the best resolution for the playback.
This would be more flexible and integrated way to achieve it like this, but it raises multiple issues:
-
The window provider currently doesn't report screen information
-
The information has to go from the video output to the access, which is not usual
-
Badly done it could raise race issues between the screen size report and the adaptive access resolution ugrade
-
It must not break transcode pipeline, which will have different requirements