mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-11 09:59:50 +00:00
avcodec/nvenc: add multiple reference frames support
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
This commit is contained in:
parent
e929b2f248
commit
567b5e33d9
@ -403,6 +403,19 @@ static int nvenc_check_capabilities(AVCodecContext *avctx)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef NVENC_HAVE_MULTIPLE_REF_FRAMES
|
||||
ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_MULTIPLE_REF_FRAMES);
|
||||
if(avctx->refs != NV_ENC_NUM_REF_FRAMES_AUTOSELECT && ret <= 0) {
|
||||
av_log(avctx, AV_LOG_VERBOSE, "Multiple reference frames are not supported\n");
|
||||
return AVERROR(ENOSYS);
|
||||
}
|
||||
#else
|
||||
if(avctx->refs != 0) {
|
||||
av_log(avctx, AV_LOG_VERBOSE, "Multiple reference frames need SDK 9.1 at build time\n");
|
||||
return AVERROR(ENOSYS);
|
||||
}
|
||||
#endif
|
||||
|
||||
ctx->support_dyn_bitrate = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_DYN_BITRATE_CHANGE);
|
||||
|
||||
return 0;
|
||||
@ -1010,6 +1023,11 @@ static av_cold int nvenc_setup_h264_config(AVCodecContext *avctx)
|
||||
h264->useBFramesAsRef = ctx->b_ref_mode;
|
||||
#endif
|
||||
|
||||
#ifdef NVENC_HAVE_MULTIPLE_REF_FRAMES
|
||||
h264->numRefL0 = avctx->refs;
|
||||
h264->numRefL1 = avctx->refs;
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1094,6 +1112,11 @@ static av_cold int nvenc_setup_hevc_config(AVCodecContext *avctx)
|
||||
hevc->useBFramesAsRef = ctx->b_ref_mode;
|
||||
#endif
|
||||
|
||||
#ifdef NVENC_HAVE_MULTIPLE_REF_FRAMES
|
||||
hevc->numRefL0 = avctx->refs;
|
||||
hevc->numRefL1 = avctx->refs;
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -54,6 +54,11 @@ typedef void ID3D11Device;
|
||||
#define NVENC_HAVE_HEVC_BFRAME_REF_MODE
|
||||
#endif
|
||||
|
||||
// SDK 9.1 compile time feature checks
|
||||
#if NVENCAPI_CHECK_VERSION(9, 1)
|
||||
#define NVENC_HAVE_MULTIPLE_REF_FRAMES
|
||||
#endif
|
||||
|
||||
typedef struct NvencSurface
|
||||
{
|
||||
NV_ENC_INPUT_PTR input_surface;
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 58
|
||||
#define LIBAVCODEC_VERSION_MINOR 59
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
#define LIBAVCODEC_VERSION_MICRO 101
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user