From 1a11e15a300ea484b159980862f12cffc0154cef Mon Sep 17 00:00:00 2001 From: pkv Date: Fri, 23 Aug 2019 12:48:19 +0200 Subject: [PATCH 1/2] obs-ffmpeg: Force I-Frame when reconfiguring jim-nvenc This forces an I-Frame when reconfiguring encoding parameters so that the changes apply immediately. --- plugins/obs-ffmpeg/jim-nvenc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/obs-ffmpeg/jim-nvenc.c b/plugins/obs-ffmpeg/jim-nvenc.c index c12166c67..c80ead9ba 100644 --- a/plugins/obs-ffmpeg/jim-nvenc.c +++ b/plugins/obs-ffmpeg/jim-nvenc.c @@ -240,6 +240,8 @@ static bool nvenc_update(void *data, obs_data_t *settings) NV_ENC_RECONFIGURE_PARAMS params = {0}; params.version = NV_ENC_RECONFIGURE_PARAMS_VER; params.reInitEncodeParams = enc->params; + params.resetEncoder = 1; + params.forceIDR = 1; if (FAILED(nv.nvEncReconfigureEncoder(enc->session, ¶ms))) { return false; From adedd967d5c665a5b4230f3c17fda373c62bba13 Mon Sep 17 00:00:00 2001 From: pkv Date: Sat, 24 Aug 2019 18:21:53 -0700 Subject: [PATCH 2/2] obs-ffmpeg: Use NV_FAILED() instead of FAILED() The FAILED() macro is for HRESULT values; NV_FAILED() is what should be used for NVENCSTATUS. --- plugins/obs-ffmpeg/jim-nvenc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/obs-ffmpeg/jim-nvenc.c b/plugins/obs-ffmpeg/jim-nvenc.c index c80ead9ba..374da1dc9 100644 --- a/plugins/obs-ffmpeg/jim-nvenc.c +++ b/plugins/obs-ffmpeg/jim-nvenc.c @@ -243,7 +243,8 @@ static bool nvenc_update(void *data, obs_data_t *settings) params.resetEncoder = 1; params.forceIDR = 1; - if (FAILED(nv.nvEncReconfigureEncoder(enc->session, ¶ms))) { + if (NV_FAILED(nv.nvEncReconfigureEncoder(enc->session, + ¶ms))) { return false; } }