diff --git a/spa/plugins/libcamera/libcamera-source.cpp b/spa/plugins/libcamera/libcamera-source.cpp index 288cc9b3b..058d1a159 100644 --- a/spa/plugins/libcamera/libcamera-source.cpp +++ b/spa/plugins/libcamera/libcamera-source.cpp @@ -743,6 +743,9 @@ uint32_t prop_id_to_control(uint32_t prop_id) spa_pod *control_details_to_pod(spa_pod_builder& b, const libcamera::ControlId& cid, const libcamera::ControlInfo& cinfo) { + if (cid.isArray()) + return nullptr; + auto id = control_to_prop_id(cid.id()); spa_pod_frame f; @@ -900,6 +903,9 @@ spa_libcamera_set_control(struct impl *impl, const struct spa_pod_prop *prop) ctrl_id = v->second; + if (ctrl_id->isArray()) + return -EINVAL; + d.type = ctrl_id->type(); d.id = ctrl_id->id();