summaryrefslogtreecommitdiffstats
path: root/libhb/qsv_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'libhb/qsv_common.c')
-rw-r--r--libhb/qsv_common.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libhb/qsv_common.c b/libhb/qsv_common.c
index cc95e6a2d..97348dd43 100644
--- a/libhb/qsv_common.c
+++ b/libhb/qsv_common.c
@@ -1557,7 +1557,7 @@ int hb_qsv_param_parse(hb_qsv_param_t *param, hb_qsv_info_t *info,
return error ? HB_QSV_PARAM_BAD_VALUE : HB_QSV_PARAM_OK;
}
-int hb_qsv_profile_parse(hb_qsv_param_t *param, hb_qsv_info_t *info, const char *profile_key)
+int hb_qsv_profile_parse(hb_qsv_param_t *param, hb_qsv_info_t *info, const char *profile_key, const int codec)
{
hb_triplet_t *profile = NULL;
if (profile_key != NULL && *profile_key && strcasecmp(profile_key, "auto"))
@@ -1590,6 +1590,15 @@ int hb_qsv_profile_parse(hb_qsv_param_t *param, hb_qsv_info_t *info, const char
}
param->videoParam->mfx.CodecProfile = profile->value;
}
+ /* HEVC 10 bits defautls to Main 10 */
+ else if (((profile_key != NULL && !strcasecmp(profile_key, "auto")) || profile_key == NULL) &&
+ codec == HB_VCODEC_QSV_H265_10BIT &&
+ param->videoParam->mfx.CodecId == MFX_CODEC_HEVC &&
+ qsv_hardware_generation(hb_get_cpu_platform()) >= QSV_G6)
+ {
+ profile = &hb_qsv_h265_profiles[1];
+ param->videoParam->mfx.CodecProfile = profile->value;
+ }
return 0;
}