"Display 4:3 videos as" setting not working correctly with upscaled video

I have actually raised this issue before in the past (see "Use HDMI AVI signalling" video option should only be used at SD resolution ) but that thread got a bit derailed by a discussion of some other, less clear-cut, situations. There is one case I’d like to raise again here which is absolutely clear-cut, and where the current behaviour isn’t correct.

This has to do with the “Display 4:3 videos as” setting (under Player/Videos), and specifically with the “Use HDMI AVI signalling” option. What this does is to tell the display to switch between 4:3 and 16:9 aspect ratio.

If the video is 480i, 480p, 576i, or 576p, and the output resolution is 480p or 576p, this option works correctly, signalling the display to handle the aspect ratio. In the case where the video is HD resolution (e.g. 1440x1080) this setting also works correctly, and doesn’t signal an aspect ratio change to the display, it just pillarboxes the video within a 1920x1080 frame.

Where things go wrong is if you’re watching an SD video upscaled. (Why would you want to do that? The video might be 720x480 resolution, with a 23.976fps frame rate - very common on Netflix. You could view it as 480p/59.94Hz; but you might prefer to upscale it to 1080p/23.976 or 2160p/23.976 so as to prioritise preserving the original frame-rate over preserving the resolution).

In this situation (e.g. 720x480 video output at 1080p) the Vero 4K+ upscales the video to 1920x1080 (stretching it horizontally), then tells the TV to use a 4:3 aspect ratio which compresses it again; so you get the correct aspect ratio on the screen, but only because there is double scaling involved.

To put it another way: at the moment, it chooses been using aspect-ratio-signalling for 4:3 SD and using pillarboxing for 4:3 HD, which are both correct; but it makes that decision by looking at the dimensions of the video file, when it should be looking at the output resolution instead.

Paging @grahamh as he has had some interest in related issues in the past.

No, it makes the decision by looking for the aspect ratio flag in the stream.

Can’t you get what you want by turning off ‘Use HDMI signalling’?

Well, I could, sure, but then it wouldn’t work correctly for SD material, and I’d have to keep switching it to and fro.

I remember back when you were first experimenting with this setting, we had a similar problem with 4:3 HD videos - something with a resolution of 1440x1080 that was tagged as 4:3 ended up being double-scaled in the same way. But that case ended up being fixed - so Kodi is already capable of distinguishing between an SD 4:3 video and an HD 4:3 video and behaving differently depending on which it is. The problem is that it’s checking the video file dimensions instead of checking the output resolution.

I should have phrased that differently. If turning off HDMI signalling does what you want then it should be relatively easy to add a case (he said, touching wood) based on the output resolution as you propose.

What would be more difficult to fix is if it’s not just doubling the 720 to 1440 and adding sidebars but scaling it to 1920 then back to 1440 in Kodi (as I suspect). That would be no different to using HDMI signalling - Kodi/Vero would be doing the pillarboxing instead of the display. Do your eagle eyes have a view on that?

Ah, right, got you, sorry! :slightly_smiling_face:

No, with the setting set to “Use HDMI AVI signalling”, if I play a 480p/23.976 video and upscale to (say) 2160p, Kodi scales all the way up to 3840x2160 without pillarboxing, and then uses HDMI signalling to switch the display to 4:3. So there’s double scaling because Kodi upscales to 16:9 and then the TV downscales horizontally to get back to 4:3.

(No eagle eyes required: if I force the TV to 16:9 then everything is horizontally stretched; if I have the TV aspect ratio set to either 4:3 or Auto then the aspect ratio appears correct. It ought to be correct with the TV set to 16:9 and squashed with it set to 4:3.)

As I said, this is essentially the same issue we initially had with 1440x1080 videos and which was successfully fixed. So I guess the test at the moment is basically “if the aspect ratio is 4:3 and the video file is SD resolution, use HDMI signalling”, and that should change to “if the aspect ratio is 4:3 and the output resolution is SD, use HDMI signalling”. Obviously it’s more complex than that, because you have to repeat the check if the output resolution changes during playback, but the principle is the same.

If you don’t have a test 480p/23.976 video handy, btw, then you can go into Netflix, find Star Trek: Voyager, and play season 4 episode 13 (“Waking Moments”).

Actually, I’m a bit puzzled why any TV would react to 4:3 signalling when playing 1080p, still less 2160p.

I don’t do Netflix, but the effect you’re talking about can’t be unique to 24Hz, surely, so I’ll have a look at it when time permits.

I don’t know either, but mine certainly does. :man_shrugging:

No, I’m sure it isn’t, it’s just that a 480p/24 video is about the only situation where someone who cares about image quality would choose to upscale an SD 4:3 video. (And if the video is output at native resolution, that already works correctly).