<div dir="ltr"><div><div><div><div><div>First, some background, skip to the last paragraph if you want to just see my question:<br><br>I have a problem with my app, and am soliciting any and all advice on how to fix it. I have *a* possible solution, but I may be barking up the wrong tree here.<br>
<br></div>I have a video-wall application that takes a playlist consisting of different sources. These can be files, screen capture commands, video inputs or more. It renders all of these so as to nicely fill a wall full of video monitors and switches between the sources either on EOS or on a timed or entered command.<br>
<br>So far, so good. That all works.<br><br></div>However, in order to change from even one file to another, I have to reprogram a fair number of clipping and scaling elements so as to best present the new resolution and aspect ratio of the next source. When changing from one type of input to another (ie file source to camera input) I have to actually dismantle part of my input pipeline and rebuild it.<br>
<br></div>I originally tried to do the above by merely pausing the pipeline and then performing the modifications, but I find that doing that causes renegotiation to take an inordinate amount of times (around 3-5 seconds) which is an unacceptable delay. So now, instead, I bring the pipeline to the ready state. This works *much* faster.<br>
<br>However the consequence is that all of the open monitors get their sessions closed by the video sinks (xvimagesink in this case) and re-opening a monitor has a noticeable delay of a few seconds, which is also unacceptable. Besides the monitors flicker during this process.<br>
<br></div>SO, I am thinking that I want two separate pipelines. The back-end pipeline will have N video inputs, one per monitor and will (except during manual reconfiguration, when delays are acceptable) never leave the playing state. It will come up at program start, stay in playing, and only exit at program shutdown.The front-end pipeline will go up and down as needed to reprogram all of the video processing needed to accommodate different sources. I then need to somehow loosely couple these pipelines together (maybe with appsrc and appsink?) so that one can change state while the other stays steady.  Has anyone ever tried this? Is it even supported (I think this means I need two main loops???) Does any one have any alternative suggestions for ways to accomplish this decoupling?<br>
<br></div><div><div><div><br><br clear="all"><div><div><div><br>-- <br>Stirling Westrup<br>Programmer, Entrepreneur.<br><a href="https://www.linkedin.com/e/fpf/77228" target="_blank">https://www.linkedin.com/e/fpf/77228</a><br>
<a href="http://www.linkedin.com/in/swestrup" target="_blank">http://www.linkedin.com/in/swestrup</a><br><a href="http://technaut.livejournal.com" target="_blank">http://technaut.livejournal.com</a><br><a href="http://sourceforge.net/users/stirlingwestrup" target="_blank">http://sourceforge.net/users/stirlingwestrup</a>
</div></div></div></div></div></div></div>