From 6d69661c24eb66981c8554a2dfd532057dc1baef Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Tue, 21 Jan 2020 19:11:29 -0500 Subject: gst: libcamerasrc: Store the srcpad in a vector This will allow implementing generic algorithm even if we cannot request pads yet. Signed-off-by: Nicolas Dufresne Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart --- src/gstreamer/gstlibcamerasrc.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/gstreamer') diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp index 35f75124..aa91619f 100644 --- a/src/gstreamer/gstlibcamerasrc.cpp +++ b/src/gstreamer/gstlibcamerasrc.cpp @@ -8,6 +8,8 @@ #include "gstlibcamerasrc.h" +#include + #include #include @@ -23,6 +25,7 @@ GST_DEBUG_CATEGORY_STATIC(source_debug); struct GstLibcameraSrcState { std::unique_ptr cm_; std::shared_ptr cam_; + std::vector srcpads_; }; struct _GstLibcameraSrc { @@ -30,7 +33,6 @@ struct _GstLibcameraSrc { GRecMutex stream_lock; GstTask *task; - GstPad *srcpad; gchar *camera_name; @@ -265,8 +267,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; } -- cgit v1.2.1