Quellcode durchsuchen

obs-qsv11: Fix bframe=0 not working

Fixes obsproject/obs-studio#3979.
Lin vor 4 Jahren
Ursprung
Commit
f4a76f9daa

+ 4 - 0
plugins/obs-qsv11/QSV_Encoder.cpp

@@ -394,9 +394,13 @@ enum qsv_cpu_platform qsv_get_cpu_platform()
 	case 0x4e:
 	case 0x5e:
 		return QSV_CPU_PLATFORM_SKL;
+	case 0x5c:
+		return QSV_CPU_PLATFORM_APL;
 	case 0x8e:
 	case 0x9e:
 		return QSV_CPU_PLATFORM_KBL;
+	case 0x7a:
+		return QSV_CPU_PLATFORM_GLK;
 	case 0x66:
 		return QSV_CPU_PLATFORM_CNL;
 	case 0x7d:

+ 2 - 0
plugins/obs-qsv11/QSV_Encoder.h

@@ -117,7 +117,9 @@ enum qsv_cpu_platform {
 	QSV_CPU_PLATFORM_HSW,
 	QSV_CPU_PLATFORM_BDW,
 	QSV_CPU_PLATFORM_SKL,
+	QSV_CPU_PLATFORM_APL,
 	QSV_CPU_PLATFORM_KBL,
+	QSV_CPU_PLATFORM_GLK,
 	QSV_CPU_PLATFORM_CNL,
 	QSV_CPU_PLATFORM_ICL,
 	QSV_CPU_PLATFORM_INTEL

+ 4 - 1
plugins/obs-qsv11/QSV_Encoder_Internal.cpp

@@ -323,7 +323,10 @@ bool QSV_Encoder_Internal::InitParams(qsv_param_t *pParams)
 
 	mfxStatus sts = m_pmfxENC->Query(&m_mfxEncParams, &m_mfxEncParams);
 	if (sts == MFX_ERR_UNSUPPORTED || sts == MFX_ERR_UNDEFINED_BEHAVIOR) {
-		m_mfxEncParams.mfx.LowPower = MFX_CODINGOPTION_OFF;
+		if (m_mfxEncParams.mfx.LowPower == MFX_CODINGOPTION_ON) {
+			m_mfxEncParams.mfx.LowPower = MFX_CODINGOPTION_OFF;
+			m_co2.LookAheadDepth = 0;
+		}
 	}
 
 	return true;