I'm trying to understand a problem I encounter with request pads plugin. I've derived my own plugin (videooverlay) from videomixer code. As input, I have 1..N sinks on which the buffers contain video frame + other data. It takes the video as background and does some overlay using the extra data.
(here video_process is my plugin that analyses the video and send a buffer containing videoframe + data)
My problem is that when one of the tee branches is heavily loaded (i.e. it takes time to analyse a frame), then the whole pipeline hangs. As if no more buffers were sent to the overlay plugin. It uses collected pads. I have tried to change my plugin, setting _chain function to each sink pad. Here I receive the first 2 buffers, then it hangs for 30sec before I get the new ones, and it finally crashes (even if my process plugin does nothing).
How can I make sure that buffers are sent continuously ? There is very little documentation on how request pads should be used...