checkasm/sw_rgb: fix alignment of buffers for rgb_to_yuv tests

src is apparently not guaranteed to be >8 byte aligned, but align to 16
nonetheless as the x86 asm will do unaligned loads anyway.
dst is guaranteed to be 32 byte aligned for the Y plane, but 16 byte for UV.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2024-06-09 13:48:40 -03:00
parent e8cef5e152
commit 287d139b77

View File

@ -195,8 +195,8 @@ static const enum AVPixelFormat rgb_formats[] = {
static void check_rgb_to_y(struct SwsContext *ctx)
{
LOCAL_ALIGNED_32(uint8_t, src24, [MAX_LINE_SIZE * 3]);
LOCAL_ALIGNED_32(uint8_t, src32, [MAX_LINE_SIZE * 4]);
LOCAL_ALIGNED_16(uint8_t, src24, [MAX_LINE_SIZE * 3]);
LOCAL_ALIGNED_16(uint8_t, src32, [MAX_LINE_SIZE * 4]);
LOCAL_ALIGNED_32(uint8_t, dst0_y, [MAX_LINE_SIZE * 2]);
LOCAL_ALIGNED_32(uint8_t, dst1_y, [MAX_LINE_SIZE * 2]);
@ -238,12 +238,12 @@ static void check_rgb_to_y(struct SwsContext *ctx)
static void check_rgb_to_uv(struct SwsContext *ctx)
{
LOCAL_ALIGNED_32(uint8_t, src24, [MAX_LINE_SIZE * 3]);
LOCAL_ALIGNED_32(uint8_t, src32, [MAX_LINE_SIZE * 4]);
LOCAL_ALIGNED_32(uint8_t, dst0_u, [MAX_LINE_SIZE * 2]);
LOCAL_ALIGNED_32(uint8_t, dst0_v, [MAX_LINE_SIZE * 2]);
LOCAL_ALIGNED_32(uint8_t, dst1_u, [MAX_LINE_SIZE * 2]);
LOCAL_ALIGNED_32(uint8_t, dst1_v, [MAX_LINE_SIZE * 2]);
LOCAL_ALIGNED_16(uint8_t, src24, [MAX_LINE_SIZE * 3]);
LOCAL_ALIGNED_16(uint8_t, src32, [MAX_LINE_SIZE * 4]);
LOCAL_ALIGNED_16(uint8_t, dst0_u, [MAX_LINE_SIZE * 2]);
LOCAL_ALIGNED_16(uint8_t, dst0_v, [MAX_LINE_SIZE * 2]);
LOCAL_ALIGNED_16(uint8_t, dst1_u, [MAX_LINE_SIZE * 2]);
LOCAL_ALIGNED_16(uint8_t, dst1_v, [MAX_LINE_SIZE * 2]);
declare_func(void, uint8_t *dstU, uint8_t *dstV,
const uint8_t *src1, const uint8_t *src2, const uint8_t *src3,