On Mon, 2022-01-24 at 10:59 +0800, Wenbin Chen wrote: > Add b_strategy option to hevc_qsv. By enabling this option, encoder can > use b frames as reference. > > Signed-off-by: Wenbin Chen <wenbin.c...@intel.com> > --- > doc/encoders.texi | 3 +++ > libavcodec/qsvenc.c | 6 ++++-- > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/doc/encoders.texi b/doc/encoders.texi > index 8966610263..6c1c4df57a 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -3403,6 +3403,9 @@ Maximum encoded slice size in bytes. > @item @var{p_strategy} > Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to 0). > > +@item @var{b_strategy} > +This option controls usage of B frames as reference. > + > @item @var{dblk_idc} > This option disable deblocking. It has value in range 0~2. > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > index f311cd9ce4..a8d876d6d9 100644 > --- a/libavcodec/qsvenc.c > +++ b/libavcodec/qsvenc.c > @@ -888,8 +888,6 @@ static int init_video_param(AVCodecContext *avctx, > QSVEncContext *q) > q->extco2.LookAheadDS = q->look_ahead_downsampling; > q->extco2.RepeatPPS = q->repeat_pps ? MFX_CODINGOPTION_ON : > MFX_CODINGOPTION_OFF; > > - if (q->b_strategy >= 0) > - q->extco2.BRefType = q->b_strategy ? MFX_B_REF_PYRAMID : > MFX_B_REF_OFF; > if (q->adaptive_i >= 0) > q->extco2.AdaptiveI = q->adaptive_i ? MFX_CODINGOPTION_ON : > MFX_CODINGOPTION_OFF; > if (q->adaptive_b >= 0) > @@ -910,6 +908,10 @@ static int init_video_param(AVCodecContext *avctx, > QSVEncContext *q) > q->extco2.DisableDeblockingIdc = q->dblk_idc; > #endif > > +#if QSV_VERSION_ATLEAST(1, 8) > + if (q->b_strategy >= 0) > + q->extco2.BRefType = q->b_strategy ? MFX_B_REF_PYRAMID : > MFX_B_REF_OFF; > +#endif > #if QSV_VERSION_ATLEAST(1, 9) > if (avctx->qmin >= 0 && avctx->qmax >= 0 && avctx->qmin > avctx- > >qmax) { > av_log(avctx, AV_LOG_ERROR, "qmin and or qmax are set but > invalid, please make sure min <= max\n");
LGTM, thx -Haihao _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".