@ -84,7 +84,9 @@ static const struct {
{ MFX_RATECONTROL_CBR , " CBR " } ,
{ MFX_RATECONTROL_VBR , " VBR " } ,
{ MFX_RATECONTROL_CQP , " CQP " } ,
# if QSV_HAVE_AVBR
{ MFX_RATECONTROL_AVBR , " AVBR " } ,
# endif
# if QSV_HAVE_LA
{ MFX_RATECONTROL_LA , " LA " } ,
# endif
@ -163,11 +165,14 @@ static void dump_video_param(AVCodecContext *avctx, QSVEncContext *q,
} else if ( info - > RateControlMethod = = MFX_RATECONTROL_CQP ) {
av_log ( avctx , AV_LOG_VERBOSE , " QPI: % " PRIu16 " ; QPP: % " PRIu16 " ; QPB: % " PRIu16 " \n " ,
info - > QPI , info - > QPP , info - > QPB ) ;
} else if ( info - > RateControlMethod = = MFX_RATECONTROL_AVBR ) {
}
# if QSV_HAVE_AVBR
else if ( info - > RateControlMethod = = MFX_RATECONTROL_AVBR ) {
av_log ( avctx , AV_LOG_VERBOSE ,
" TargetKbps: % " PRIu16 " ; Accuracy: % " PRIu16 " ; Convergence: % " PRIu16 " \n " ,
info - > TargetKbps , info - > Accuracy , info - > Convergence ) ;
}
# endif
# if QSV_HAVE_LA
else if ( info - > RateControlMethod = = MFX_RATECONTROL_LA
# if QSV_HAVE_LA_HRD
@ -333,10 +338,14 @@ static int select_rc_mode(AVCodecContext *avctx, QSVEncContext *q)
else if ( avctx - > rc_max_rate = = avctx - > bit_rate ) {
rc_mode = MFX_RATECONTROL_CBR ;
rc_desc = " constant bitrate (CBR) " ;
} else if ( ! avctx - > rc_max_rate ) {
}
# if QSV_HAVE_AVBR
else if ( ! avctx - > rc_max_rate ) {
rc_mode = MFX_RATECONTROL_AVBR ;
rc_desc = " average variable bitrate (AVBR) " ;
} else {
}
# endif
else {
rc_mode = MFX_RATECONTROL_VBR ;
rc_desc = " variable bitrate (VBR) " ;
}
@ -522,11 +531,13 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
q - > param . mfx . QPB = av_clip ( quant * fabs ( avctx - > b_quant_factor ) + avctx - > b_quant_offset , 0 , 51 ) ;
break ;
# if QSV_HAVE_AVBR
case MFX_RATECONTROL_AVBR :
q - > param . mfx . TargetKbps = avctx - > bit_rate / 1000 ;
q - > param . mfx . Convergence = q - > avbr_convergence ;
q - > param . mfx . Accuracy = q - > avbr_accuracy ;
break ;
# endif
# if QSV_HAVE_LA
case MFX_RATECONTROL_LA :
q - > param . mfx . TargetKbps = avctx - > bit_rate / 1000 ;