redoXiD 4 Posted 1 hour ago Posted 1 hour ago (edited) Server: Emby Server 4.11.1.0 beta (Docker (LSIO), Unraid) Client: Emby for Android 3.5.55 Device: TCL 65Q8C, Google TV/Android 14 Display: - Panel/output: 3840x2160 - UI framebuffer: 1920x1080 (vendor size override, not changeable without root) - Density: 320 -> devicePixelRatio 2.0, so the web client lays out at 960x540 CSS px Problem: The Emby client requests images at a smaller pixel size than the size it actually draws them at. Every image is therefore upscaled once by the WebView, before the compositor upscales the whole 1080p UI to 4K. The result is visibly softer/unsharper artwork with less details than other clients on the same device like Plex or Plezy with similar artwork sizes. Measurements: Rendered sizes were measured from screenshots via `adb exec-out screencap`, which returns a 1920x1080 image, so these are framebuffer pixels and directly comparable to the requested sizes. Movie poster (Primary): requested maxWidth=216 & maxHeight=324, rendered ~256x383 -> ~18.5% upscale Horizontal thumb: requested maxWidth=366 & maxHeight=206, rendered ~406x228 -> ~11% upscale Server log excerpt (full log attached): GET /emby/Items/690908/Images/Primary?maxHeight=324&maxWidth=216&tag=...&quality=90 UserAgent: Mozilla/5.0 (Linux; Android 14; Smart TV Pro Build/UTT2.250416.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/151.0.7922.202 Mobile Safari/537.36 embyserver (5).txt What I would expect: The requested size should be at least the element's rendered size in CSS px multiplied by devicePixelRatio, i.e. >= 256x383 for the poster and >= 406x228 for the thumb on this device. Some further observations: The shortfall differs per card type (~18.5% vs ~11%), so it doesn't look like a single devicePixelRatio miscalculation All image types seem to be affected including actor images and possibly also logos The same server and library on my phone and tablet (higher DPR) requests appropriately larger images and looks correct, so this is TV-layout specific rather than a server, source-artwork or cache issue. Source posters are 1000x1500 or larger. Plex and Plezy on the same TV render noticeably sharper artwork, which is consistent with them requesting at the rendered size. UI still renders at 1080p but the images have a lot more detail. The only way of requesting higher resolution images natively seems to be setting Settings>General>Image size to something like "Larger", though unfortunately this also changes the grid size. For testing purposes I set up a Caddy reverse proxy which modifies the incoming image requests and sets maxHeight/maxWidth=800 and configured the Emby app to use it. The result is much sharper images which show a lot more detail than the default resolution images. This is especially noticeable on thumbs/posters with small text (like the "Cyberpunk Edgerunners" title or "Shrinking" actor names). Default: Modified: Default: Modified: A fix would be very much appreciated! Related reports (possibly the same root cause): Edited 1 hour ago by redoXiD
Luke 43131 Posted 40 minutes ago Posted 40 minutes ago Hi, that's interesting. I wonder if the pixel ratio reported by the webview is incorrect.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now