[vlc-devel] [PATCH v2] picture: align pictures on 32 bytes

Steve Lhomme robux4 at ycbcr.xyz
Mon Nov 12 09:05:07 CET 2018


On 12/11/2018 08:51, Steve Lhomme wrote:
> Code relying on AVX-2 (like dav1d) cannot work without that. Even avcodec has a
> requirement of 64 (likely to get at least 32 on all planes). So it's probably
> time to upgrade.
> ---
>   src/misc/picture.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/misc/picture.c b/src/misc/picture.c
> index b373ebd21f..388d4ab8d5 100644
> --- a/src/misc/picture.c
> +++ b/src/misc/picture.c
> @@ -73,16 +73,16 @@ static void picture_Destroy(picture_t *pic)
>   
>   VLC_WEAK void *picture_Allocate(int *restrict fdp, size_t size)
>   {
> -    assert((size % 16) == 0);
> +    assert((size % 32) == 0);

This is always true because picture_Setup() has 
i_modulo_h=LCM(i_modulo_h,32);
And the vertical is always a modulo of 16 at least. So (internal) 
picture sizes are always a multiple of 512.

We could even raise to 64 bytes and always be safe with libavcodec.

>       *fdp = -1;
> -    return aligned_alloc(16, size);
> +    return aligned_alloc(32, size);
>   }
>   
>   VLC_WEAK void picture_Deallocate(int fd, void *base, size_t size)
>   {
>       assert(fd == -1);
>       aligned_free(base);
> -    assert((size % 16) == 0);
> +    assert((size % 32) == 0);
>   }
>   
>   /*****************************************************************************
> -- 
> 2.17.1
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list