aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2024-09-27 09:49:35 +0200
committerLynne <dev@lynne.ee>2024-09-27 09:55:39 +0200
commit934be0ff50fbe58aa44bc8a876f07195846d15ea (patch)
tree4fe5cd9eababf0300e0ecbea57bf86df44ecfff3
parentfd1ea75c937ddbd42501025237e5e6221b210ef9 (diff)
downloadffmpeg-934be0ff50fbe58aa44bc8a876f07195846d15ea.tar.gz
vulkan_encode_h264: fix rate control VBV values
The values must be in milliseconds, not bytes.
-rw-r--r--libavcodec/vulkan_encode_h264.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/vulkan_encode_h264.c b/libavcodec/vulkan_encode_h264.c
index 9964ba5b8b..a0a00a3db2 100644
--- a/libavcodec/vulkan_encode_h264.c
+++ b/libavcodec/vulkan_encode_h264.c
@@ -130,12 +130,12 @@ static int init_pic_rc(AVCodecContext *avctx, FFHWBaseEncodePicture *pic,
.consecutiveBFrameCount = FFMAX(ctx->base.b_per_p - 1, 0),
.temporalLayerCount = 0,
};
-
rc_info->pNext = &hp->vkrc_info;
- rc_info->virtualBufferSizeInMs = enc->unit_opts.hrd_buffer_size;
- rc_info->initialVirtualBufferSizeInMs = enc->unit_opts.initial_buffer_fullness;
if (rc_info->rateControlMode > VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR) {
+ rc_info->virtualBufferSizeInMs = (enc->unit_opts.hrd_buffer_size * 1000LL) / avctx->bit_rate;
+ rc_info->initialVirtualBufferSizeInMs = (enc->unit_opts.initial_buffer_fullness * 1000LL) / avctx->bit_rate;
+
hp->vkrc_layer_info = (VkVideoEncodeH264RateControlLayerInfoKHR) {
.sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR,