[FFmpeg-devel] [PATCH v2] {avcodec, tests}: rename the bundled Mesa AV1 vulkan video headers

Lynne dev at lynne.ee
Thu Feb 15 21:20:56 EET 2024


Feb 15, 2024, 20:18 by jeebjp at gmail.com:

> This together with adjusting the inclusion define allows for the
> build to not fail with latest Vulkan-Headers that contain the
> stabilized Vulkan AV1 decoding definitions.
>
> Compilation fails currently as the AV1 header is getting included
> via hwcontext_vulkan.h -> <vulkan/vulkan.h> -> vulkan_core.h, which
> finally includes vk_video/vulkan_video_codec_av1std.h and the decode
> header, leading to the bundled header to never defining anything
> due to the inclusion define being the same.
>
> This fix is imperfect, as it leads to additional re-definition
> warnings for things such as
> VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION. , but it is
> not clear how to otherwise have the bundled version trump the
> actually standardized one for a short-term compilation fix.
> ---
>  libavcodec/Makefile                                           | 4 ++--
>  libavcodec/vulkan_video.h                                     | 4 ++--
>  ...v1std_decode.h => vulkan_video_codec_av1std_decode_mesa.h} | 4 ++--
>  ..._video_codec_av1std.h => vulkan_video_codec_av1std_mesa.h} | 4 ++--
>  tests/ref/fate/source                                         | 4 ++--
>  5 files changed, 10 insertions(+), 10 deletions(-)
>  rename libavcodec/{vulkan_video_codec_av1std_decode.h => vulkan_video_codec_av1std_decode_mesa.h} (89%)
>  rename libavcodec/{vulkan_video_codec_av1std.h => vulkan_video_codec_av1std_mesa.h} (99%)
>
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> index 470d7cb9b1..09ae5270b3 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -1262,7 +1262,7 @@ SKIPHEADERS                            += %_tablegen.h                  \
>  aacenc_quantization.h         \
>  aacenc_quantization_misc.h    \
>  bitstream_template.h          \
> -                                          vulkan_video_codec_av1std.h   \
> +                                          vulkan_video_codec_av1std_mesa.h \
>  $(ARCH)/vpx_arith.h          \
>  
>  SKIPHEADERS-$(CONFIG_AMF)              += amfenc.h
> @@ -1285,7 +1285,7 @@ SKIPHEADERS-$(CONFIG_XVMC)             += xvmc.h
>  SKIPHEADERS-$(CONFIG_VAAPI)            += vaapi_decode.h vaapi_hevc.h vaapi_encode.h
>  SKIPHEADERS-$(CONFIG_VDPAU)            += vdpau.h vdpau_internal.h
>  SKIPHEADERS-$(CONFIG_VIDEOTOOLBOX)     += videotoolbox.h vt_internal.h
> -SKIPHEADERS-$(CONFIG_VULKAN)           += vulkan.h vulkan_video.h vulkan_decode.h vulkan_video_codec_av1std_decode.h
> +SKIPHEADERS-$(CONFIG_VULKAN)           += vulkan.h vulkan_video.h vulkan_decode.h vulkan_video_codec_av1std_decode_mesa.h
>  SKIPHEADERS-$(CONFIG_V4L2_M2M)         += v4l2_buffers.h v4l2_context.h v4l2_m2m.h
>  SKIPHEADERS-$(CONFIG_ZLIB)             += zlib_wrapper.h
>  
> diff --git a/libavcodec/vulkan_video.h b/libavcodec/vulkan_video.h
> index b28e3fe0bd..51f44dd543 100644
> --- a/libavcodec/vulkan_video.h
> +++ b/libavcodec/vulkan_video.h
> @@ -23,8 +23,8 @@
>  #include "vulkan.h"
>  
>  #include <vk_video/vulkan_video_codecs_common.h>
> -#include "vulkan_video_codec_av1std.h"
> -#include "vulkan_video_codec_av1std_decode.h"
> +#include "vulkan_video_codec_av1std_mesa.h"
> +#include "vulkan_video_codec_av1std_decode_mesa.h"
>  
>  #define CODEC_VER_MAJ(ver) (ver >> 22)
>  #define CODEC_VER_MIN(ver) ((ver >> 12) & ((1 << 10) - 1))
> diff --git a/libavcodec/vulkan_video_codec_av1std_decode.h b/libavcodec/vulkan_video_codec_av1std_decode_mesa.h
> similarity index 89%
> rename from libavcodec/vulkan_video_codec_av1std_decode.h
> rename to libavcodec/vulkan_video_codec_av1std_decode_mesa.h
> index a697c00593..e2f37b4e6e 100644
> --- a/libavcodec/vulkan_video_codec_av1std_decode.h
> +++ b/libavcodec/vulkan_video_codec_av1std_decode_mesa.h
> @@ -14,8 +14,8 @@
>  * limitations under the License.
>  */
>  
> -#ifndef VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_
> -#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1
> +#ifndef VULKAN_VIDEO_CODEC_AV1STD_DECODE_MESA_H_
> +#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_MESA_H_ 1
>  
>  /*
>  ** This header is NOT YET generated from the Khronos Vulkan XML API Registry.
> diff --git a/libavcodec/vulkan_video_codec_av1std.h b/libavcodec/vulkan_video_codec_av1std_mesa.h
> similarity index 99%
> rename from libavcodec/vulkan_video_codec_av1std.h
> rename to libavcodec/vulkan_video_codec_av1std_mesa.h
> index c46236c457..c91589eee2 100644
> --- a/libavcodec/vulkan_video_codec_av1std.h
> +++ b/libavcodec/vulkan_video_codec_av1std_mesa.h
> @@ -14,8 +14,8 @@
>  * limitations under the License.
>  */
>  
> -#ifndef VULKAN_VIDEO_CODEC_AV1STD_H_
> -#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1
> +#ifndef VULKAN_VIDEO_CODEC_AV1STD_MESA_H_
> +#define VULKAN_VIDEO_CODEC_AV1STD_MESA_H_ 1
>  
>  /*
>  ** This header is NOT YET generated from the Khronos Vulkan XML API Registry.
> diff --git a/tests/ref/fate/source b/tests/ref/fate/source
> index c575789dd5..8bb58b61f1 100644
> --- a/tests/ref/fate/source
> +++ b/tests/ref/fate/source
> @@ -23,8 +23,8 @@ compat/djgpp/math.h
>  compat/float/float.h
>  compat/float/limits.h
>  libavcodec/bitstream_template.h
> -libavcodec/vulkan_video_codec_av1std.h
> -libavcodec/vulkan_video_codec_av1std_decode.h
> +libavcodec/vulkan_video_codec_av1std_decode_mesa.h
> +libavcodec/vulkan_video_codec_av1std_mesa.h
>  tools/decode_simple.h
>  Use of av_clip() where av_clip_uintp2() could be used:
>  Use of av_clip() where av_clip_intp2() could be used:
>

LGTM


More information about the ffmpeg-devel mailing list