diff mbox series

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

Message ID 20240215191757.336042-1-jeebjp@gmail.com
State Accepted
Commit e06ce6d2b45edac4a2df04f304e18d4727417d24
Headers show
Series [FFmpeg-devel,v2] {avcodec, tests}: rename the bundled Mesa AV1 vulkan video headers | 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

Jan Ekström Feb. 15, 2024, 7:17 p.m. UTC
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%)

Comments

Lynne Feb. 15, 2024, 7:20 p.m. UTC | #1
Feb 15, 2024, 20:18 by jeebjp@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
Jan Ekström Feb. 18, 2024, 12:16 p.m. UTC | #2
On Thu, Feb 15, 2024 at 9:21 PM Lynne <dev@lynne.ee> wrote:
>
> Feb 15, 2024, 20:18 by jeebjp@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.
> > ---
> >
>
> LGTM

Thanks, applied to master as e06ce6d2b45edac4a2df04f304e18d4727417d24
, as this takes care of the current build failure with latest vulkan
headers.

If there are no objections or issues to this way of handling the
issue, I will later cherry-pick this to release/6.1 , which also
contains these files.

Jan
Jan Ekström Feb. 19, 2024, 3:09 p.m. UTC | #3
On Sun, Feb 18, 2024 at 2:16 PM Jan Ekström <jeebjp@gmail.com> wrote:
>
> On Thu, Feb 15, 2024 at 9:21 PM Lynne <dev@lynne.ee> wrote:
> >
> > Feb 15, 2024, 20:18 by jeebjp@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.
> > > ---
> > >
> >
> > LGTM
>
> Thanks, applied to master as e06ce6d2b45edac4a2df04f304e18d4727417d24
> , as this takes care of the current build failure with latest vulkan
> headers.
>
> If there are no objections or issues to this way of handling the
> issue, I will later cherry-pick this to release/6.1 , which also
> contains these files.

As there were no objections, back-ported this fixup to release/6.1 as
fef22c87ada4517441701e6e61e062c9f4399c8e.

Jan
diff mbox series

Patch

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: