gentoo-ebuilds/media-libs/kvazaar/files/kvazaar-2.3.0-backport-c6f2ba4.patch
Matoro Mahri 94c22d10cb
media-libs/kvazaar: add 2.3.0
Includes two new backports for remaining missing arches (x86 + sparc).

See: https://github.com/ultravideo/kvazaar/pull/392
See: https://github.com/ultravideo/kvazaar/issues/391
Bug: https://bugs.gentoo.org/902217
Signed-off-by: Matoro Mahri <matoro_gentoo@matoro.tk>
Closes: https://github.com/gentoo/gentoo/pull/35584
Signed-off-by: Sam James <sam@gentoo.org>
2024-03-08 20:01:08 +00:00

31 lines
1.2 KiB
Diff

https://bugs.gentoo.org/902217
https://github.com/ultravideo/kvazaar/issues/391
https://github.com/ultravideo/kvazaar/commit/c6f2ba4711d42285636da97b133a7b5aa49c9533
From c6f2ba4711d42285636da97b133a7b5aa49c9533 Mon Sep 17 00:00:00 2001
From: Joose Sainio <joose.sainio@tuni.fi>
Date: Thu, 1 Feb 2024 10:47:16 +0200
Subject: [PATCH] fix unaligned access on array_checksum_generic8
---
src/strategies/generic/nal-generic.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/strategies/generic/nal-generic.c b/src/strategies/generic/nal-generic.c
index 1762c8ba..075c8264 100644
--- a/src/strategies/generic/nal-generic.c
+++ b/src/strategies/generic/nal-generic.c
@@ -157,6 +157,13 @@ static void array_checksum_generic8(const kvz_pixel* data,
assert(SEI_HASH_MAX_LENGTH >= 4);
for (y = 0; y < height; ++y) {
+ if (y*stride % 8 != 0) {
+ for (x = 0; x < width; ++x) {
+ uint8_t mask = (uint8_t)((x & 0xff) ^ (y & 0xff) ^ (x >> 8) ^ (y >> 8));
+ checksum += (data[(y * stride) + x] & 0xff) ^ mask;
+ }
+ continue;
+ }
for (xp = 0; xp < width/8; ++xp) {
const int x = xp * 8;
const uint64_t mask = ckmap[(xp&31)+32*(y&255)] ^ ((uint64_t)((x >> 8) ^ (y >> 8)) * 0x101010101010101);