theothernt / AerialViews

A screensaver for Android TV devices including Nvidia Shield, Fire TV, and Chromecast with Google TV. Inspired by Apple TV's video screensaver.
GNU General Public License v3.0
469 stars 35 forks source link

Capabilities. Max video resolution on Sony Bravia A80j #40

Closed tsoodla closed 2 years ago

tsoodla commented 2 years ago

First of all - the video playback is smooth and beautiful with settings to 4k/hdr. However, the max video resolution on the capabilities screen is showing only 1920x1080 @ 60,00 Hz.

Is it running at 4k at all?

IMG_7416

theothernt commented 2 years ago

Hmmm... from looking at this, I'm not sure. It is possible the app is wrong due to Android being a bit different of some TVs/device. If you could check a couple of things for me...

  1. When you use apps, does the TV report the resolution and frame rate (some TVs do, some don't)
  2. Can you try a 1080p HDR and 4K HDR video and see if there is a difference in sharpness - there should be! You can also turn off random video order in Settings > Interface > Shuffle videos to see the same video on startup.
Plazzmex commented 2 years ago

Same for me on Philips 4k TV, it shows max resolution 1080 at 60hz. I use 4k sdr because HDR doesn't work on Philips tv as you know.

P.s. now I'm wondering if it even plays them at 4k... ๐Ÿ˜ฌ

tsoodla commented 2 years ago
  1. When you use apps, does the TV report the resolution and frame rate (some TVs do, some don't)

There is no way to see the resolution and frame rate on Sony while using apps.

  1. Can you try a 1080p HDR and 4K HDR video and see if there is a difference in sharpness - there should be!

I can not see the difference. The picture is sharp in both cases.

theothernt commented 2 years ago

I did some more research, it appears that some Sony 4K TVs (depending on the generation, model, etc) only play video in apps at 1080p.

One other thing to try... open the YouTube app, play a video, bring up the options for the video (button with 3 dots) and enable "Stats for Nerds". It will overlay a black box on the video with a ton of info. Look for "Viewport / Frames", if that doesn't report 4K resolution then I think we're out of luck.

I'm still trying to find a reason and understand this issue myself as, correct me of I'm wrong, the Sony A80J is a 2021 model TV and it's not a low-end or budget model?

@Plazzmex Philips TVs might be in the same boat but I honestly don't understand why?! ...both the Google TV and Nvidia Shield do run videos at 4K based on info provided by others.

tsoodla commented 2 years ago

One other thing to try... open the YouTube app, play a video, bring up the options for the video (button with 3 dots) and enable "Stats for Nerds". It will overlay a black box on the video with a ton of info. Look for "Viewport / Frames", if that doesn't report 4K resolution then I think we're out of luck.

Youtube reports 1920x1080*2.00. Times two!? I am wondering, is that the same as 4k? Here is TeamYouTube trying to explain it but it still remains confusing to me.

Netflix seems to report 2160 on 4k movie. IMG_7418 IMG_7419 IMG_7420

theothernt commented 2 years ago

Thanks for all the additional info. YouTube seems to be reporting a 4K screen (2 x 1080p is a weird way of saying 4K ie. 2160p) but the other apps aren't - just the video resolution. For example, I have an old 1080p TV but in YouTube I can set the video 'quality' to 4K.

I think one of the only ways to test this is to have an external Android TV device like a Google TV or Nvidia Shield which do output at 4K then compare video quality with the TV - but I understand that's not really possible.

I am looking into other ideas, it is possible for the video player in Aerial Views to detect when video is down-sampled (ie. resized) eg. it's playing a 4K video but scaling it down to 1080p for the TV. I'll have to add some code but it should be possible to show a notification on the video when that happens.

Sorry about all this confusion - I wish I had a clear answer or fix ๐Ÿ˜

tsoodla commented 2 years ago

Thank you for your work on this.

theothernt commented 2 years ago

No probs - I'll report back in a few days when I have an update!

theothernt commented 2 years ago

So I think I've found the solution. Android has a couple of methods to get the physical screen (viewport) size, an old way and a new way - the recommended ways according to the official docs.

But as Android is not identical on all devices, Sony decided that their 4K TVs should report their physical size as 1080p !? (different from the UI resolution, which is already reported correctly in the app). Sony then expect you to check for a "4k feature" of the TV (com.sony.dtv.hardware.panel.qfhd) and then you can assume it's a 4K screen ?!

I did wonder why ExoPlayer (a player component made by Google) had its own helper method to get the physical screen size... and now I know ๐Ÿคจ

This fix will be in the next beta release, and later in a Store update.

theothernt commented 2 years ago

If the issue is fixed in v1.1 beta 1 or 2 - do let me know.

If you don't want to sideload the APK, v1.1 will be in the Play Store in the next week to 10 days (around 22nd of Feb)

tsoodla commented 2 years ago

Thanks, I will report back. I will wait for Play Store release.

tsoodla commented 2 years ago

Looks good IMG_7502

theothernt commented 2 years ago

@tsoodla fantastic, thanks for the pic!