From b7a100337eea6d1e3077d3a03956d7a9b79d5b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=96R=C3=96K=20Attila?= Date: Thu, 22 Feb 2024 23:30:02 +0100 Subject: [PATCH] tests: Make H.264 videos work in visual tests --- Cargo.lock | 1 + tests/Cargo.toml | 6 +++++- tests/framework/Cargo.toml | 3 ++- tests/framework/src/options.rs | 21 ++++++++++++++++++--- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 733050026..7f53bfe56 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4553,6 +4553,7 @@ dependencies = [ "ruffle_input_format", "ruffle_render", "ruffle_socket_format", + "ruffle_video_external", "ruffle_video_software", "serde", "toml", diff --git a/tests/Cargo.toml b/tests/Cargo.toml index ca83d06b4..8a1ab09b4 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -14,7 +14,11 @@ workspace = true # Enable running image comparison tests. This is off by default, # since the images we compare against are generated on CI, and may # not match your local machine's Vulkan version / image output. -imgtests = ["ruffle_test_framework/ruffle_video_software", "ruffle_render_wgpu"] +imgtests = [ + "ruffle_render_wgpu", + "ruffle_test_framework/ruffle_video_software", + "ruffle_test_framework/ruffle_video_external", +] jpegxr = ["ruffle_test_framework/jpegxr"] lzma = ["ruffle_test_framework/lzma"] diff --git a/tests/framework/Cargo.toml b/tests/framework/Cargo.toml index 65749b2fe..7527cb1e3 100644 --- a/tests/framework/Cargo.toml +++ b/tests/framework/Cargo.toml @@ -16,6 +16,7 @@ ruffle_render = { path = "../../render" } ruffle_input_format = { path = "../input-format" } ruffle_socket_format = { path = "../socket-format" } ruffle_video_software = { path = "../../video/software", optional = true } +ruffle_video_external = { path = "../../video/external", optional = true } image = { workspace = true, features = ["png"] } regex = "1.10.4" url = { workspace = true } @@ -31,4 +32,4 @@ percent-encoding = "2.3.1" [features] jpegxr = ["ruffle_core/jpegxr"] -lzma = ["ruffle_core/lzma"] \ No newline at end of file +lzma = ["ruffle_core/lzma"] diff --git a/tests/framework/src/options.rs b/tests/framework/src/options.rs index 133c29888..8d0a3c39d 100644 --- a/tests/framework/src/options.rs +++ b/tests/framework/src/options.rs @@ -174,10 +174,25 @@ impl PlayerOptions { player_builder = player_builder.with_player_runtime(self.runtime); - #[cfg(feature = "ruffle_video_software")] if self.with_video { - use ruffle_video_software::backend::SoftwareVideoBackend; - player_builder = player_builder.with_video(SoftwareVideoBackend::new()) + #[cfg(feature = "ruffle_video_external")] + { + use ruffle_video_external::backend::ExternalVideoBackend; + let openh264_path = ExternalVideoBackend::get_openh264() + .map_err(|e| anyhow!("Couldn't get OpenH264: {}", e))?; + + player_builder = + player_builder.with_video(ExternalVideoBackend::new(Some(openh264_path))); + } + + #[cfg(all( + not(feature = "ruffle_video_external"), + feature = "ruffle_video_software" + ))] + { + player_builder = player_builder + .with_video(ruffle_video_software::backend::SoftwareVideoBackend::new()); + } } Ok(player_builder)