summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gstreamer/gstlibcamera-utils.cpp11
-rw-r--r--src/gstreamer/gstlibcamera-utils.h1
-rw-r--r--src/gstreamer/gstlibcamerasrc.cpp10
3 files changed, 13 insertions, 9 deletions
diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp
index 482439a8..44a993fa 100644
--- a/src/gstreamer/gstlibcamera-utils.cpp
+++ b/src/gstreamer/gstlibcamera-utils.cpp
@@ -167,3 +167,14 @@ gst_libcamera_configure_stream_from_caps(StreamConfiguration &stream_cfg,
stream_cfg.size.width = width;
stream_cfg.size.height = height;
}
+
+void
+gst_libcamera_resume_task(GstTask *task)
+{
+ /* We only want to resume the task if it's paused. */
+ GLibLocker lock(GST_OBJECT(task));
+ if (GST_TASK_STATE(task) == GST_TASK_PAUSED) {
+ GST_TASK_STATE(task) = GST_TASK_STARTED;
+ GST_TASK_SIGNAL(task);
+ }
+}
diff --git a/src/gstreamer/gstlibcamera-utils.h b/src/gstreamer/gstlibcamera-utils.h
index cbfb1cc0..2b3f26b6 100644
--- a/src/gstreamer/gstlibcamera-utils.h
+++ b/src/gstreamer/gstlibcamera-utils.h
@@ -18,6 +18,7 @@ GstCaps *gst_libcamera_stream_formats_to_caps(const libcamera::StreamFormats &fo
GstCaps *gst_libcamera_stream_configuration_to_caps(const libcamera::StreamConfiguration &stream_cfg);
void gst_libcamera_configure_stream_from_caps(libcamera::StreamConfiguration &stream_cfg,
GstCaps *caps);
+void gst_libcamera_resume_task(GstTask *task);
/**
* \class GLibLocker
diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
index 4b4b0098..690892bd 100644
--- a/src/gstreamer/gstlibcamerasrc.cpp
+++ b/src/gstreamer/gstlibcamerasrc.cpp
@@ -196,15 +196,7 @@ GstLibcameraSrcState::requestCompleted(Request *request)
gst_libcamera_pad_queue_buffer(srcpad, buffer);
}
- {
- /* We only want to resume the task if it's paused. */
- GstTask *task = src_->task;
- GLibLocker lock(GST_OBJECT(task));
- if (GST_TASK_STATE(task) == GST_TASK_PAUSED) {
- GST_TASK_STATE(task) = GST_TASK_STARTED;
- GST_TASK_SIGNAL(task);
- }
- }
+ gst_libcamera_resume_task(this->src_->task);
}
static bool