[packages/ffmpeg] up to 6.1.2

atler atler at pld-linux.org
Sat Aug 3 23:45:56 CEST 2024


commit 7b009d967bbf09a6646a4929a869f42e56c6887b
Author: Jan Palus <atler at pld-linux.org>
Date:   Sat Aug 3 23:45:18 2024 +0200

    up to 6.1.2

 ffmpeg-nvenc.patch         | 107 ------------------------------
 ffmpeg-vulkan1.3.280.patch |  20 +++---
 ffmpeg.spec                |  12 ++--
 gcc14.patch                | 162 ---------------------------------------------
 4 files changed, 14 insertions(+), 287 deletions(-)
---
diff --git a/ffmpeg.spec b/ffmpeg.spec
index d29fe66..5424015 100644
--- a/ffmpeg.spec
+++ b/ffmpeg.spec
@@ -132,8 +132,8 @@ Summary:	FFmpeg - a very fast video and audio converter
 Summary(pl.UTF-8):	FFmpeg - szybki konwerter audio/wideo
 Name:		ffmpeg
 # NOTE: 7.0 prepared on DEVEL-7 branch, but other software is not ready (e.g. xine-lib 1.2.13, gstreamer-libav 1.24.2)
-Version:	6.1.1
-Release:	5
+Version:	6.1.2
+Release:	1
 # LGPL or GPL, chosen at configure time (GPL version is more featured)
 # GPL: frei0r libcdio libdavs2 rubberband vidstab x264 x265 xavs xavs2 xvid
 # v3 (allows *GPLv3 or Apache-licensed libs): gmp lensfun opencore-amr vmaf vo-*enc rkmpp
@@ -141,14 +141,12 @@ Release:	5
 License:	GPL v3+ with LGPL v3+ parts
 Group:		Applications/Multimedia
 Source0:	https://ffmpeg.org/releases/%{name}-%{version}.tar.xz
-# Source0-md5:	341d719415b7f95bb59f5016f2864ac6
+# Source0-md5:	42f9bb3aacdd5c5907d1af1811738c00
 Patch0:		%{name}-omx-libnames.patch
 Patch1:		%{name}-atadenoise.patch
 Patch2:		opencv4.patch
 Patch3:		v4l2-request-hwdec.patch
-Patch4:		%{name}-vulkan1.3.280.patch
-Patch5:		%{name}-nvenc.patch
-Patch6:		gcc14.patch
+Patch4:		ffmpeg-vulkan1.3.280.patch
 URL:		https://ffmpeg.org/
 %{?with_avisynth:BuildRequires:	AviSynthPlus-devel >= 3.7.3}
 %{?with_decklink:BuildRequires:	Blackmagic_DeckLink_SDK >= 10.11}
@@ -576,8 +574,6 @@ Dokumentacja pakietu FFmpeg w formacie HTML.
 %patch3 -p1
 %endif
 %patch4 -p1
-%patch5 -p1
-%patch6 -p1
 
 # package the grep result for mplayer, the result formatted as ./mplayer/configure
 cat <<EOF > ffmpeg-avconfig
diff --git a/ffmpeg-nvenc.patch b/ffmpeg-nvenc.patch
deleted file mode 100644
index c92cd8b..0000000
--- a/ffmpeg-nvenc.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 43b417d516b0fabbec1f02120d948f636b8a018e Mon Sep 17 00:00:00 2001
-From: Timo Rothenpieler <timo at rothenpieler.org>
-Date: Sun, 31 Mar 2024 18:25:15 +0200
-Subject: [PATCH] avcodec/nvenc: stop using long deprecated format specifiers
-
----
- libavcodec/nvenc.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
-index fd73af2a32..0cb3b87c67 100644
---- a/libavcodec/nvenc.c
-+++ b/libavcodec/nvenc.c
-@@ -1689,15 +1689,15 @@ static NV_ENC_BUFFER_FORMAT nvenc_map_buffer_format(enum AVPixelFormat pix_fmt)
- {
-     switch (pix_fmt) {
-     case AV_PIX_FMT_YUV420P:
--        return NV_ENC_BUFFER_FORMAT_YV12_PL;
-+        return NV_ENC_BUFFER_FORMAT_YV12;
-     case AV_PIX_FMT_NV12:
--        return NV_ENC_BUFFER_FORMAT_NV12_PL;
-+        return NV_ENC_BUFFER_FORMAT_NV12;
-     case AV_PIX_FMT_P010:
-     case AV_PIX_FMT_P016:
-         return NV_ENC_BUFFER_FORMAT_YUV420_10BIT;
-     case AV_PIX_FMT_GBRP:
-     case AV_PIX_FMT_YUV444P:
--        return NV_ENC_BUFFER_FORMAT_YUV444_PL;
-+        return NV_ENC_BUFFER_FORMAT_YUV444;
-     case AV_PIX_FMT_GBRP16:
-     case AV_PIX_FMT_YUV444P16:
-         return NV_ENC_BUFFER_FORMAT_YUV444_10BIT;
--- 
-2.25.1
-
-From 06c2a2c425f22e7dba5cad909737a631cc676e3f Mon Sep 17 00:00:00 2001
-From: Timo Rothenpieler <timo at rothenpieler.org>
-Date: Sun, 31 Mar 2024 18:39:49 +0200
-Subject: [PATCH] avcodec/nvenc: support SDK 12.2 bit depth API
-
----
- libavcodec/nvenc.c | 15 +++++++++++++++
- libavcodec/nvenc.h |  5 +++++
- 2 files changed, 20 insertions(+)
-
-diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
-index 0cb3b87c67..8327496937 100644
---- a/libavcodec/nvenc.c
-+++ b/libavcodec/nvenc.c
-@@ -1255,6 +1255,11 @@ static av_cold int nvenc_setup_h264_config(AVCodecContext *avctx)
- 
-     h264->level = ctx->level;
- 
-+#ifdef NVENC_HAVE_NEW_BIT_DEPTH_API
-+    h264->inputBitDepth = h264->outputBitDepth =
-+        IS_10BIT(ctx->data_pix_fmt) ? NV_ENC_BIT_DEPTH_10 : NV_ENC_BIT_DEPTH_8;
-+#endif
-+
-     if (ctx->coder >= 0)
-         h264->entropyCodingMode = ctx->coder;
- 
-@@ -1370,7 +1375,12 @@ static av_cold int nvenc_setup_hevc_config(AVCodecContext *avctx)
- 
-     hevc->chromaFormatIDC = IS_YUV444(ctx->data_pix_fmt) ? 3 : 1;
- 
-+#ifdef NVENC_HAVE_NEW_BIT_DEPTH_API
-+    hevc->inputBitDepth = hevc->outputBitDepth =
-+        IS_10BIT(ctx->data_pix_fmt) ? NV_ENC_BIT_DEPTH_10 : NV_ENC_BIT_DEPTH_8;
-+#else
-     hevc->pixelBitDepthMinus8 = IS_10BIT(ctx->data_pix_fmt) ? 2 : 0;
-+#endif
- 
-     hevc->level = ctx->level;
- 
-@@ -1455,8 +1465,13 @@ static av_cold int nvenc_setup_av1_config(AVCodecContext *avctx)
- 
-     av1->chromaFormatIDC = IS_YUV444(ctx->data_pix_fmt) ? 3 : 1;
- 
-+#ifdef NVENC_HAVE_NEW_BIT_DEPTH_API
-+    av1->inputBitDepth = IS_10BIT(ctx->data_pix_fmt) ? NV_ENC_BIT_DEPTH_10 : NV_ENC_BIT_DEPTH_8;
-+    av1->outputBitDepth = (IS_10BIT(ctx->data_pix_fmt) || ctx->highbitdepth) ? NV_ENC_BIT_DEPTH_10 : NV_ENC_BIT_DEPTH_8;
-+#else
-     av1->inputPixelBitDepthMinus8 = IS_10BIT(ctx->data_pix_fmt) ? 2 : 0;
-     av1->pixelBitDepthMinus8 = (IS_10BIT(ctx->data_pix_fmt) || ctx->highbitdepth) ? 2 : 0;
-+#endif
- 
-     if (ctx->b_ref_mode >= 0)
-         av1->useBFramesAsRef = ctx->b_ref_mode;
-diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h
-index 48cdfc58aa..d99d8a0d76 100644
---- a/libavcodec/nvenc.h
-+++ b/libavcodec/nvenc.h
-@@ -83,6 +83,11 @@ typedef void ID3D11Device;
- #define NVENC_NO_DEPRECATED_RC
- #endif
- 
-+// SDK 12.2 compile time feature checks
-+#if NVENCAPI_CHECK_VERSION(12, 2)
-+#define NVENC_HAVE_NEW_BIT_DEPTH_API
-+#endif
-+
- typedef struct NvencSurface
- {
-     NV_ENC_INPUT_PTR input_surface;
--- 
-2.25.1
-
diff --git a/ffmpeg-vulkan1.3.280.patch b/ffmpeg-vulkan1.3.280.patch
index 096ac37..b72174d 100644
--- a/ffmpeg-vulkan1.3.280.patch
+++ b/ffmpeg-vulkan1.3.280.patch
@@ -199,7 +199,7 @@ Co-Authored-by: Dave Airlie <airlied at redhat.com>
                                            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
@@ -207,7 +207,7 @@ Co-Authored-by: Dave Airlie <airlied at redhat.com>
  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_VULKAN)           += vulkan.h vulkan_video.h vulkan_decode.h
  SKIPHEADERS-$(CONFIG_V4L2_M2M)         += v4l2_buffers.h v4l2_context.h v4l2_m2m.h
  SKIPHEADERS-$(CONFIG_ZLIB)             += zlib_wrapper.h
@@ -1018,15 +1018,15 @@ index a43e328d73..7ba8b239cb 100644
  #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.h
 deleted file mode 100644
 index e2f37b4e6e..0000000000
---- a/libavcodec/vulkan_video_codec_av1std_decode.h
+--- a/libavcodec/vulkan_video_codec_av1std_decode_mesa.h
 +++ /dev/null
 @@ -1,36 +0,0 @@
 -/* Copyright 2023 Lynne
@@ -1045,8 +1045,8 @@ index e2f37b4e6e..0000000000
 - * 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.
@@ -1068,7 +1068,7 @@ index e2f37b4e6e..0000000000
 diff --git a/libavcodec/vulkan_video_codec_av1std.h b/libavcodec/vulkan_video_codec_av1std.h
 deleted file mode 100644
 index c91589eee2..0000000000
---- a/libavcodec/vulkan_video_codec_av1std.h
+--- a/libavcodec/vulkan_video_codec_av1std_mesa.h
 +++ /dev/null
 @@ -1,403 +0,0 @@
 -/* Copyright 2023 Lynne
@@ -1087,8 +1087,8 @@ index c91589eee2..0000000000
 - * 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/gcc14.patch b/gcc14.patch
deleted file mode 100644
index 9feedf9..0000000
--- a/gcc14.patch
+++ /dev/null
@@ -1,162 +0,0 @@
---- ffmpeg-6.1.1/libavutil/hwcontext_vaapi.c.orig	2023-11-11 01:25:17.000000000 +0100
-+++ ffmpeg-6.1.1/libavutil/hwcontext_vaapi.c	2024-05-30 13:40:31.574621109 +0200
-@@ -1086,7 +1086,7 @@
-     int err, i, j;
- 
- #if !VA_CHECK_VERSION(1, 1, 0)
--    unsigned long buffer_handle;
-+    uintptr_t buffer_handle;
-     VASurfaceAttribExternalBuffers buffer_desc;
-     VASurfaceAttrib attrs[2] = {
-         {
-@@ -1203,7 +1203,7 @@
- 
-     if (!use_prime2 || vas != VA_STATUS_SUCCESS) {
-         int k;
--        unsigned long buffer_handle;
-+        uintptr_t buffer_handle;
-         VASurfaceAttribExternalBuffers buffer_desc;
-         VASurfaceAttrib buffer_attrs[2] = {
-             {
-From 5860a966d2fffbbda1af0014f0a4d37a21c4f2ca Mon Sep 17 00:00:00 2001
-From: Lynne <dev at lynne.ee>
-Date: Wed, 31 Jan 2024 14:15:04 +0100
-Subject: [PATCH 1/1] lavfi/vsrc_testsrc_vulkan: fix -Wint-conversion
-
-While VK_NULL_HANDLE is equivalent to NULL on 64-bit platforms, the same is not
-true across all platforms.
-
-Fixes building with gcc-14.
----
- libavfilter/vsrc_testsrc_vulkan.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libavfilter/vsrc_testsrc_vulkan.c b/libavfilter/vsrc_testsrc_vulkan.c
-index 8761c21dfd..1720bfac5e 100644
---- a/libavfilter/vsrc_testsrc_vulkan.c
-+++ b/libavfilter/vsrc_testsrc_vulkan.c
-@@ -231,7 +231,7 @@ static int testsrc_vulkan_activate(AVFilterContext *ctx)
-                 return AVERROR(ENOMEM);
- 
-             err = ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->pl, s->picref, NULL,
--                                              NULL, &s->opts, sizeof(s->opts));
-+                                              VK_NULL_HANDLE, &s->opts, sizeof(s->opts));
-             if (err < 0)
-                 return err;
-         }
-@@ -250,7 +250,7 @@ static int testsrc_vulkan_activate(AVFilterContext *ctx)
-     frame->sample_aspect_ratio = s->sar;
-     if (!s->draw_once) {
-         err = ff_vk_filter_process_simple(&s->vkctx, &s->e, &s->pl, frame, NULL,
--                                          NULL, &s->opts, sizeof(s->opts));
-+                                          VK_NULL_HANDLE, &s->opts, sizeof(s->opts));
-         if (err < 0) {
-             av_frame_free(&frame);
-             return err;
--- 
-2.25.1
-
-From 2f24f10d9cf34ddce274496c4daa73f732d370c1 Mon Sep 17 00:00:00 2001
-From: Sam James <sam at gentoo.org>
-Date: Wed, 20 Dec 2023 12:32:43 +0000
-Subject: [PATCH] libavcodec: fix -Wint-conversion in vulkan
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf8
-Content-Transfer-Encoding: 8bit
-
-FIx warnings (soon to be errors in GCC 14, already so in Clang 15):
-```
-src/libavcodec/vulkan_av1.c: In function ‘vk_av1_create_params’:
-src/libavcodec/vulkan_av1.c:183:43: error: initialization of ‘long long unsigned int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
-  183 |         .videoSessionParametersTemplate = NULL,
-      |                                           ^~~~
-src/libavcodec/vulkan_av1.c:183:43: note: (near initialization for ‘(anonymous).videoSessionParametersTemplate’)
-```
-
-Use Vulkan's VK_NULL_HANDLE instead of bare NULL.
-
-Fix Trac ticket #10724.
-
-Was reported downstream in Gentoo at https://bugs.gentoo.org/919067.
-
-Signed-off-by: Sam James <sam at gentoo.org>
----
- libavcodec/vulkan_av1.c    | 2 +-
- libavcodec/vulkan_decode.c | 6 +++---
- libavcodec/vulkan_h264.c   | 2 +-
- libavcodec/vulkan_hevc.c   | 2 +-
- libavcodec/vulkan_video.c  | 2 +-
- 5 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
-index 4998bf7ebc..9730e4b08d 100644
---- a/libavcodec/vulkan_av1.c
-+++ b/libavcodec/vulkan_av1.c
-@@ -180,7 +180,7 @@ static int vk_av1_create_params(AVCodecContext *avctx, AVBufferRef **buf)
-         .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
-         .pNext = &av1_params,
-         .videoSession = ctx->common.session,
--        .videoSessionParametersTemplate = NULL,
-+        .videoSessionParametersTemplate = VK_NULL_HANDLE,
-     };
- 
-     err = ff_vk_decode_create_params(buf, avctx, ctx, &session_params_create);
-diff --git a/libavcodec/vulkan_decode.c b/libavcodec/vulkan_decode.c
-index a89d84fcaa..fdbcbb450a 100644
---- a/libavcodec/vulkan_decode.c
-+++ b/libavcodec/vulkan_decode.c
-@@ -188,9 +188,9 @@ int ff_vk_decode_prepare_frame(FFVulkanDecodeContext *dec, AVFrame *pic,
-         return 0;
- 
-     vkpic->dpb_frame     = NULL;
--    vkpic->img_view_ref  = NULL;
--    vkpic->img_view_out  = NULL;
--    vkpic->img_view_dest = NULL;
-+    vkpic->img_view_ref  = VK_NULL_HANDLE;
-+    vkpic->img_view_out  = VK_NULL_HANDLE;
-+    vkpic->img_view_dest = VK_NULL_HANDLE;
- 
-     vkpic->destroy_image_view = vk->DestroyImageView;
-     vkpic->wait_semaphores = vk->WaitSemaphores;
-diff --git a/libavcodec/vulkan_h264.c b/libavcodec/vulkan_h264.c
-index e727aafb16..39c123ddca 100644
---- a/libavcodec/vulkan_h264.c
-+++ b/libavcodec/vulkan_h264.c
-@@ -315,7 +315,7 @@ static int vk_h264_create_params(AVCodecContext *avctx, AVBufferRef **buf)
-         .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
-         .pNext = &h264_params,
-         .videoSession = ctx->common.session,
--        .videoSessionParametersTemplate = NULL,
-+        .videoSessionParametersTemplate = VK_NULL_HANDLE,
-     };
- 
-     /* SPS list */
-diff --git a/libavcodec/vulkan_hevc.c b/libavcodec/vulkan_hevc.c
-index 99fdcf3b45..033172cbd6 100644
---- a/libavcodec/vulkan_hevc.c
-+++ b/libavcodec/vulkan_hevc.c
-@@ -653,7 +653,7 @@ static int vk_hevc_create_params(AVCodecContext *avctx, AVBufferRef **buf)
-         .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
-         .pNext = &h265_params,
-         .videoSession = ctx->common.session,
--        .videoSessionParametersTemplate = NULL,
-+        .videoSessionParametersTemplate = VK_NULL_HANDLE,
-     };
- 
-     HEVCHeaderSet *hdr;
-diff --git a/libavcodec/vulkan_video.c b/libavcodec/vulkan_video.c
-index 5fa8292b28..fb20315db4 100644
---- a/libavcodec/vulkan_video.c
-+++ b/libavcodec/vulkan_video.c
-@@ -287,7 +287,7 @@ av_cold void ff_vk_video_common_uninit(FFVulkanContext *s,
-     if (common->session) {
-         vk->DestroyVideoSessionKHR(s->hwctx->act_dev, common->session,
-                                    s->hwctx->alloc);
--        common->session = NULL;
-+        common->session = VK_NULL_HANDLE;
-     }
- 
-     if (common->nb_mem && common->mem)
--- 
-2.25.1
-
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/ffmpeg.git/commitdiff/7b009d967bbf09a6646a4929a869f42e56c6887b



More information about the pld-cvs-commit mailing list