[libcamera-devel] [RFC PATCH] libcamera: base: Make message.h and mutex.h private
Umang Jain
umang.jain at ideasonboard.com
Wed Aug 10 08:44:31 CEST 2022
Hi Laurent,
Thank you for the patch.
On 8/8/22 20:49, Laurent Pinchart via libcamera-devel wrote:
> The message.h and mutex.h headers are not used in the libcamera public
> API. Make them private to avoid there usage in applications, and to
> prevent having to maintain them with a stable ABI.
>
> As mutex.h is used by libcamerasrc, the GStreamer element must switch
> from the libcamera_public to the libcamera_private dependency.
Should the gstreamer element be moving away from using those headers as
well?
If it's a question on locks (I see Mutex and MutexLocker) being used,
replacing with GLib equivalent can be a way forwards to drop those (now
private) headers?
In that case, this patch can introduce a \todo in gstreamer element.
Anyways,
Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> include/libcamera/base/message.h | 2 ++
> include/libcamera/base/mutex.h | 2 ++
> src/gstreamer/meson.build | 2 +-
> 3 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/include/libcamera/base/message.h b/include/libcamera/base/message.h
> index 65572c7470e9..b939af6f79bb 100644
> --- a/include/libcamera/base/message.h
> +++ b/include/libcamera/base/message.h
> @@ -9,6 +9,8 @@
>
> #include <atomic>
>
> +#include <libcamera/base/private.h>
> +
> #include <libcamera/base/bound_method.h>
>
> namespace libcamera {
> diff --git a/include/libcamera/base/mutex.h b/include/libcamera/base/mutex.h
> index 2d23e49e4546..52441c55287a 100644
> --- a/include/libcamera/base/mutex.h
> +++ b/include/libcamera/base/mutex.h
> @@ -10,6 +10,8 @@
> #include <condition_variable>
> #include <mutex>
>
> +#include <libcamera/base/private.h>
> +
> #include <libcamera/base/thread_annotations.h>
>
> namespace libcamera {
> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build
> index 77c79140eb37..eda246d7ffc8 100644
> --- a/src/gstreamer/meson.build
> +++ b/src/gstreamer/meson.build
> @@ -42,7 +42,7 @@ endif
> libcamera_gst = shared_library('gstlibcamera',
> libcamera_gst_sources,
> cpp_args : libcamera_gst_cpp_args,
> - dependencies : [libcamera_public, gstvideo_dep, gstallocator_dep],
> + dependencies : [libcamera_private, gstvideo_dep, gstallocator_dep],
> install: true,
> install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),
> )
More information about the libcamera-devel
mailing list