[FFmpeg-cvslog] [ffmpeg] branch master updated. ac5303a5b9 hw_base_encode: Support refs option to limit number of references

ffmpeg-git at ffmpeg.org ffmpeg-git at ffmpeg.org
Fri Aug 15 17:58:33 EEST 2025


The branch, master has been updated
       via  ac5303a5b9cdc17e4ebddfdc3203a4c325d42c52 (commit)
      from  7d606ef0ccf2946a4a21ab1ec23486cadc21864b (commit)


- Log -----------------------------------------------------------------
commit ac5303a5b9cdc17e4ebddfdc3203a4c325d42c52
Author:     David Rosca <nowrep at gmail.com>
AuthorDate: Wed Jun 25 08:46:23 2025 +0200
Commit:     Lynne <dev at lynne.ee>
CommitDate: Fri Aug 15 13:55:51 2025 +0000

    hw_base_encode: Support refs option to limit number of references
    
    Set default value to 0 to keep the old behavior of using maximum number
    of references.

diff --git a/libavcodec/d3d12va_encode_hevc.c b/libavcodec/d3d12va_encode_hevc.c
index ce5d1bf110..0aa1a1d3a4 100644
--- a/libavcodec/d3d12va_encode_hevc.c
+++ b/libavcodec/d3d12va_encode_hevc.c
@@ -762,6 +762,7 @@ static const FFCodecDefault d3d12va_encode_hevc_defaults[] = {
     { "b_qoffset",      "0"   },
     { "qmin",           "-1"  },
     { "qmax",           "-1"  },
+    { "refs",           "0"   },
     { NULL },
 };
 
diff --git a/libavcodec/hw_base_encode.c b/libavcodec/hw_base_encode.c
index 33a30c8d10..927aeb4bad 100644
--- a/libavcodec/hw_base_encode.c
+++ b/libavcodec/hw_base_encode.c
@@ -666,6 +666,11 @@ int ff_hw_base_init_gop_structure(FFHWBaseEncodeContext *ctx, AVCodecContext *av
     ctx->ref_l0 = FFMIN(ref_l0, MAX_PICTURE_REFERENCES);
     ctx->ref_l1 = FFMIN(ref_l1, MAX_PICTURE_REFERENCES);
 
+    if (avctx->refs > 0) {
+        ctx->ref_l0 = FFMIN(ctx->ref_l0, avctx->refs);
+        ctx->ref_l1 = FFMIN(ctx->ref_l1, avctx->refs);
+    }
+
     if (flags & FF_HW_FLAG_INTRA_ONLY || avctx->gop_size <= 1) {
         av_log(avctx, AV_LOG_VERBOSE, "Using intra frames only.\n");
         ctx->gop_size = 1;
diff --git a/libavcodec/vaapi_encode_av1.c b/libavcodec/vaapi_encode_av1.c
index 3d8f29d599..9d837f5c6b 100644
--- a/libavcodec/vaapi_encode_av1.c
+++ b/libavcodec/vaapi_encode_av1.c
@@ -1027,6 +1027,7 @@ static const FFCodecDefault vaapi_encode_av1_defaults[] = {
     { "g",              "120" },
     { "qmin",           "1"   },
     { "qmax",           "255" },
+    { "refs",           "0"   },
     { NULL },
 };
 
diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c
index 0cd5b0ac50..27f6551719 100644
--- a/libavcodec/vaapi_encode_h264.c
+++ b/libavcodec/vaapi_encode_h264.c
@@ -1153,6 +1153,7 @@ static const FFCodecDefault vaapi_encode_h264_defaults[] = {
     { "b_qoffset",      "0"   },
     { "qmin",           "-1"  },
     { "qmax",           "-1"  },
+    { "refs",           "0"   },
     { NULL },
 };
 
diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c
index 1539bfbf79..baf0d77c8a 100644
--- a/libavcodec/vaapi_encode_h265.c
+++ b/libavcodec/vaapi_encode_h265.c
@@ -1184,6 +1184,7 @@ static const FFCodecDefault vaapi_encode_h265_defaults[] = {
     { "b_qoffset",      "0"   },
     { "qmin",           "-1"  },
     { "qmax",           "-1"  },
+    { "refs",           "0"   },
     { NULL },
 };
 
diff --git a/libavcodec/vaapi_encode_vp8.c b/libavcodec/vaapi_encode_vp8.c
index 125d760b9b..69a56a17af 100644
--- a/libavcodec/vaapi_encode_vp8.c
+++ b/libavcodec/vaapi_encode_vp8.c
@@ -235,6 +235,7 @@ static const FFCodecDefault vaapi_encode_vp8_defaults[] = {
     { "g",              "120" },
     { "qmin",           "-1"  },
     { "qmax",           "-1"  },
+    { "refs",           "0"   },
     { NULL },
 };
 
diff --git a/libavcodec/vaapi_encode_vp9.c b/libavcodec/vaapi_encode_vp9.c
index e88967a053..ca8de541d9 100644
--- a/libavcodec/vaapi_encode_vp9.c
+++ b/libavcodec/vaapi_encode_vp9.c
@@ -292,6 +292,7 @@ static const FFCodecDefault vaapi_encode_vp9_defaults[] = {
     { "g",              "250" },
     { "qmin",           "-1"  },
     { "qmax",           "-1"  },
+    { "refs",           "0"   },
     { NULL },
 };
 
diff --git a/libavcodec/vulkan_encode_av1.c b/libavcodec/vulkan_encode_av1.c
index 840092cf6d..08ffbfa393 100644
--- a/libavcodec/vulkan_encode_av1.c
+++ b/libavcodec/vulkan_encode_av1.c
@@ -1367,6 +1367,7 @@ static const FFCodecDefault vulkan_encode_av1_defaults[] = {
     { "g",              "300" },
     { "qmin",           "1"   },
     { "qmax",           "255" },
+    { "refs",           "0"   },
     { NULL },
 };
 
diff --git a/libavcodec/vulkan_encode_h264.c b/libavcodec/vulkan_encode_h264.c
index 8bbb4639e6..942e911fb7 100644
--- a/libavcodec/vulkan_encode_h264.c
+++ b/libavcodec/vulkan_encode_h264.c
@@ -1634,6 +1634,7 @@ static const FFCodecDefault vulkan_encode_h264_defaults[] = {
     { "b_qoffset",      "0"   },
     { "qmin",           "-1"  },
     { "qmax",           "-1"  },
+    { "refs",           "0"   },
     { NULL },
 };
 
diff --git a/libavcodec/vulkan_encode_h265.c b/libavcodec/vulkan_encode_h265.c
index f0ec852557..c30b7e8f93 100644
--- a/libavcodec/vulkan_encode_h265.c
+++ b/libavcodec/vulkan_encode_h265.c
@@ -1761,6 +1761,7 @@ static const FFCodecDefault vulkan_encode_h265_defaults[] = {
     { "b_qoffset",      "0"   },
     { "qmin",           "-1"  },
     { "qmax",           "-1"  },
+    { "refs",           "0"   },
     { NULL },
 };
 

-----------------------------------------------------------------------

Summary of changes:
 libavcodec/d3d12va_encode_hevc.c | 1 +
 libavcodec/hw_base_encode.c      | 5 +++++
 libavcodec/vaapi_encode_av1.c    | 1 +
 libavcodec/vaapi_encode_h264.c   | 1 +
 libavcodec/vaapi_encode_h265.c   | 1 +
 libavcodec/vaapi_encode_vp8.c    | 1 +
 libavcodec/vaapi_encode_vp9.c    | 1 +
 libavcodec/vulkan_encode_av1.c   | 1 +
 libavcodec/vulkan_encode_h264.c  | 1 +
 libavcodec/vulkan_encode_h265.c  | 1 +
 10 files changed, 14 insertions(+)


hooks/post-receive
-- 



More information about the ffmpeg-cvslog mailing list