mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-08 12:24:09 +00:00
obs-qsv11: Update Target Usage options
Update target usage setting names from legacy names to VPL names.
This commit is contained in:
parent
c9fd128d74
commit
1d95575088
|
@ -80,10 +80,14 @@ static const struct qsv_rate_control_info qsv_ratecontrols[] = {{"CBR", false},
|
|||
static const char *const qsv_profile_names[] = {"high", "main", "baseline", 0};
|
||||
static const char *const qsv_profile_names_av1[] = {"main", 0};
|
||||
static const char *const qsv_profile_names_hevc[] = {"main", "main10", 0};
|
||||
static const char *const qsv_usage_names[] = {"quality", "balanced", "speed",
|
||||
"veryslow", "slower", "slow",
|
||||
"medium", "fast", "faster",
|
||||
"veryfast", 0};
|
||||
static const char *const qsv_usage_names[] = {"TU1: Slowest (Best Quality)",
|
||||
"TU2: Slower",
|
||||
"TU3: Slow",
|
||||
"TU4: Balanced (Medium Quality)",
|
||||
"TU5: Fast",
|
||||
"TU6: Faster",
|
||||
"TU7: Fastest (Best Speed)",
|
||||
0};
|
||||
static const char *const qsv_latency_names[] = {"ultra-low", "low", "normal",
|
||||
0};
|
||||
typedef struct qsv_t qsv_t;
|
||||
|
|
|
@ -167,7 +167,8 @@ static void obs_qsv_destroy(void *data)
|
|||
static void obs_qsv_defaults(obs_data_t *settings, int ver,
|
||||
enum qsv_codec codec)
|
||||
{
|
||||
obs_data_set_default_string(settings, "target_usage", "balanced");
|
||||
obs_data_set_default_string(settings, "target_usage",
|
||||
"TU4: Balanced (Medium Quality)");
|
||||
obs_data_set_default_int(settings, "bitrate", 2500);
|
||||
obs_data_set_default_int(settings, "max_bitrate", 3000);
|
||||
obs_data_set_default_string(settings, "profile",
|
||||
|
@ -308,6 +309,35 @@ static bool update_enhancements(obs_data_t *settings)
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool update_targetusage(obs_data_t *settings)
|
||||
{
|
||||
const char *target_usage =
|
||||
obs_data_get_string(settings, "target_usage");
|
||||
|
||||
if ((astrcmpi(target_usage, "veryslow") ||
|
||||
astrcmpi(target_usage, "quality")) == 0)
|
||||
obs_data_set_string(settings, "target_usage",
|
||||
"TU1: Slowest (Best Quality)");
|
||||
else if (astrcmpi(target_usage, "slower") == 0)
|
||||
obs_data_set_string(settings, "target_usage", "TU2: Slower");
|
||||
else if (astrcmpi(target_usage, "slow") == 0)
|
||||
obs_data_set_string(settings, "target_usage", "TU3: Slow");
|
||||
else if ((astrcmpi(target_usage, "medium") ||
|
||||
astrcmpi(target_usage, "balanced")) == 0)
|
||||
obs_data_set_string(settings, "target_usage",
|
||||
"TU4: Balanced (Medium Quality)");
|
||||
else if (astrcmpi(target_usage, "fast") == 0)
|
||||
obs_data_set_string(settings, "target_usage", "TU5: Fast");
|
||||
else if (astrcmpi(target_usage, "faster") == 0)
|
||||
obs_data_set_string(settings, "target_usage", "TU6: Faster");
|
||||
else if ((astrcmpi(target_usage, "vertfast") ||
|
||||
astrcmpi(target_usage, "speed")) == 0)
|
||||
obs_data_set_string(settings, "target_usage",
|
||||
"TU7: Fastest (Best Speed)");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool rate_control_modified(obs_properties_t *ppts, obs_property_t *p,
|
||||
obs_data_t *settings)
|
||||
{
|
||||
|
@ -493,6 +523,7 @@ static void update_params(struct obs_qsv *obsqsv, obs_data_t *settings)
|
|||
const struct video_output_info *voi = video_output_get_info(video);
|
||||
update_latency(settings);
|
||||
update_enhancements(settings);
|
||||
update_targetusage(settings);
|
||||
|
||||
const char *target_usage =
|
||||
obs_data_get_string(settings, "target_usage");
|
||||
|
@ -525,26 +556,20 @@ static void update_params(struct obs_qsv *obsqsv, obs_data_t *settings)
|
|||
|
||||
int width = (int)obs_encoder_get_width(obsqsv->encoder);
|
||||
int height = (int)obs_encoder_get_height(obsqsv->encoder);
|
||||
if (astrcmpi(target_usage, "quality") == 0)
|
||||
if (astrcmpi(target_usage, "TU1: Slowest (Best Quality)") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_BEST_QUALITY;
|
||||
else if (astrcmpi(target_usage, "balanced") == 0)
|
||||
else if (astrcmpi(target_usage, "TU4: Balanced (Medium Quality)") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_BALANCED;
|
||||
else if (astrcmpi(target_usage, "speed") == 0)
|
||||
else if (astrcmpi(target_usage, "TU7: Fastest (Best Speed)") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_BEST_SPEED;
|
||||
else if (astrcmpi(target_usage, "veryslow") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_1;
|
||||
else if (astrcmpi(target_usage, "slower") == 0)
|
||||
else if (astrcmpi(target_usage, "TU2: Slower") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_2;
|
||||
else if (astrcmpi(target_usage, "slow") == 0)
|
||||
else if (astrcmpi(target_usage, "TU3: Slow") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_3;
|
||||
else if (astrcmpi(target_usage, "medium") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_4;
|
||||
else if (astrcmpi(target_usage, "fast") == 0)
|
||||
else if (astrcmpi(target_usage, "TU5: Fast") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_5;
|
||||
else if (astrcmpi(target_usage, "faster") == 0)
|
||||
else if (astrcmpi(target_usage, "TU6: Faster") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_6;
|
||||
else if (astrcmpi(target_usage, "veryfast") == 0)
|
||||
obsqsv->params.nTargetUsage = MFX_TARGETUSAGE_7;
|
||||
|
||||
if (obsqsv->codec == QSV_CODEC_AVC) {
|
||||
codec = "H.264";
|
||||
|
|
Loading…
Reference in a new issue