[FFmpeg-devel] [PATCH 3/3] nvenc: check sdk 10.0 ptrs at runtime

Timo Rothenpieler timo at rothenpieler.org
Wed Jul 15 18:19:08 EEST 2020


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, ...


More information about the ffmpeg-devel mailing list