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.
This commit is contained in:
Valeri 2021-10-09 20:13:45 +03:00 committed by v1993
parent 39cd6306e6
commit 0394e4bb8e
No known key found for this signature in database
GPG Key ID: 9A30914F19F1D7C8
1 changed files with 3 additions and 2 deletions

View File

@ -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;
}