Adjust video condition temp vars

This commit is contained in:
WarmUpTill 2026-03-21 23:14:10 +01:00
parent dcb8a727a3
commit cc50928285
2 changed files with 21 additions and 7 deletions

View File

@ -2215,6 +2215,8 @@ AdvSceneSwitcher.tempVar.video.text="OCR text"
AdvSceneSwitcher.tempVar.video.text.description="The text detected in a given video input frame."
AdvSceneSwitcher.tempVar.video.color="Average color"
AdvSceneSwitcher.tempVar.video.color.description="The average RGB color in a given video input frame in HexArgb format."
AdvSceneSwitcher.tempVar.video.dominantColor="Dominant color"
AdvSceneSwitcher.tempVar.video.dominantColor.description="The most dominant RGB color in a given video input frame in HexArgb format."
AdvSceneSwitcher.tempVar.websocket.message="Received websocket message"
AdvSceneSwitcher.tempVar.websocket.message.description="The received websocket message, which matched the given pattern"

View File

@ -377,13 +377,19 @@ bool MacroConditionVideo::CheckColor()
_screenshotData.GetImage(), _colorParameters.color,
_colorParameters.colorThreshold,
_colorParameters.matchThreshold);
// Way too slow for now
//SetTempVarValue("dominantColor", GetDominantColor(_screenshotData.image, 3)
// .name(QColor::HexArgb)
// .toStdString());
SetTempVarValue("color", GetAverageColor(_screenshotData.GetImage())
.name(QColor::HexArgb)
.toStdString());
SetTempVarValue("color", [&]() {
return GetAverageColor(_screenshotData.GetImage())
.name(QColor::HexArgb)
.toStdString();
});
SetTempVarValue("dominantColor", [&]() {
return GetDominantColor(_screenshotData.GetImage(), 3)
.name(QColor::HexArgb)
.toStdString();
});
return ret;
}
@ -479,6 +485,12 @@ void MacroConditionVideo::SetupTempVars()
obs_module_text("AdvSceneSwitcher.tempVar.video.color"),
obs_module_text(
"AdvSceneSwitcher.tempVar.video.color.description"));
AddTempvar(
"dominantColor",
obs_module_text(
"AdvSceneSwitcher.tempVar.video.dominantColor"),
obs_module_text(
"AdvSceneSwitcher.tempVar.video.dominantColor.description"));
break;
case VideoCondition::MATCH:
case VideoCondition::DIFFER: