feat: match IINA screenshot geometry and controls

This commit is contained in:
2026-10-10 14:04:09 +02:00
parent 462cb52eb2
commit c9b9264109
6 changed files with 186 additions and 43 deletions
+5 -2
View File
@@ -46,13 +46,16 @@ int main(int argc, char **argv) {
window.contentView = view;
[window orderBack:nil];
for (const char *fixture : {"av.mp4", "video.mp4", "audio.wav"}) {
for (const char *fixture : {"av.mp4", "video.mp4", "audio.wav", "anamorphic.mp4"}) {
std::string path = std::string(argv[1]) + "/" + fixture;
require(player_open(player.get(), path.c_str()), "open accepted");
auto opened = until(player.get(), [](auto s) { return s.status == PLAYER_PAUSED; });
require(opened.duration > 3.9 && opened.duration < 4.2, "discovered fixture duration");
require(opened.has_video == (std::string(fixture) != "audio.wav"), "video track selection");
require(opened.has_audio == (std::string(fixture) != "video.mp4"), "audio track selection");
require(opened.has_audio == (std::string(fixture) == "av.mp4" || std::string(fixture) == "audio.wav"),
"audio track selection");
double aspect = !opened.has_video ? 0 : std::string(fixture) == "anamorphic.mp4" ? 8.0 / 3 : 16.0 / 9;
require(std::abs(opened.video_aspect_ratio - aspect) < .0001, "display aspect includes non-square pixels");
require(!player_seek(player.get(), NAN), "non-finite seek rejected");
require(player_play(player.get()), "play accepted");
until(player.get(), [](auto s) { return s.status == PLAYER_PLAYING && s.position > .35; });