[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