[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