lavc/qsvenc: set HRD buffer size
authorLi, Zhong <zhong.li@intel.com>
Fri, 1 Dec 2017 08:48:45 +0000 (16:48 +0800)
committerMaxym Dmytrychenko <maxim.d33@gmail.com>
Tue, 12 Dec 2017 12:58:18 +0000 (13:58 +0100)
Hypothetical Reference Decoding (HRD) model assumes that data flows
into a buffer of the fixed size BufferSizeInKB with a constant bitrate.
Smaller BufferSizeInKB means smaller frame size variations,
but more difficult to maintain HRD.

Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
libavcodec/qsvenc.c

index 9db9eb3..f6034c4 100644 (file)
@@ -503,6 +503,7 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
 #if QSV_HAVE_VCM
     case MFX_RATECONTROL_VCM:
 #endif
+        q->param.mfx.BufferSizeInKB   = avctx->rc_buffer_size / 8000;
         q->param.mfx.InitialDelayInKB = avctx->rc_initial_buffer_occupancy / 1000;
         q->param.mfx.TargetKbps       = avctx->bit_rate / 1000;
         q->param.mfx.MaxKbps          = avctx->rc_max_rate / 1000;