[libcamera-devel] [PATCH v2 2/3] gstreamer: Add GstLibcameraSrcState::clearRequests method
Jaslo Ziska
jaslo at ziska.de
Thu Nov 30 16:43:09 CET 2023
Add a clearRequests method to GstLibcameraSrcState which clears the
GstLibcameraSrcState::completedRequests_ queue.
Use this new method in gst_libcamera_src_task_leave instead of doing it
manually.
Signed-off-by: Jaslo Ziska <jaslo at ziska.de>
---
src/gstreamer/gstlibcamerasrc.cpp | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
index e57ba52f..d448a750 100644
--- a/src/gstreamer/gstlibcamerasrc.cpp
+++ b/src/gstreamer/gstlibcamerasrc.cpp
@@ -133,6 +133,7 @@ struct GstLibcameraSrcState {
int queueRequest();
void requestCompleted(Request *request);
int processRequest();
+ void clearRequests();
};
struct _GstLibcameraSrc {
@@ -318,6 +319,12 @@ int GstLibcameraSrcState::processRequest()
return err;
}
+void GstLibcameraSrcState::clearRequests()
+{
+ GLibLocker locker(&lock_);
+ completedRequests_ = {};
+}
+
static bool
gst_libcamera_src_open(GstLibcameraSrc *self)
{
@@ -629,11 +636,7 @@ gst_libcamera_src_task_leave([[maybe_unused]] GstTask *task,
GST_DEBUG_OBJECT(self, "Streaming thread is about to stop");
state->cam_->stop();
-
- {
- GLibLocker locker(&state->lock_);
- state->completedRequests_ = {};
- }
+ state->clearRequests();
{
GLibRecLocker locker(&self->stream_lock);
--
2.43.0
More information about the libcamera-devel
mailing list