[FFmpeg-devel] [PATCH] avcodec/nvenc: add compile time check for outputRecoveryPointSEI for HEVC

Martin Storsjö martin at martin.st
Tue Feb 4 15:38:04 EET 2025


On Tue, 4 Feb 2025, James Almer wrote:

> Fixes compilation when using API headers older than 12.0
>
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> libavcodec/nvenc.c | 2 ++
> libavcodec/nvenc.h | 5 +++++
> 2 files changed, 7 insertions(+)
>
> diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
> index c359c2bc8a..eea3e8d703 100644
> --- a/libavcodec/nvenc.c
> +++ b/libavcodec/nvenc.c
> @@ -1462,7 +1462,9 @@ static av_cold int nvenc_setup_hevc_config(AVCodecContext *avctx)
>         hevc->intraRefreshPeriod = cc->gopLength;
>         hevc->intraRefreshCnt = cc->gopLength - 1;
>         cc->gopLength = NVENC_INFINITE_GOPLENGTH;
> +#ifdef NVENC_HAVE_OUTPUT_RECOVERY_POINT_SEI
>         hevc->outputRecoveryPointSEI = 1;
> +#endif
> #ifdef NVENC_HAVE_SINGLE_SLICE_INTRA_REFRESH
>         hevc->singleSliceIntraRefresh = ctx->single_slice_intra_refresh;
> #endif
> diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h
> index 341a242cf7..d395221870 100644
> --- a/libavcodec/nvenc.h
> +++ b/libavcodec/nvenc.h
> @@ -78,6 +78,11 @@ typedef void ID3D11Device;
> #define NVENC_HAVE_SINGLE_SLICE_INTRA_REFRESH
> #endif
>
> +// SDK 12.0 compile time feature checks
> +#if NVENCAPI_CHECK_VERSION(12, 0)
> +#define NVENC_HAVE_OUTPUT_RECOVERY_POINT_SEI
> +#endif
> +
> // SDK 12.1 compile time feature checks
> #if NVENCAPI_CHECK_VERSION(12, 1)
> #define NVENC_NO_DEPRECATED_RC
> -- 
> 2.48.1

Thanks, this does indeed seem to fix compilation in my setup.

// Martin



More information about the ffmpeg-devel mailing list