[libcamera-devel] [PATCH] gstreamer: Support for pre-1.16 GstEvent
Nicolas Dufresne
nicolas.dufresne at collabora.com
Tue Jan 9 15:32:52 CET 2024
Hello,
Le mardi 09 janvier 2024 à 16:30 +0200, Laurent Pinchart a écrit :
> The gst_clear_event() function used by libcamerasrc has been introduced
> in GStreamer 1.16, while libcamera claims to need 1.14 or newer. This
> causes a compilation error. Fix it by copying the gst_clear_event()
> implementation to gstlibcamera-utils.h when compiling with older
> GStreamer version.
>
> The version check makes it clear that the workaround is needed with
> older versions only, flagging it for removal when the minimum GStreamer
> version requirement will be bumped.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Thanks for the fix, I like this solution.
Reviewed-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> ---
> src/gstreamer/gstlibcamera-utils.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/src/gstreamer/gstlibcamera-utils.h b/src/gstreamer/gstlibcamera-utils.h
> index fd304a8bae15..6adeab0eb35a 100644
> --- a/src/gstreamer/gstlibcamera-utils.h
> +++ b/src/gstreamer/gstlibcamera-utils.h
> @@ -25,6 +25,13 @@ void gst_libcamera_clamp_and_set_frameduration(libcamera::ControlList &controls,
> GstStructure *element_caps);
> void gst_libcamera_framerate_to_caps(GstCaps *caps, const GstStructure *element_caps);
>
> +#if !GST_CHECK_VERSION(1, 16, 0)
> +static inline void gst_clear_event(GstEvent **event_ptr)
> +{
> + g_clear_pointer(event_ptr, gst_mini_object_unref);
> +}
> +#endif
> +
> #if !GST_CHECK_VERSION(1, 17, 1)
> gboolean gst_task_resume(GstTask *task);
> #endif
More information about the libcamera-devel
mailing list