<div dir="ltr"><div>Dear all,<br><br>I am a newby to GStremer Community <br>but I managed to thoroughly go through ALL offered tutorials.<br><br>GOAL: I need to design a performance-critical pipeline and create a couple of new filter plugins.<br>Any help will be appreciated.<br><br>General pipeline is divided in 3 bins: input, core, and output.<br>For the input part we have already completed 4 options: RTP client (existing plugin), MJPEG, V2L, and FILE (existing).<br>For the output part we use Wayland.<br><br>Core part is processing which roughly is done in 3 stages: <br>pre-processing, heavy processing, and some sort of Kalman filtering.<br>Q1: My idea is to make 3 plugins that will form a larger bin. Is this the right way to go?<br>Pre-processing plug-in need to have on-request sink pads since number of input video streams can vary between 1 and 4.<br>Source (output) pads (on request) will be created and linked to consecutive elements on the fly as they appear.<br>Q2: Do all consecutive elements in Core bin need to have on request pads due to non-deterministic number of input videos?<br><br>Heavy processing plug-in needs to do heavy lifting and we intend to use multi-threading on 4 available cores.<br>Q2: Do we need to use 2 queue elements before each of the pads of this element to separate processing of each video stream?<br>Q3: I understood there are tasks that can do further multi-threading. Can we use them behind a queue element?<br>Q4: If we use 4 tasks, is there a way to signal and sync all of them? i.e. Do we get a signal  when all 4 task outputs are ready?<br>Q5: How can we configure a task to target a specific core?<br><br>Finaly, Kalman plugin is not calculation intensive and can handle both streams.<br>Q6: Can we somehow undo the queue element? Does it make sense?<br><br></div>I can provide a diagram of the proposed pipeline if needed to clarify things.<br><div><br>Many thanks in advance.<br><br>Best regards,<br>Bogdan<br></div></div>