<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi Benjamin,<br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>A suggestion (not sure if it will fit with what you need exactly):<br>
</p>
<p>You could create a pipeline within your app's process (in a different thread)<br>
</p>
<p>with the <br>
</p>
<p>gst_pipeline_new() API<br>
</p>
<p><a href="https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html#gst-pipeline-new">https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html#gst-pipeline-new</a>​<br>
</p>
<p><br>
</p>
<p>which can be used with the same pipeline syntax- i.e. you can call something like:<br>
</p>
<p>GstElement *pPipeline = gst_pipeline_new("autovideosrc ! videoconvert ! ... ! appsink");<br>
</p>
<p><br>
</p>
<p>That way you can avoid the IPC communication all together, and it will be easier (and maybe faster)<br>
</p>
<p>to obtain your image buffers in real time using the<br>
</p>
<p>appsink<br>
</p>
<p>element<br>
</p>
<p><br>
</p>
<p>Cheers<br>
</p>
<p>Martin<br>
</p>
<p><br>
</p>
<div style="color: rgb(33, 33, 33);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> gstreamer-devel <gstreamer-devel-bounces@lists.freedesktop.org> on behalf of Benjamin Rapaport <brapaport@google.com><br>
<b>Sent:</b> Friday, September 14, 2018 6:28 PM<br>
<b>To:</b> gstreamer-devel@lists.freedesktop.org<br>
<b>Subject:</b> Interprocess communication with shmsink</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">I am trying to run a gstreamer pipeline via the command line tool in a subprocess of my main application, where I will read back the output image buffers from my main process. This process does not link in the gstreamer libraries. </div>
<div dir="ltr"><br>
</div>
<div dir="ltr">In order to quickly transfer the image buffers between the processes, I would like to use an shmsink in my pipeline (as stdout with fdsink has been far too slow). Does anyone have any pointers to how to read that back out properly when using
 shmsink? My application is written in c++.</div>
<div dir="ltr"><br>
</div>
<div>Thanks</div>
</div>
</div>
</div>
</body>
</html>