[FFmpeg-devel] [PATCH 3/3] nvenc: check sdk 10.0 ptrs at runtime
Wang Bin
wbsecg1 at gmail.com
Thu Jul 16 05:29:50 EEST 2020
Timo Rothenpieler <timo at rothenpieler.org> 于2020年7月15日周三 下午11:19写道:
> On 15.07.2020 16:34, wangbin wrote:
> > From: wang-bin <wbsecg1 at gmail.com>
> >
> > ---
> > libavcodec/nvenc.c | 11 ++++++-----
> > 1 file changed, 6 insertions(+), 5 deletions(-)
> >
> > diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
> > index cec59f02f3..c421c292c8 100644
> > --- a/libavcodec/nvenc.c
> > +++ b/libavcodec/nvenc.c
> > @@ -1248,11 +1248,12 @@ static av_cold int
> nvenc_setup_encoder(AVCodecContext *avctx)
> > #ifdef NVENC_HAVE_NEW_PRESETS
> > ctx->init_encode_params.tuningInfo = ctx->tuning_info;
> >
> > - nv_status =
> p_nvenc->nvEncGetEncodePresetConfigEx(ctx->nvencoder,
> > - ctx->init_encode_params.encodeGUID,
> > - ctx->init_encode_params.presetGUID,
> > - ctx->init_encode_params.tuningInfo,
> > - &preset_config);
> > + if (p_nvenc->nvEncGetEncodePresetConfigEx)
> > + nv_status =
> p_nvenc->nvEncGetEncodePresetConfigEx(ctx->nvencoder,
> > + ctx->init_encode_params.encodeGUID,
> > + ctx->init_encode_params.presetGUID,
> > + ctx->init_encode_params.tuningInfo,
> > + &preset_config);
> > #endif
> > } else {
> > #ifdef NVENC_HAVE_NEW_PRESETS
> >
>
> Same here. Just not calling that function will lead to weird behaviour
> down the chain.
> Needs proper handling plus error message.
>
> This will also be the case for a lot of failure cases where non-existent
> parameters for the old version are passed to the older driver.
> Like, newer profiles, entire new options, ...
>
> If a new parameter is not zero, or a new parameter value is set, check
driver version and on old drivers give a warning about a new driver is
required.
More information about the ffmpeg-devel
mailing list