summaryrefslogtreecommitdiffstats
path: root/libhb/handbrake/qsv_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'libhb/handbrake/qsv_common.h')
-rw-r--r--libhb/handbrake/qsv_common.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/libhb/handbrake/qsv_common.h b/libhb/handbrake/qsv_common.h
index 611762fa6..cdd48935a 100644
--- a/libhb/handbrake/qsv_common.h
+++ b/libhb/handbrake/qsv_common.h
@@ -85,6 +85,7 @@ int hb_qsv_audio_encoder_is_enabled(int encoder);
int hb_qsv_info_init();
void hb_qsv_info_print();
hb_qsv_info_t* hb_qsv_info_get(int encoder);
+int qsv_hardware_generation(int cpu_platform);
/* Automatically load and unload any required MFX plug-ins */
hb_list_t* hb_qsv_load_plugins (hb_qsv_info_t *info, mfxSession session, mfxVersion version);
@@ -110,6 +111,24 @@ enum
HB_QSV_PARAM_UNSUPPORTED,
};
+/*
+ * * Determine the "generation" of QSV hardware based on the CPU microarchitecture.
+ * * Anything unknown is assumed to be more recent than the latest known generation.
+ * * This avoids having to order the hb_cpu_platform enum depending on QSV hardware.
+ * */
+enum
+{
+ QSV_G0, // third party hardware
+ QSV_G1, // Sandy Bridge or equivalent
+ QSV_G2, // Ivy Bridge or equivalent
+ QSV_G3, // Haswell or equivalent
+ QSV_G4, // Broadwell or equivalent
+ QSV_G5, // Skylake or equivalent
+ QSV_G6, // Kaby Lake or equivalent
+ QSV_G7, // Ice Lake or equivalent
+ QSV_FU, // always last (future processors)
+};
+
typedef struct
{
/*