[FFmpeg-cvslog] lavc/vaapi_encode: convert from lambda to qp

Haihao Xiang git at videolan.org
Wed Apr 3 05:39:18 EEST 2024


ffmpeg | branch: release/7.0 | Haihao Xiang <haihao.xiang at intel.com> | Thu Mar 28 14:55:57 2024 +0800| [74e4e900bb52c4a0f5f4fe38e2b7a40239d9e845] | committer: Haihao Xiang

lavc/vaapi_encode: convert from lambda to qp

When AV_CODEC_FLAG_QSCALE is set, the value of avctx->global_quality is
lambda.

Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
(cherry picked from commit 1590a96adc28a150ad641080262499f58158ee24)

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

 libavcodec/vaapi_encode.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c
index c4b5411e68..4d47444f3f 100644
--- a/libavcodec/vaapi_encode.c
+++ b/libavcodec/vaapi_encode.c
@@ -1969,7 +1969,10 @@ rc_mode_found:
         if (ctx->explicit_qp) {
             rc_quality = ctx->explicit_qp;
         } else if (avctx->global_quality > 0) {
-            rc_quality = avctx->global_quality;
+            if (avctx->flags & AV_CODEC_FLAG_QSCALE)
+                rc_quality = avctx->global_quality / FF_QP2LAMBDA;
+            else
+                rc_quality = avctx->global_quality;
         } else {
             rc_quality = ctx->codec->default_quality;
             av_log(avctx, AV_LOG_WARNING, "No quality level set; "



More information about the ffmpeg-cvslog mailing list