diff options
author | Valeri <v19930312@gmail.com> | 2021-10-09 20:13:45 +0300 |
---|---|---|
committer | v1993 <v19930312@gmail.com> | 2021-10-09 20:22:09 +0300 |
commit | 0394e4bb8ee35981ad1a39818e21ba23faf80db6 (patch) | |
tree | ce51ce11125fd81b08fa8207e4546ea93cfec98d /src | |
parent | 39cd6306e63848cdb9fafa6d30311b372223d3d4 (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.cpp | 5 |
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; } |