fix: enhance stream profile validation to check for active profiles

This commit is contained in:
slz
2026-07-09 09:32:12 +08:00
parent d7cc005ff4
commit b5e4d04454
+9
View File
@@ -3548,6 +3548,7 @@ bool OBCameraNode::validateStreamProfileRequest(
}
std::unordered_set<std::string> requested_streams;
bool has_changes = false;
for (const auto &profile : request->profiles) {
const auto stream_index = getImageStreamByName(profile.stream_name);
if (!stream_index) {
@@ -3606,6 +3607,10 @@ bool OBCameraNode::validateStreamProfileRequest(
try {
auto selected_profile = selectVideoStreamProfile(
*stream_index, requested_width, requested_height, requested_fps, requested_format);
has_changes = has_changes || selected_profile->getWidth() != width_[*stream_index] ||
selected_profile->getHeight() != height_[*stream_index] ||
selected_profile->getFps() != fps_[*stream_index] ||
selected_profile->getFormat() != format_[*stream_index];
pending_profiles.push_back(
{*stream_index, requested_width, requested_height, requested_fps, selected_profile});
} catch (const ob::Error &e) {
@@ -3617,6 +3622,10 @@ bool OBCameraNode::validateStreamProfileRequest(
return false;
}
}
if (!has_changes) {
message = "requested stream profiles are already active";
return false;
}
return true;
}