streamsynchronizer: regression: hang when pausing near EOS
Submitted by Mark Nauwelaerts
That is, play (audio and video) until about eos, pause and then change to playing again, then pipeline might fail to preroll (and as such never reach playing again). Specifically, if one the streams has already reached eos, whereas the other has not, then streamsynchronizer will not forward eos. So, one of the sinks will preroll (with regular data), but the other never will (as it needs the eos that streamsynchronizer will not send since the other stream is blocked downstream in pause, assuming here any limited downstream queues do not suffice to compensate).
Not quite sure what to do about this; there are already some ugly streamsynchronizer hacks that send an empty buffer to trigger/force preroll (which probably won't be digested well by e.g. xvimagesink).
So, it seems that if we want to do the tricky/advanced stuff as in streamsynchronizer without breaking the basic stuff (and keep it more or less clean), we need some "force-preroll-event" (or something like that). The latter might also help in some other cases (e.g. handling empty edit in qtdemux). Or maybe that is too much 0.11 futuristic and there are other tricks or different ways to go about what streamsynchronizer/playsink/etc try to achieve ?