spa: libcamera: expose libcamera version

Expose the libcamera header and library versions in the device properties
similarly to `api.v4l2.cap.version` used by the v4l2 plugin.

The keys are not yet promoted into the public `keys.h` header file.
This commit is contained in:
Barnabás Pőcze 2026-01-03 22:34:40 +01:00 committed by Wim Taymans
parent 6dc55d2cb4
commit 44176d4118
4 changed files with 25 additions and 1 deletions

View file

@ -7,8 +7,13 @@
#include <memory>
#include <libcamera/camera_manager.h>
#include <libcamera/version.h>
#include <spa/support/log.h>
#include <spa/utils/defs.h>
#define KEY_VERSION_LIBRARY "api.libcamera.version.library"
#define KEY_VERSION_HEADER "api.libcamera.version.header"
extern "C" {
@ -27,4 +32,17 @@ static inline void libcamera_log_topic_init(struct spa_log *log)
spa_log_topic_init(log, &libcamera_log_topic);
}
static inline const char *libcamera_library_version()
{
return libcamera::CameraManager::version().c_str();
}
static inline const char *libcamera_header_version()
{
return
SPA_STRINGIFY(LIBCAMERA_VERSION_MAJOR) "."
SPA_STRINGIFY(LIBCAMERA_VERSION_MINOR) "."
SPA_STRINGIFY(LIBCAMERA_VERSION_PATCH);
}
std::shared_ptr<libcamera::CameraManager> libcamera_manager_acquire(int& res);