Interprocess communication with shmsink

Martin Vachovski Martin.Vachovski at skytek.com
Fri Sep 14 17:46:35 UTC 2018


Hi Benjamin,



A suggestion (not sure if it will fit with what you need exactly):

You could create a pipeline within your app's process (in a different thread)

with the

gst_pipeline_new() API

https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html#gst-pipeline-new?


which can be used with the same pipeline syntax- i.e. you can call something like:

GstElement *pPipeline = gst_pipeline_new("autovideosrc ! videoconvert ! ... ! appsink");


That way you can avoid the IPC communication all together, and it will be easier (and maybe faster)

to obtain your image buffers in real time using the

appsink

element


Cheers

Martin


________________________________
From: gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org> on behalf of Benjamin Rapaport <brapaport at google.com>
Sent: Friday, September 14, 2018 6:28 PM
To: gstreamer-devel at lists.freedesktop.org
Subject: Interprocess communication with shmsink

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.

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++.

Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180914/dfdc43b6/attachment.html>


More information about the gstreamer-devel mailing list