<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le dim. 30 juin 2019 09 h 10, Erik Rull <<a href="mailto:erik.rull@rdsoftware.de">erik.rull@rdsoftware.de</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I'm trying to solve this pipeline task, but I have not yet found a smart solution:<br>
<br>
My environment looks like this:<br>
<br>
I want to capture a video from a camera (then modify the data) and display it<br>
inside a gtk application.<br>
This part works for the 1:1 routing of the camera image through gstreamer and<br>
starting the stream inside the gtk application.<br>
<br>
Next step:<br>
I want to modifiy the video and add additional data on the video (overlay) by an<br>
external application that modifies the video (some resizing, converting, adding<br>
the overlay that cannot be done by gstreamer) and pushing it back to the<br>
pipeline that then displays it inside the gtk application.<br>
<br>
I checked several interfaces and the one that looks best for me are the appsrc<br>
and appsink elements.<br>
<br>
But those have to be created by the "sink" and "src" application. I don't have<br>
access then to the gtk application where I would like to display the results.<br>
<br>
Is there a way to solve my task by having a pipeline that can be accessed by<br>
multiple processes? Either to get the appsrc part into the application that<br>
provides the modified data or get the ximagesink connected to the gtk application?<br>
Of course - the first part of the pipeline could be split off the rest and<br>
completely handled by the modifying application. But the second part seems to<br>
become tricky.<br>
<br>
Any hints, comments or ideas appreciated.<br>
<br>
Thanks in advance.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">GStreamer library isn't I internally multi-process, so there isn't any generic API/IPC to so so. On Linux, most app will use DBus IPC for such use case. DBus object exist for all GApplication. On top of this, you can define your own control interface.</div><div dir="auto"><br></div><div dir="auto">If you need to share some data, you can use fdsrc/sink to stream or shmsrc/sink if you need zero-copy streaming between processes.</div><div dir="auto"><br></div><div dir="auto">Another option, to though it's quite specific to sandbox, is IP pipeline:</div><div dir="auto"><br></div><div dir="auto"><a href="https://gstreamer.freedesktop.org/documentation/ipcpipeline/index.html?gi-language=c">https://gstreamer.freedesktop.org/documentation/ipcpipeline/index.html?gi-language=c</a></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- Erik<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" rel="noreferrer">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></blockquote></div></div></div>