[libcamera-devel] [PATCH v2 12/27] gst: libcamerasrc: Store the srcpad in a vector
Nicolas Dufresne
nicolas.dufresne at collabora.com
Thu Feb 27 21:03:52 CET 2020
This will allow implementing generic algorithm even if we cannot
request pads yet.
Signed-off-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
src/gstreamer/gstlibcamerasrc.cpp | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
index 53ece26..5a86a6d 100644
--- a/src/gstreamer/gstlibcamerasrc.cpp
+++ b/src/gstreamer/gstlibcamerasrc.cpp
@@ -12,6 +12,7 @@
#include <libcamera/camera.h>
#include <libcamera/camera_manager.h>
+#include <vector>
using namespace libcamera;
@@ -22,6 +23,7 @@ GST_DEBUG_CATEGORY_STATIC(source_debug);
struct GstLibcameraSrcState {
std::unique_ptr<CameraManager> cm;
std::shared_ptr<Camera> cam;
+ std::vector<GstPad *> srcpads;
};
struct _GstLibcameraSrc {
@@ -29,7 +31,6 @@ struct _GstLibcameraSrc {
GRecMutex stream_lock;
GstTask *task;
- GstPad *srcpad;
gchar *camera_name;
@@ -262,8 +263,8 @@ gst_libcamera_src_init(GstLibcameraSrc *self)
gst_task_set_leave_callback(self->task, gst_libcamera_src_task_leave, self, nullptr);
gst_task_set_lock(self->task, &self->stream_lock);
- self->srcpad = gst_pad_new_from_template(templ, "src");
- gst_element_add_pad(GST_ELEMENT(self), self->srcpad);
+ state->srcpads.push_back(gst_pad_new_from_template(templ, "src"));
+ gst_element_add_pad(GST_ELEMENT(self), state->srcpads[0]);
self->state = state;
}
--
2.24.1
More information about the libcamera-devel
mailing list