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 <nicolas.dufresne@collabora.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
committed by
Laurent Pinchart
parent
d41b356564
commit
6d69661c24
@@ -8,6 +8,8 @@
|
||||
|
||||
#include "gstlibcamerasrc.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <libcamera/camera.h>
|
||||
#include <libcamera/camera_manager.h>
|
||||
|
||||
@@ -23,6 +25,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 {
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user