[FFmpeg-devel] [PATCH] avutil/frame: use the maximum compile time supported alignment for strides

James Almer jamrial at gmail.com
Fri Aug 2 22:07:12 EEST 2024


On 7/31/2024 9:55 AM, James Almer wrote:
> This puts lavu frame buffer allocator helpers in sync with lavc's decoder frame
> buffer allocator's STRIDE_ALIGN define.
> 
> Remove the comment about av_cpu_max_align() while at it as using it is not
> ideal when CPU flags can be changed mid process.
> 
> Should fix ticket #11116.
> 
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>   libavutil/frame.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/libavutil/frame.c b/libavutil/frame.c
> index 673a9afb3b..5cbfc6a48b 100644
> --- a/libavutil/frame.c
> +++ b/libavutil/frame.c
> @@ -166,6 +166,8 @@ void av_frame_free(AVFrame **frame)
>       av_freep(frame);
>   }
>   
> +#define ALIGN (HAVE_SIMD_ALIGN_64 ? 64 : 32)
> +
>   static int get_video_buffer(AVFrame *frame, int align)
>   {
>       const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(frame->format);
> @@ -182,7 +184,7 @@ static int get_video_buffer(AVFrame *frame, int align)
>   
>       if (!frame->linesize[0]) {
>           if (align <= 0)
> -            align = 32; /* STRIDE_ALIGN. Should be av_cpu_max_align() */
> +            align = ALIGN;
>   
>           for (int i = 1; i <= align; i += i) {
>               ret = av_image_fill_linesizes(frame->linesize, frame->format,

Will apply.


More information about the ffmpeg-devel mailing list