summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorValeri <v19930312@gmail.com>2021-10-09 20:13:45 +0300
committerv1993 <v19930312@gmail.com>2021-10-09 20:22:09 +0300
commit0394e4bb8ee35981ad1a39818e21ba23faf80db6 (patch)
treece51ce11125fd81b08fa8207e4546ea93cfec98d /src
parent39cd6306e63848cdb9fafa6d30311b372223d3d4 (diff)
vic: Allow surface to be higher than frame
Touhou Genso Wanderer Lotus Labyrinth R decodes 1920x1080 videos into 1920x1088 surface. Only allow mismatch for height, since larger width would result in increasingly offset rows and somewhat defeat entire purpose of this check.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/command_classes/vic.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/video_core/command_classes/vic.cpp b/src/video_core/command_classes/vic.cpp
index 51f739801..dc768b952 100644
--- a/src/video_core/command_classes/vic.cpp
+++ b/src/video_core/command_classes/vic.cpp
@@ -88,9 +88,10 @@ void Vic::Execute() {
const u64 surface_width = config.surface_width_minus1 + 1;
const u64 surface_height = config.surface_height_minus1 + 1;
if (static_cast<u64>(frame->width) != surface_width ||
- static_cast<u64>(frame->height) != surface_height) {
+ static_cast<u64>(frame->height) > surface_height) {
// TODO: Properly support multiple video streams with differing frame dimensions
- LOG_WARNING(Debug, "Frame dimensions {}x{} do not match expected surface dimensions {}x{}",
+ LOG_WARNING(Debug,
+ "Frame dimensions {}x{} can't be safely decoded into surface dimensions {}x{}",
frame->width, frame->height, surface_width, surface_height);
return;
}