"Ronald S. Bultje" <[email protected]> writes:

> From: Anton Mitrofanov <[email protected]>
>
> ptrdiff_t can be 4 bytes, which leads to the next element being 4-byte
> aligned and thus at a different offset than intended. Using a fixed 8-byte
> element for uv_off_px/byte fixes that.
>
> Signed-off-by: Ronald S. Bultje <[email protected]>
> ---
>  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..7166667 100644
> --- a/libswscale/swscale_internal.h
> +++ b/libswscale/swscale_internal.h
> @@ -345,8 +345,8 @@ typedef struct SwsContext {
>      DECLARE_ALIGNED(8, uint64_t, v_temp);
>      DECLARE_ALIGNED(8, uint64_t, y_temp);
>      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
> +    DECLARE_ALIGNED(8, int64_t, uv_off_px);   ///< offset (in pixels) 
> between u and v planes
> +    DECLARE_ALIGNED(8, int64_t, uv_off_byte); ///< offset (in bytes) between 
> u and v planes
>      uint16_t dither16[8];
>      uint32_t dither32[8];
>
> -- 

What is this supposed to fix, and why are those things declared with
extra alignment at all?  It makes no sense.

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to