[FFmpeg-cvslog] libavcodec/amfenc: Setting the VBAQ property before the init call.
Dmitrii Ovchinnikov
git at videolan.org
Fri Apr 4 18:58:11 EEST 2025
ffmpeg | branch: master | Dmitrii Ovchinnikov <ovchinnikov.dmitrii at gmail.com> | Mon Mar 31 15:41:08 2025 +0200| [c05ed36b564364302578b461139fbbdf0bfa60df] | committer: Dmitrii Ovchinnikov
libavcodec/amfenc: Setting the VBAQ property before the init call.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c05ed36b564364302578b461139fbbdf0bfa60df
---
libavcodec/amfenc_h264.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/libavcodec/amfenc_h264.c b/libavcodec/amfenc_h264.c
index 3f41befc4c..cfcc5482f0 100644
--- a/libavcodec/amfenc_h264.c
+++ b/libavcodec/amfenc_h264.c
@@ -495,6 +495,16 @@ static av_cold int amf_encode_init_h264(AVCodecContext *avctx)
AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_REF_B_PIC_DELTA_QP, ctx->ref_b_frame_delta_qp);
}
+ if (ctx->rate_control_mode == AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CONSTANT_QP) {
+ AMF_ASSIGN_PROPERTY_BOOL(res, ctx->encoder, AMF_VIDEO_ENCODER_ENABLE_VBAQ, 0);
+ if (ctx->enable_vbaq)
+ av_log(ctx, AV_LOG_WARNING, "VBAQ is not supported by cqp Rate Control Method, automatically disabled\n");
+ } else {
+ if (ctx->enable_vbaq != -1) {
+ AMF_ASSIGN_PROPERTY_BOOL(res, ctx->encoder, AMF_VIDEO_ENCODER_ENABLE_VBAQ, !!ctx->enable_vbaq);
+ }
+ }
+
// Wait inside QueryOutput() if supported by the driver
AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_QUERY_TIMEOUT, 1);
res = ctx->encoder->pVtbl->GetProperty(ctx->encoder, AMF_VIDEO_ENCODER_QUERY_TIMEOUT, &var);
@@ -517,15 +527,6 @@ static av_cold int amf_encode_init_h264(AVCodecContext *avctx)
AMF_ASSIGN_PROPERTY_BOOL(res, ctx->encoder, AMF_VIDEO_ENCODER_RATE_CONTROL_SKIP_FRAME_ENABLE, ((ctx->skip_frame == 0) ? false : true));
}
- if (ctx->rate_control_mode == AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CONSTANT_QP) {
- AMF_ASSIGN_PROPERTY_BOOL(res, ctx->encoder, AMF_VIDEO_ENCODER_ENABLE_VBAQ, 0);
- if (ctx->enable_vbaq)
- av_log(ctx, AV_LOG_WARNING, "VBAQ is not supported by cqp Rate Control Method, automatically disabled\n");
- } else {
- if (ctx->enable_vbaq != -1) {
- AMF_ASSIGN_PROPERTY_BOOL(res, ctx->encoder, AMF_VIDEO_ENCODER_ENABLE_VBAQ, !!ctx->enable_vbaq);
- }
- }
AMF_ASSIGN_PROPERTY_BOOL(res, ctx->encoder, AMF_VIDEO_ENCODER_DE_BLOCKING_FILTER, !!deblocking_filter);
// Keyframe Interval
More information about the ffmpeg-cvslog
mailing list