summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2020-01-21 17:16:40 -0500
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-07 01:57:45 +0200
commitd41b356564caef80ceee4096405a1ef439976cfa (patch)
tree66bb43e0cf7c768ff7c3c4a64af162548f926b9a
parent1d8cbaf214199c55ba9c7210fa900001d59cc24c (diff)
gst: libcamerapad: Add a method to access the role
Each pad can have a different roles. Users will have to request and configure their pads role before moving to a higher state. 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.cpp8
-rw-r--r--src/gstreamer/gstlibcamerapad.h10
2 files changed, 14 insertions, 4 deletions
diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp
index ca5c8203..ed24557b 100644
--- a/src/gstreamer/gstlibcamerapad.cpp
+++ b/src/gstreamer/gstlibcamerapad.cpp
@@ -100,3 +100,11 @@ gst_libcamera_pad_class_init(GstLibcameraPadClass *klass)
| G_PARAM_STATIC_STRINGS));
g_object_class_install_property(object_class, PROP_STREAM_ROLE, spec);
}
+
+StreamRole
+gst_libcamera_pad_get_role(GstPad *pad)
+{
+ auto *self = GST_LIBCAMERA_PAD(pad);
+ GLibLocker lock(GST_OBJECT(self));
+ return self->role;
+}
diff --git a/src/gstreamer/gstlibcamerapad.h b/src/gstreamer/gstlibcamerapad.h
index 2e745f12..f0a5e32a 100644
--- a/src/gstreamer/gstlibcamerapad.h
+++ b/src/gstreamer/gstlibcamerapad.h
@@ -6,14 +6,16 @@
* gstlibcamerapad.h - GStreamer Capture Element
*/
-#include <gst/gst.h>
-
#ifndef __GST_LIBCAMERA_PAD_H__
#define __GST_LIBCAMERA_PAD_H__
+#include <gst/gst.h>
+
+#include <libcamera/stream.h>
+
#define GST_TYPE_LIBCAMERA_PAD gst_libcamera_pad_get_type()
-G_DECLARE_FINAL_TYPE(GstLibcameraPad, gst_libcamera_pad,
- GST_LIBCAMERA, PAD, GstPad)
+G_DECLARE_FINAL_TYPE(GstLibcameraPad, gst_libcamera_pad, GST_LIBCAMERA, PAD, GstPad)
+libcamera::StreamRole gst_libcamera_pad_get_role(GstPad *pad);
#endif /* __GST_LIBCAMERA_PAD_H__ */