@@ -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);
+ }
+}
@@ -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
@@ -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