<div dir="ltr"><div>Hi Nicolas,</div><div>Here's the patch: <a href="https://patchwork.libcamera.org/patch/13063/">https://patchwork.libcamera.org/patch/13063/</a></div><div><br></div><div>Regards,</div><div><i><b>Vedant Paranjape</b></i><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 27, 2021 at 12:56 AM Nicolas Dufresne <<a href="mailto:nicolas@ndufresne.ca">nicolas@ndufresne.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Vedant,<br>
<br>
Le mardi 20 juillet 2021 à 23:05 +0530, Vedant Paranjape a écrit :<br>
> This patch creates gst_libcamera_pad_push_stream_start function to<br>
> create stream id and to push the stream start. This is a non functional<br>
> change.<br>
<br>
Thanks for the patch, non-functional changes means that code have been moved. In<br>
this case you simply duplicate it. Perhaps you could rework the patch split and<br>
make sure the new helper is used ?<br>
<br>
> <br>
> Signed-off-by: Vedant Paranjape <<a href="mailto:vedantparanjape160201@gmail.com" target="_blank">vedantparanjape160201@gmail.com</a>><br>
> ---<br>
>  src/gstreamer/gstlibcamerapad.cpp | 13 +++++++++++++<br>
>  src/gstreamer/gstlibcamerapad.h   |  2 ++<br>
>  2 files changed, 15 insertions(+)<br>
> <br>
> diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp<br>
> index c00e81c8..c5bd14f0 100644<br>
> --- a/src/gstreamer/gstlibcamerapad.cpp<br>
> +++ b/src/gstreamer/gstlibcamerapad.cpp<br>
> @@ -155,6 +155,19 @@ gst_libcamera_pad_get_stream(GstPad *pad)<br>
>       return nullptr;<br>
>  }<br>
>  <br>
> +void<br>
> +gst_libcamera_pad_push_stream_start(GstPad *pad, const guint group_id)<br>
> +{<br>
> +     g_autoptr(GstElement) element = gst_pad_get_parent_element(pad);<br>
> +     static gint stream_id_num = 0;<br>
> +<br>
> +     g_autofree gchar *stream_id_intermediate = g_strdup_printf("%i%i", group_id, g_atomic_int_add(&stream_id_num, 1));<br>
> +     g_autofree gchar *stream_id = gst_pad_create_stream_id(pad, element, stream_id_intermediate);<br>
> +     GstEvent *event = gst_event_new_stream_start(stream_id);<br>
> +     gst_event_set_group_id(event, group_id);<br>
> +     gst_pad_push_event(pad, event);<br>
> +}<br>
> +<br>
>  void<br>
>  gst_libcamera_pad_queue_buffer(GstPad *pad, GstBuffer *buffer)<br>
>  {<br>
> diff --git a/src/gstreamer/gstlibcamerapad.h b/src/gstreamer/gstlibcamerapad.h<br>
> index 779f2d13..7693374f 100644<br>
> --- a/src/gstreamer/gstlibcamerapad.h<br>
> +++ b/src/gstreamer/gstlibcamerapad.h<br>
> @@ -26,6 +26,8 @@ void gst_libcamera_pad_set_pool(GstPad *pad, GstLibcameraPool *pool);<br>
>  <br>
>  libcamera::Stream *gst_libcamera_pad_get_stream(GstPad *pad);<br>
>  <br>
> +void gst_libcamera_pad_push_stream_start(GstPad *pad, const guint group_id);<br>
> +<br>
>  void gst_libcamera_pad_queue_buffer(GstPad *pad, GstBuffer *buffer);<br>
>  <br>
>  GstFlowReturn gst_libcamera_pad_push_pending(GstPad *pad);<br>
<br>
<br>
</blockquote></div>