RidgeRun / gst-interpipe

GStreamer plug-in for interpipeline communication
Other
143 stars 64 forks source link

how configure interpipe plugin between two dockers ? #147

Open dradenvandewind opened 1 year ago

dradenvandewind commented 1 year ago

Actually, i have a master pipeline write in using python binding ( master container ) and in a slave pipeline (slave container) write in using c++.

the interconnection of the pipes is carried out by sharemems (shrsink and shrsrc ). How to replace them by the interpipe plugins ? How configure your ipcpipelinesrc and ipcpipelinesink plugin ? docker-compose ?

clogwog commented 1 year ago

the interpipes have to run in the same process, otherwise they can not talk to each other.

a way around this is to use gstd and have the master start a pipeline in gstd and the slave to start another 'slave' pipeline in the same gstd. then the interpipesrc and interpipesink can find each other.

because the interface to gstd is a socket, both dockers can find it and you can decide to run gstd in either of your dockers or on the host system (only start up 1 gstd though)

pwolfe1 commented 1 year ago

a way around this is to use gstd

Is there a way to send a pipeline constructed in a C/C++ application with GObject syntax to gstd?

I have a number of GStreamer pipelines in my existing system that uses that I would like to connect via interpipe rather than shmsink and shmsrc. Is there a way I can tie them all to gstd without significantly overhauling our architecture?

clogwog commented 1 year ago

not that i know of. libgstd-1.0.so will allow you to send pipeline 'strings' to gstd not whole structures.

gstd takes 'ownership' of the creation , maintenance and destruction of the GStreamer plugins for you. So it is a different architecture. It also has some limitation on the events that you have access to.

we got around that by creating new plugins that handle the events that we really need to have outside of gstd inside the plugin and bringing them in/out via a different method (mqtt in our case)