[libcamera-devel] [PATCH v1 18/23] gst: libcamerapad: Allow storing a pool

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Feb 12 01:23:46 CET 2020


Hi Nicolas,

Thank you for the patch.

On Tue, Jan 28, 2020 at 10:32:05PM -0500, Nicolas Dufresne wrote:
> From: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> 
> This add get/set helper to store a pool on the pad.

s/add/adds/

> 
> Signed-off-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  src/gstreamer/gstlibcamerapad.cpp | 18 ++++++++++++++++++
>  src/gstreamer/gstlibcamerapad.h   |  6 ++++++
>  2 files changed, 24 insertions(+)
> 
> diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp
> index b18584c..b9e6dc5 100644
> --- a/src/gstreamer/gstlibcamerapad.cpp
> +++ b/src/gstreamer/gstlibcamerapad.cpp
> @@ -16,6 +16,7 @@ using namespace libcamera;
>  struct _GstLibcameraPad {
>  	GstPad parent;
>  	StreamRole role;
> +	GstLibcameraPool *pool;
>  };
>  
>  enum {
> @@ -107,3 +108,20 @@ gst_libcamera_pad_get_role(GstPad *pad)
>  	GST_OBJECT_LOCKER(self);
>  	return self->role;
>  }
> +
> +GstLibcameraPool *
> +gst_libcamera_pad_get_pool(GstPad *pad)
> +{
> +	auto *self = GST_LIBCAMERA_PAD(pad);
> +	return self->pool;
> +}
> +
> +void
> +gst_libcamera_pad_set_pool(GstPad *pad, GstLibcameraPool *pool)
> +{
> +	auto *self = GST_LIBCAMERA_PAD(pad);
> +	
> +	if (self->pool)
> +		g_object_unref(self->pool);
> +	self->pool = pool;
> +}
> diff --git a/src/gstreamer/gstlibcamerapad.h b/src/gstreamer/gstlibcamerapad.h
> index 3dea0e7..4570c0c 100644
> --- a/src/gstreamer/gstlibcamerapad.h
> +++ b/src/gstreamer/gstlibcamerapad.h
> @@ -9,6 +9,8 @@
>  #include <gst/gst.h>
>  #include <libcamera/stream.h>
>  
> +#include "gstlibcamerapool.h"
> +
>  #ifndef __GST_LIBCAMERA_PAD_H__
>  #define __GST_LIBCAMERA_PAD_H__
>  
> @@ -18,4 +20,8 @@ G_DECLARE_FINAL_TYPE(GstLibcameraPad, gst_libcamera_pad,
>  
>  libcamera::StreamRole gst_libcamera_pad_get_role(GstPad *pad);
>  
> +GstLibcameraPool *gst_libcamera_pad_get_pool(GstPad *pad);
> +
> +void gst_libcamera_pad_set_pool(GstPad *pad, GstLibcameraPool *pool);
> +
>  #endif /* __GST_LIBCAMERA_PAD_H__ */

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list