* [FFmpeg-devel] [PATCH] avcodec/refstruct: Don't use STRIDE_ALIGN for alignment
@ 2024-02-27 21:14 Andreas Rheinhardt
2024-02-29 9:36 ` Andreas Rheinhardt
0 siblings, 1 reply; 2+ messages in thread
From: Andreas Rheinhardt @ 2024-02-27 21:14 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: 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 {
--
2.40.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avcodec/refstruct: Don't use STRIDE_ALIGN for alignment
2024-02-27 21:14 [FFmpeg-devel] [PATCH] avcodec/refstruct: Don't use STRIDE_ALIGN for alignment Andreas Rheinhardt
@ 2024-02-29 9:36 ` Andreas Rheinhardt
0 siblings, 0 replies; 2+ messages in thread
From: Andreas Rheinhardt @ 2024-02-29 9:36 UTC (permalink / raw)
To: ffmpeg-devel
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
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-02-29 9:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-27 21:14 [FFmpeg-devel] [PATCH] avcodec/refstruct: Don't use STRIDE_ALIGN for alignment Andreas Rheinhardt
2024-02-29 9:36 ` Andreas Rheinhardt
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git