I want to design a system as shown in below image, where i have various video analytics running as separate pipelines and video sources as separate pipelines. Video sources can be dynamically attached or detached to a video analytics pipeline, one video source can be attached to multiple analytic pipelines at a given time.
What i have tried:
I added video source and analytic bin (represented by streammux and fakesink here) in a single bin and it works fine.
Now when i separate them in different bins and link them it dosen’t work:
bin linked using
link_element_to_streammux_sink_pad(analyticBin.streammux, src_bin_0, 0);
i get a warning : GStreamer-WARNING **: 17:30:26.116: Trying to link elements src_bin_0 and streammux that don’t share a common ancestor: src_bin_0 hasn’t been added to a bin or pipeline, but streammux is in analytic_pipeline1
i don’t see anything on the eglsink in src_bin_0, and there is no flow of data i saw it by attaching probes to sink pads of tee, eglsink.
I am new to gstreamer and i want to know whether it is possible to do something like this, is it ok to have such a design and what kind of issues might occur in such design, what are the things that i should know or keep in mind while creating such pipelines ?
How should i proceed designing such a application?
Any Pointers to any resources or open source apps which do such dynamic decoupled pipelines are also welcome.