<div dir="auto">Hi Nirbheek,<div dir="auto">Thanks a lot for your response.</div><div dir="auto">I'm building a video wall of security cameras where the compositor runs in a different process and the camera ingest in a different process.</div><div dir="auto"><br></div><div dir="auto">I want to use the compositor from a different process so that I will be able set multiple layouts.</div><div dir="auto">I saw your blog post on gstproxy, but it works only inside one process.</div><div dir="auto"><br></div><div dir="auto"><a href="http://blog.nirbheek.in/2018/02/decoupling-gstreamer-pipelines.html?m=1">http://blog.nirbheek.in/2018/02/decoupling-gstreamer-pipelines.html?m=1</a></div><div dir="auto">I was trying to use ipcpipelinesink but was having issues running it without ipcpipelineslave. Shmsrc seemed best for my usecase but doesn't seem to work with the compositor.</div><div dir="auto"><br></div><div dir="auto">I appreciate your help with this.</div><div dir="auto">Best regards.</div><div dir="auto">Guru</div><div dir="auto"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Dec 25, 2022, 4:41 AM Nirbheek Chauhan <<a href="mailto:nirbheek.chauhan@gmail.com">nirbheek.chauhan@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Guru,<br>
<br>
The easiest way to do this is to use appsrc / appsink instead of<br>
shmsrc / shmsink and set the format=time property on appsrc.<br>
<br>
You will have to write code to manually push samples from appsink to<br>
appsrc, though. So it won't work using gst-launch.<br>
<br>
Cheers,<br>
Nirbheek<br>
<br>
On Sun, Dec 25, 2022 at 2:45 PM Guru Govindan via gstreamer-devel<br>
<<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a>> wrote:<br>
><br>
> Hi,<br>
> I have the a few pipelines that send raw video shmsink like below<br>
><br>
> ```<br>
> gst-launch-1.0 videotestsrc ! video/x-raw,format=I420,width=640,height=360,framerate=15/1 ! timeoverlay ! queue ! shmsink socket-path=/tmp/test1 shm-size=20000000 sync=true<br>
><br>
> gst-launch-1.0 videotestsrc ! video/x-raw,format=I420,width=640,height=360,framerate=15/1 ! timeoverlay ! queue ! shmsink socket-path=/tmp/test2 shm-size=20000000 sync=true<br>
><br>
> ```<br>
><br>
> I am trying to mux the videos using the compositor plugin in another process like this<br>
><br>
> ```<br>
> gst-launch-1.0 shmsrc socket-path=/tmp/test1 is-live=true ! queue ! video/x-raw,format=I420,width=640,height=360 ! compositor name=comp sink_1::xpos=860 ! videoconvert ! autovideosink \<br>
> shmsrc socket-path=/tmp/test2 is-live=true ! queue ! video/x-raw,format=I420,width=640,height=360 ! comp.<br>
> ```<br>
><br>
> However I get an assertion error that GST_FORMAT_TIME is not available like below.<br>
><br>
> ```<br>
> ERROR:../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.c:2322:gst_video_aggregator_sink_event: assertion failed: (seg.format == GST_FORMAT_TIME)<br>
> Bail out! ERROR:../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.c:2322:gst_video_aggregator_sink_event: assertion failed: (seg.format == GST_FORMAT_TIME)<br>
> [1]    268025 abort (core dumped)  GST_DEBUG=4 gst-launch-1.0 shmsrc socket-path=/tmp/test1 is-live=true !<br>
> ```<br>
><br>
> Is there a way to manually add GST_FORMAT_TIME?<br>
><br>
> I tried the videomixer element and have the same issue there. I tried inserting identity sync=true but that doesnt seem to do the trick.<br>
><br>
> I appreciate any help in this!<br>
> Thanks a lot!<br>
> Guru<br>
><br>
><br>
> ~<br>
><br>
</blockquote></div>