提交 d04e167e 编写于 作者: B brittneysclark 提交者: jp9000

obs-qsv11: Fix bug mapping old qsv settings to new

Fix for an issue found where new "Latency" and "Subjective Video
Enhancement" options where always using default settings even after
being changed in UI. This issue was introduced when mapping old QSV
settings to new ones.
上级 f22cde50
......@@ -148,7 +148,6 @@ static void obs_qsv_defaults(obs_data_t *settings)
obs_data_set_default_int(settings, "bitrate", 2500);
obs_data_set_default_int(settings, "max_bitrate", 3000);
obs_data_set_default_string(settings, "profile", "high");
obs_data_set_default_int(settings, "async_depth", 4);
obs_data_set_default_string(settings, "rate_control", "CBR");
obs_data_set_default_int(settings, "accuracy", 1000);
......@@ -157,13 +156,11 @@ static void obs_qsv_defaults(obs_data_t *settings)
obs_data_set_default_int(settings, "qpp", 23);
obs_data_set_default_int(settings, "qpb", 23);
obs_data_set_default_int(settings, "icq_quality", 23);
obs_data_set_default_int(settings, "la_depth", 15);
obs_data_set_default_int(settings, "keyint_sec", 3);
obs_data_set_default_string(settings, "latency", "normal");
obs_data_set_default_int(settings, "bframes", 3);
obs_data_set_default_bool(settings, "enhancements", false);
obs_data_set_default_bool(settings, "mbbrc", true);
}
static inline void add_strings(obs_property_t *list, const char *const *strings)
......@@ -196,10 +193,22 @@ static inline bool is_skl_or_greater_platform()
static bool update_latency(obs_data_t *settings)
{
int async_depth = (int)obs_data_get_int(settings, "async_depth");
int la_depth = (int)obs_data_get_int(settings, "la_depth");
bool update = false;
int async_depth = 4;
if (obs_data_item_byname(settings, "async_depth") != NULL) {
async_depth = (int)obs_data_get_int(settings, "async_depth");
obs_data_erase(settings, "async_depth");
update = true;
}
int la_depth = 15;
if (obs_data_item_byname(settings, "la_depth") != NULL) {
la_depth = (int)obs_data_get_int(settings, "la_depth");
obs_data_erase(settings, "la_depth");
update = true;
}
if (async_depth > 0 || la_depth > 0) {
if (update) {
const char *rate_control =
obs_data_get_string(settings, "rate_control");
......@@ -221,9 +230,6 @@ static bool update_latency(obs_data_t *settings)
obs_data_set_string(settings, "latency",
"ultra-low");
}
obs_data_erase(settings, "async_depth");
obs_data_erase(settings, "la_depth");
}
return true;
......@@ -231,20 +237,25 @@ static bool update_latency(obs_data_t *settings)
static bool update_enhancements(obs_data_t *settings)
{
bool update = false;
bool mbbrc = true;
if (obs_data_item_byname(settings, "mbbrc") != NULL) {
mbbrc = (bool)obs_data_get_bool(settings, "mbbrc");
obs_data_erase(settings, "mbbrc");
update = true;
}
bool cqm = false;
if (obs_data_item_byname(settings, "CQM") != NULL) {
cqm = (bool)obs_data_get_bool(settings, "CQM");
obs_data_erase(settings, "CQM");
update = true;
}
bool enabled = (mbbrc && cqm);
obs_data_set_bool(settings, "enhancements", enabled);
if (update) {
bool enabled = (mbbrc && cqm);
obs_data_set_bool(settings, "enhancements", enabled);
}
return true;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册