summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2020-01-25 23:06:14 -0500
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-07 01:58:08 +0200
commita801f5e4f670475fdea3028f247a4aa3774b801e (patch)
tree503cd7c03b2e0673670ab4c417db65708b5511b7
parentbde275408c7f614ccf6e440bdd747f7b663fafe6 (diff)
gst: libcamerapad: Allow storing a pool
This adds get/set helper to store a pool on the pad. Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--src/gstreamer/gstlibcamerapad.cpp18
-rw-r--r--src/gstreamer/gstlibcamerapad.h6
2 files changed, 24 insertions, 0 deletions
diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp
index ed24557b..dbe3361a 100644
--- a/src/gstreamer/gstlibcamerapad.cpp
+++ b/src/gstreamer/gstlibcamerapad.cpp
@@ -17,6 +17,7 @@ using namespace libcamera;
struct _GstLibcameraPad {
GstPad parent;
StreamRole role;
+ GstLibcameraPool *pool;
};
enum {
@@ -108,3 +109,20 @@ gst_libcamera_pad_get_role(GstPad *pad)
GLibLocker lock(GST_OBJECT(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 f0a5e32a..b03f47a2 100644
--- a/src/gstreamer/gstlibcamerapad.h
+++ b/src/gstreamer/gstlibcamerapad.h
@@ -9,6 +9,8 @@
#ifndef __GST_LIBCAMERA_PAD_H__
#define __GST_LIBCAMERA_PAD_H__
+#include "gstlibcamerapool.h"
+
#include <gst/gst.h>
#include <libcamera/stream.h>
@@ -18,4 +20,8 @@ G_DECLARE_FINAL_TYPE(GstLibcameraPad, gst_libcamera_pad, GST_LIBCAMERA, PAD, Gst
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__ */