From 6533b3e138de860aae5502fb1934eb713c59306e Mon Sep 17 00:00:00 2001 From: Gale Date: Thu, 13 Jul 2023 13:34:32 -0700 Subject: [PATCH] obs-qsv11: Adjust Gop and keyint_sec parameters * Change GopPicSize default to 240 * Remove GopOptFlag * Change keyint_sec default from 3 to 0 * Reduce keyint_sec minimum value from 1 to 0 (for auto) --- plugins/obs-qsv11/QSV_Encoder_Internal.cpp | 7 ++++--- plugins/obs-qsv11/obs-qsv11.c | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/obs-qsv11/QSV_Encoder_Internal.cpp b/plugins/obs-qsv11/QSV_Encoder_Internal.cpp index 0395c0e38..4a779cc4d 100644 --- a/plugins/obs-qsv11/QSV_Encoder_Internal.cpp +++ b/plugins/obs-qsv11/QSV_Encoder_Internal.cpp @@ -232,7 +232,6 @@ mfxStatus QSV_Encoder_Internal::InitParams(qsv_param_t *pParams, else if (codec == QSV_CODEC_HEVC) m_mfxEncParams.mfx.CodecId = MFX_CODEC_HEVC; - m_mfxEncParams.mfx.GopOptFlag = MFX_GOP_STRICT; if (codec == QSV_CODEC_HEVC) { m_mfxEncParams.mfx.NumSlice = 0; m_mfxEncParams.mfx.IdrInterval = 1; @@ -323,8 +322,10 @@ mfxStatus QSV_Encoder_Internal::InitParams(qsv_param_t *pParams, m_mfxEncParams.AsyncDepth = pParams->nAsyncDepth; m_mfxEncParams.mfx.GopPicSize = - (mfxU16)(pParams->nKeyIntSec * pParams->nFpsNum / - (float)pParams->nFpsDen); + (pParams->nKeyIntSec) + ? (mfxU16)(pParams->nKeyIntSec * pParams->nFpsNum / + (float)pParams->nFpsDen) + : 240; if (m_ver.Major == 1 && m_ver.Minor >= 8) { memset(&m_co2, 0, sizeof(mfxExtCodingOption2)); diff --git a/plugins/obs-qsv11/obs-qsv11.c b/plugins/obs-qsv11/obs-qsv11.c index 7537663a9..a39eac0f9 100644 --- a/plugins/obs-qsv11/obs-qsv11.c +++ b/plugins/obs-qsv11/obs-qsv11.c @@ -184,7 +184,7 @@ static void obs_qsv_defaults(obs_data_t *settings, int ver, obs_data_set_default_int(settings, "qpb", 23); obs_data_set_default_int(settings, "icq_quality", 23); - obs_data_set_default_int(settings, "keyint_sec", 3); + obs_data_set_default_int(settings, "keyint_sec", 0); obs_data_set_default_string(settings, "latency", "normal"); obs_data_set_default_int(settings, "bframes", 3); obs_data_set_default_bool(settings, "enhancements", true); @@ -441,7 +441,7 @@ static obs_properties_t *obs_qsv_props(enum qsv_codec codec, void *unused, obs_property_set_modified_callback(prop, profile_modified); - prop = obs_properties_add_int(props, "keyint_sec", TEXT_KEYINT_SEC, 1, + prop = obs_properties_add_int(props, "keyint_sec", TEXT_KEYINT_SEC, 0, 20, 1); obs_property_int_set_suffix(prop, " s");