diff mbox series

[FFmpeg-devel] avcodec/refstruct: Don't use STRIDE_ALIGN for alignment

Message ID AS8P250MB0744D05C77FDE35D02DB3A0A8F592@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM
State Accepted
Commit 72becd0627c54d6aa1ba85b21b190ff844915c67
Headers show
Series [FFmpeg-devel] avcodec/refstruct: Don't use STRIDE_ALIGN for alignment | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt Feb. 27, 2024, 9:14 p.m. UTC
It was always intended that the buffers returned by
RefStruct shall have the same alignment guarantees
as the buffers returned by av_malloc(); said alignment
depends upon the arch and the enabled instruction set
and the code used STRIDE_ALIGN as a proxy for this.

Yet since 7945d30e91b96d2f4f5b612048169087d214d41e
there is a better way to get av_malloc's alignment:
ALIGN_64 in mem_internal.h. So use this.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/refstruct.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Andreas Rheinhardt Feb. 29, 2024, 9:36 a.m. UTC | #1
Andreas Rheinhardt:
> It was always intended that the buffers returned by
> RefStruct shall have the same alignment guarantees
> as the buffers returned by av_malloc(); said alignment
> depends upon the arch and the enabled instruction set
> and the code used STRIDE_ALIGN as a proxy for this.
> 
> Yet since 7945d30e91b96d2f4f5b612048169087d214d41e
> there is a better way to get av_malloc's alignment:
> ALIGN_64 in mem_internal.h. So use this.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>  libavcodec/refstruct.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/refstruct.c b/libavcodec/refstruct.c
> index 81e8c9795c..f89af156c2 100644
> --- a/libavcodec/refstruct.c
> +++ b/libavcodec/refstruct.c
> @@ -20,13 +20,13 @@
>  #include <stdint.h>
>  #include <string.h>
>  
> -#include "internal.h"
>  #include "refstruct.h"
>  
>  #include "libavutil/avassert.h"
>  #include "libavutil/error.h"
>  #include "libavutil/macros.h"
>  #include "libavutil/mem.h"
> +#include "libavutil/mem_internal.h"
>  #include "libavutil/thread.h"
>  
>  #ifndef REFSTRUCT_CHECKED
> @@ -46,9 +46,9 @@
>                                 MKTAG('R', 'e', 'f', 'S') | (uint64_t)MKTAG('t', 'r', 'u', 'c') << 32)
>  
>  #if __STDC_VERSION__ >= 201112L && !defined(_MSC_VER)
> -#define REFCOUNT_OFFSET FFALIGN(sizeof(RefCount), FFMAX3(STRIDE_ALIGN, 16, _Alignof(max_align_t)))
> +#define REFCOUNT_OFFSET FFALIGN(sizeof(RefCount), FFMAX(ALIGN_64, _Alignof(max_align_t)))
>  #else
> -#define REFCOUNT_OFFSET FFALIGN(sizeof(RefCount), FFMAX(STRIDE_ALIGN, 16))
> +#define REFCOUNT_OFFSET FFALIGN(sizeof(RefCount), ALIGN_64)
>  #endif
>  
>  typedef struct RefCount {

Will apply this patch tomorrow unless there are objections.

- Andreas
diff mbox series

Patch

diff --git a/libavcodec/refstruct.c b/libavcodec/refstruct.c
index 81e8c9795c..f89af156c2 100644
--- a/libavcodec/refstruct.c
+++ b/libavcodec/refstruct.c
@@ -20,13 +20,13 @@ 
 #include <stdint.h>
 #include <string.h>
 
-#include "internal.h"
 #include "refstruct.h"
 
 #include "libavutil/avassert.h"
 #include "libavutil/error.h"
 #include "libavutil/macros.h"
 #include "libavutil/mem.h"
+#include "libavutil/mem_internal.h"
 #include "libavutil/thread.h"
 
 #ifndef REFSTRUCT_CHECKED
@@ -46,9 +46,9 @@ 
                                MKTAG('R', 'e', 'f', 'S') | (uint64_t)MKTAG('t', 'r', 'u', 'c') << 32)
 
 #if __STDC_VERSION__ >= 201112L && !defined(_MSC_VER)
-#define REFCOUNT_OFFSET FFALIGN(sizeof(RefCount), FFMAX3(STRIDE_ALIGN, 16, _Alignof(max_align_t)))
+#define REFCOUNT_OFFSET FFALIGN(sizeof(RefCount), FFMAX(ALIGN_64, _Alignof(max_align_t)))
 #else
-#define REFCOUNT_OFFSET FFALIGN(sizeof(RefCount), FFMAX(STRIDE_ALIGN, 16))
+#define REFCOUNT_OFFSET FFALIGN(sizeof(RefCount), ALIGN_64)
 #endif
 
 typedef struct RefCount {