[FFmpeg-cvslog] avcodec/qsvenc: clip global_quality for ICQ modes.

Gyan Doshi git at videolan.org
Mon Jul 12 07:03:55 EEST 2021


ffmpeg | branch: master | Gyan Doshi <ffmpeg at gyani.pro> | Sun Jul 11 10:26:33 2021 +0530| [1aa9dcd091ed9cebf06c4c6a9c96ff80a54722f4] | committer: Gyan Doshi

avcodec/qsvenc: clip global_quality for ICQ modes.

Allowed range is 1 to 51.

Ref: https://software.intel.com/content/www/us/en/develop/articles/advanced-bitrate-control-methods-in-intel-media-sdk.html

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

 doc/encoders.texi   | 3 ++-
 libavcodec/qsvenc.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index 4c38996372..8fccd73691 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -3119,7 +3119,8 @@ also set (the @option{-qscale} ffmpeg option).
 @option{look_ahead} option is also set.
 
 @item
- at var{ICQ} -- intelligent constant quality otherwise.
+ at var{ICQ} -- intelligent constant quality otherwise. For the ICQ modes, global
+quality range is 1 to 51, with 1 being the best quality.
 @end itemize
 
 @item
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index ca2b42cafd..b9a922d6b9 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -650,7 +650,7 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
     case MFX_RATECONTROL_LA_ICQ:
         q->extco2.LookAheadDepth = q->look_ahead_depth;
     case MFX_RATECONTROL_ICQ:
-        q->param.mfx.ICQQuality  = avctx->global_quality;
+        q->param.mfx.ICQQuality  = av_clip(avctx->global_quality, 1, 51);
         break;
 #endif
 #endif



More information about the ffmpeg-cvslog mailing list