[FFmpeg-cvslog] vulkan_decode: only create sequence params in end_frame

Lynne git at videolan.org
Mon Apr 14 07:15:58 EEST 2025


ffmpeg | branch: master | Lynne <dev at lynne.ee> | Sat Mar 29 22:44:11 2025 +0000| [79ff1f21c4bcd2b917973357138829d44c3836be] | committer: Lynne

vulkan_decode: only create sequence params in end_frame

We tried to create sequence params in both start_frame and end_frame.
This was redundant.

Just always create them in end_frame.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=79ff1f21c4bcd2b917973357138829d44c3836be
---

 libavcodec/vulkan_av1.c  | 8 --------
 libavcodec/vulkan_h264.c | 9 ---------
 libavcodec/vulkan_hevc.c | 9 ---------
 3 files changed, 26 deletions(-)

diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
index ccb88004b5..0e5958b20b 100644
--- a/libavcodec/vulkan_av1.c
+++ b/libavcodec/vulkan_av1.c
@@ -254,7 +254,6 @@ static int vk_av1_start_frame(AVCodecContext          *avctx,
     AV1DecContext *s = avctx->priv_data;
     const AV1Frame *pic = &s->cur_frame;
     FFVulkanDecodeContext *dec = avctx->internal->hwaccel_priv_data;
-    FFVulkanDecodeShared *ctx = dec->shared_ctx;
 
     AV1VulkanDecodePicture *ap = pic->hwaccel_picture_private;
     FFVulkanDecodePicture *vp = &ap->vp;
@@ -269,13 +268,6 @@ static int vk_av1_start_frame(AVCodecContext          *avctx,
                                                          STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER,
                                                          STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ };
 
-    if (!dec->session_params &&
-        !(ctx->s.extensions & FF_VK_EXT_VIDEO_MAINTENANCE_2)) {
-        err = vk_av1_create_params(avctx, &dec->session_params, ap);
-        if (err < 0)
-            return err;
-    }
-
     if (!ap->frame_id_set) {
         unsigned slot_idx = 0;
         for (unsigned i = 0; i < 32; i++) {
diff --git a/libavcodec/vulkan_h264.c b/libavcodec/vulkan_h264.c
index 73aaed7f6a..2ac031c009 100644
--- a/libavcodec/vulkan_h264.c
+++ b/libavcodec/vulkan_h264.c
@@ -366,20 +366,11 @@ static int vk_h264_start_frame(AVCodecContext          *avctx,
     int err;
     int dpb_slot_index = 0;
     H264Context *h = avctx->priv_data;
-    FFVulkanDecodeContext *dec = avctx->internal->hwaccel_priv_data;
-    FFVulkanDecodeShared *ctx = dec->shared_ctx;
 
     H264Picture *pic = h->cur_pic_ptr;
     H264VulkanDecodePicture *hp = pic->hwaccel_picture_private;
     FFVulkanDecodePicture *vp = &hp->vp;
 
-    if (!dec->session_params &&
-        !(ctx->s.extensions & FF_VK_EXT_VIDEO_MAINTENANCE_2)) {
-        err = vk_h264_create_params(avctx, &dec->session_params);
-        if (err < 0)
-            return err;
-    }
-
     /* Fill in main slot */
     dpb_slot_index = 0;
     for (unsigned slot = 0; slot < H264_MAX_PICTURE_COUNT; slot++) {
diff --git a/libavcodec/vulkan_hevc.c b/libavcodec/vulkan_hevc.c
index e4a946ae0d..4b10da65a0 100644
--- a/libavcodec/vulkan_hevc.c
+++ b/libavcodec/vulkan_hevc.c
@@ -716,8 +716,6 @@ static int vk_hevc_start_frame(AVCodecContext          *avctx,
     int err;
     HEVCContext *h = avctx->priv_data;
     HEVCLayerContext *l = &h->layers[h->cur_layer];
-    FFVulkanDecodeContext *dec = avctx->internal->hwaccel_priv_data;
-    FFVulkanDecodeShared *ctx = dec->shared_ctx;
 
     HEVCFrame *pic = h->cur_frame;
     HEVCVulkanDecodePicture *hp = pic->hwaccel_picture_private;
@@ -726,13 +724,6 @@ static int vk_hevc_start_frame(AVCodecContext          *avctx,
     const HEVCSPS *sps = pps->sps;
     int nb_refs = 0;
 
-    if (!dec->session_params &&
-        !(ctx->s.extensions & FF_VK_EXT_VIDEO_MAINTENANCE_2)) {
-        err = vk_hevc_create_params(avctx, &dec->session_params);
-        if (err < 0)
-            return err;
-    }
-
     hp->h265pic = (StdVideoDecodeH265PictureInfo) {
         .flags = (StdVideoDecodeH265PictureInfoFlags) {
             .IrapPicFlag = IS_IRAP(h),



More information about the ffmpeg-cvslog mailing list