From: Anton Mitrofanov <bugmas...@narod.ru> ptrdiff_t can be 4 bytes, which leads to the next element being 4-byte aligned and thus at a different offset than intended. Forcing 8-byte alignment forces equal offset of dither16/32 on x86-32 and x86-64.
Signed-off-by: Ronald S. Bultje <rsbul...@gmail.com> --- libswscale/swscale_internal.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index b602541..a6d4a2f 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -347,8 +347,8 @@ typedef struct SwsContext { int32_t alpMmxFilter[4*MAX_FILTER_SIZE]; DECLARE_ALIGNED(8, ptrdiff_t, uv_off_px); ///< offset (in pixels) between u and v planes DECLARE_ALIGNED(8, ptrdiff_t, uv_off_byte); ///< offset (in bytes) between u and v planes - uint16_t dither16[8]; - uint32_t dither32[8]; + DECLARE_ALIGNED(8, uint16_t, dither16)[8]; + DECLARE_ALIGNED(8, uint32_t, dither32)[8]; const uint8_t *chrDither8, *lumDither8; -- 1.7.2.1 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel