gst: libcamerasrc: Send stream start event
Prior to sending caps, we need to send a stream-start event. This requires generating a stream and a group id. The stream id is random for live sources and the group id is shared across all pads. 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
6d69661c24
commit
e5f4398c19
@@ -131,8 +131,19 @@ static void
|
||||
gst_libcamera_src_task_enter(GstTask *task, GThread *thread, gpointer user_data)
|
||||
{
|
||||
GstLibcameraSrc *self = GST_LIBCAMERA_SRC(user_data);
|
||||
GLibRecLocker lock(&self->stream_lock);
|
||||
GstLibcameraSrcState *state = self->state;
|
||||
|
||||
GST_DEBUG_OBJECT(self, "Streaming thread has started");
|
||||
|
||||
guint group_id = gst_util_group_id_next();
|
||||
for (GstPad *srcpad : state->srcpads_) {
|
||||
/* Create stream-id and push stream-start. */
|
||||
g_autofree gchar *stream_id = gst_pad_create_stream_id(srcpad, GST_ELEMENT(self), nullptr);
|
||||
GstEvent *event = gst_event_new_stream_start(stream_id);
|
||||
gst_event_set_group_id(event, group_id);
|
||||
gst_pad_push_event(srcpad, event);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user