Skip to content

Commit

Permalink
ffmpeg: Rebuild for svt-av1 2.0
Browse files Browse the repository at this point in the history
Signed-off-by: Reilly Brogan <reilly@reillybrogan.com>
  • Loading branch information
ReillyBrogan committed Apr 14, 2024
1 parent 158a615 commit db7a037
Show file tree
Hide file tree
Showing 5 changed files with 138 additions and 16 deletions.
2 changes: 1 addition & 1 deletion packages/f/ffmpeg/abi_used_libs
@@ -1,7 +1,7 @@
UNKNOWN
libGL.so.1
libSDL2-2.0.so.0
libSvtAv1Enc.so.1
libSvtAv1Enc.so.2
libX11.so.6
libXv.so.1
libaom.so.3
Expand Down
22 changes: 11 additions & 11 deletions packages/f/ffmpeg/abi_used_symbols
Expand Up @@ -292,17 +292,17 @@ libSDL2-2.0.so.0:SDL_WaitThread
libSDL2-2.0.so.0:SDL_WasInit
libSDL2-2.0.so.0:SDL_getenv
libSDL2-2.0.so.0:SDL_setenv
libSvtAv1Enc.so.1:svt_av1_enc_deinit
libSvtAv1Enc.so.1:svt_av1_enc_deinit_handle
libSvtAv1Enc.so.1:svt_av1_enc_get_packet
libSvtAv1Enc.so.1:svt_av1_enc_init
libSvtAv1Enc.so.1:svt_av1_enc_init_handle
libSvtAv1Enc.so.1:svt_av1_enc_parse_parameter
libSvtAv1Enc.so.1:svt_av1_enc_release_out_buffer
libSvtAv1Enc.so.1:svt_av1_enc_send_picture
libSvtAv1Enc.so.1:svt_av1_enc_set_parameter
libSvtAv1Enc.so.1:svt_av1_enc_stream_header
libSvtAv1Enc.so.1:svt_av1_enc_stream_header_release
libSvtAv1Enc.so.2:svt_av1_enc_deinit
libSvtAv1Enc.so.2:svt_av1_enc_deinit_handle
libSvtAv1Enc.so.2:svt_av1_enc_get_packet
libSvtAv1Enc.so.2:svt_av1_enc_init
libSvtAv1Enc.so.2:svt_av1_enc_init_handle
libSvtAv1Enc.so.2:svt_av1_enc_parse_parameter
libSvtAv1Enc.so.2:svt_av1_enc_release_out_buffer
libSvtAv1Enc.so.2:svt_av1_enc_send_picture
libSvtAv1Enc.so.2:svt_av1_enc_set_parameter
libSvtAv1Enc.so.2:svt_av1_enc_stream_header
libSvtAv1Enc.so.2:svt_av1_enc_stream_header_release
libX11.so.6:XAllocColor
libX11.so.6:XCloseDisplay
libX11.so.6:XCreateGC
Expand Down
121 changes: 121 additions & 0 deletions packages/f/ffmpeg/files/ftbfs-vulkan-headers.patch
@@ -0,0 +1,121 @@
From fef22c87ada4517441701e6e61e062c9f4399c8e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= <jeebjp@gmail.com>
Date: Wed, 14 Feb 2024 22:40:54 +0200
Subject: [PATCH] {avcodec,tests}: rename the bundled Mesa AV1 vulkan video
headers

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.

(cherry picked from commit e06ce6d2b45edac4a2df04f304e18d4727417d24)
---
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 ec57e53e300f9..eb25707ef5db9 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -1284,7 +1284,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
@@ -1306,7 +1306,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 b28e3fe0bde85..51f44dd54314d 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 a697c00593c63..e2f37b4e6e0dc 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 c46236c457238..c91589eee2bfe 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 c575789dd55e7..8bb58b61f144e 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:
3 changes: 2 additions & 1 deletion packages/f/ffmpeg/package.yml
@@ -1,6 +1,6 @@
name : ffmpeg
version : 6.1.1
release : 149
release : 150
source :
- https://ffmpeg.org/releases/ffmpeg-6.1.1.tar.gz : b0aee531e4a91fed6bc031445dfc3ad8eb36de1fcb0fa2acdb589ecc9f8dc9cb
homepage : https://www.ffmpeg.org/
Expand Down Expand Up @@ -62,6 +62,7 @@ builddeps :
- xvidcore-devel
setup : |
%patch -p1 -i $pkgfiles/add-av_stream_get_first_dts-for-chromium.patch
%patch -p1 -i $pkgfiles/ftbfs-vulkan-headers.patch
./configure \
--enable-gcrypt \
Expand Down
6 changes: 3 additions & 3 deletions packages/f/ffmpeg/pspec_x86_64.xml
Expand Up @@ -78,7 +78,7 @@
</Description>
<PartOf>programming.devel</PartOf>
<RuntimeDependencies>
<Dependency release="149">ffmpeg</Dependency>
<Dependency release="150">ffmpeg</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/libavcodec/ac3_parser.h</Path>
Expand Down Expand Up @@ -308,8 +308,8 @@
</Files>
</Package>
<History>
<Update release="149">
<Date>2024-03-03</Date>
<Update release="150">
<Date>2024-04-14</Date>
<Version>6.1.1</Version>
<Comment>Packaging update</Comment>
<Name>Reilly Brogan</Name>
Expand Down

0 comments on commit db7a037

Please sign in to comment.