diff --git a/plugins/obs-qsv11/QSV_Encoder_Internal.cpp b/plugins/obs-qsv11/QSV_Encoder_Internal.cpp index c7ed87899..35cee6626 100644 --- a/plugins/obs-qsv11/QSV_Encoder_Internal.cpp +++ b/plugins/obs-qsv11/QSV_Encoder_Internal.cpp @@ -212,7 +212,8 @@ bool QSV_Encoder_Internal::InitParams(qsv_param_t *pParams) m_mfxEncParams.mfx.GopRefDist = pParams->nbFrames + 1; enum qsv_cpu_platform qsv_platform = qsv_get_cpu_platform(); - if ((qsv_platform >= QSV_CPU_PLATFORM_ICL) && + if ((qsv_platform >= QSV_CPU_PLATFORM_ICL || + qsv_platform == QSV_CPU_PLATFORM_UNKNOWN) && (pParams->nbFrames == 0) && (m_ver.Major == 1 && m_ver.Minor >= 31)) { m_mfxEncParams.mfx.LowPower = MFX_CODINGOPTION_ON; diff --git a/plugins/obs-qsv11/obs-qsv11.c b/plugins/obs-qsv11/obs-qsv11.c index 347ba3e5f..69698dc10 100644 --- a/plugins/obs-qsv11/obs-qsv11.c +++ b/plugins/obs-qsv11/obs-qsv11.c @@ -189,7 +189,8 @@ static inline void add_strings(obs_property_t *list, const char *const *strings) static inline bool is_skl_or_greater_platform() { enum qsv_cpu_platform plat = qsv_get_cpu_platform(); - return (plat >= QSV_CPU_PLATFORM_SKL); + return (plat >= QSV_CPU_PLATFORM_SKL || + plat == QSV_CPU_PLATFORM_UNKNOWN); } static bool update_latency(obs_data_t *settings) @@ -314,7 +315,8 @@ static bool profile_modified(obs_properties_t *ppts, obs_property_t *p, const char *profile = obs_data_get_string(settings, "profile"); enum qsv_cpu_platform plat = qsv_get_cpu_platform(); bool bVisible = ((astrcmpi(profile, "high") == 0) && - (plat >= QSV_CPU_PLATFORM_ICL)); + (plat >= QSV_CPU_PLATFORM_ICL || + plat == QSV_CPU_PLATFORM_UNKNOWN)); p = obs_properties_get(ppts, "CQM"); obs_property_set_visible(p, bVisible); return true; @@ -325,7 +327,9 @@ static inline void add_rate_controls(obs_property_t *list, { enum qsv_cpu_platform plat = qsv_get_cpu_platform(); while (rc->name) { - if (!rc->haswell_or_greater || plat >= QSV_CPU_PLATFORM_HSW) + if (!rc->haswell_or_greater || + (plat >= QSV_CPU_PLATFORM_HSW || + plat == QSV_CPU_PLATFORM_UNKNOWN)) obs_property_list_add_string(list, rc->name, rc->name); rc++; } @@ -818,7 +822,8 @@ static inline void cap_resolution(obs_encoder_t *encoder, info->height = height; info->width = width; - if (qsv_platform <= QSV_CPU_PLATFORM_IVB) { + if (qsv_platform <= QSV_CPU_PLATFORM_IVB && + qsv_platform != QSV_CPU_PLATFORM_UNKNOWN) { if (width > 1920) { info->width = 1920; }