You’re right that I should probably find some test clips and double-check what’s happening in other cases but off the top of my head…
Interlaced stuff should indeed always be played at the higher frame rate (1080i/50 at 50Hz, and 1080i/60 at 60Hz) because you can’t be entirely sure whether it’s field-interlaced or frame-interlaced or a mixture - even if there’s metadata, it may be wrong.
For progressive stuff, assuming all modes are whitelisted and double frequency is allowed, I think that exactly matching resolution should take precedence over exactly matching frame rate; so, for example, 720p/25fps should be output as 720p/50Hz, not 1080p/25Hz. But if there is a precise match for resolution and refresh rate available, it should be used - so 1080p/25fps should be output as 1080p/25Hz if that’s available; 2160p/25fps should be output as 2160p/25Hz; etc.
So yes, interlaced videos probably should be treated as a special case. Otherwise, keep it simple.
I guess I should also say that the only reason this really matters is that the Vero 4K seems to have a general issue with converting 25fps video to 50Hz output; if that weren’t the case, I probably wouldn’t even have noticed that it was outputting 50Hz in the first place, and it wouldn’t generally be a problem that it decides to do that. At some point it would be nice to look into that; but I’m sure that’s going to be horrible! In the mean time, making the whitelist logic a bit more logical nicely works around the issue a lot of the time. And honestly, I think it just makes more sense anyway; it might occasionally be useful for people who have unstable HDMI connections, etc.; and there’s really no obvious downside to not doubling the output frequency unless you actually need to.
So the precedence (assuming all modes whitelisted and both “multiples” checkboxes checked, and the video is progressive) should be:
- Exact match of resolution and refresh rate.
- Exact match of resolution with double refresh rate.
- Exact match of resolution with 3:2 refresh rate (e.g. 480p/24 as 480p/60).
- Higher resolution with same refresh rate.
- Higher resolution with double refresh rate.
- Higher resolution with 3:2 refresh rate.
Treat interlaced videos as if they were progressive but with the higher frame rate, so treat 1080i/50 as if it were 1080p/50, 1080i/60 as 1080p/60, etc.
And obviously options 2, 3, 5 and 6 should be ignored if the appropriate Settings checkbox isn’t checked.