I’ve seen some odd behavior in my frei0r plugins when exporting video using parallel processing. In short, it seems like Shotcut is rendering multiple frames in parallel but only using one frei0r filter instance across all threads, because when the filter parameters are driven by keyframes they change mid-frame, resulting in tearing. I say “seems” because I can’t prove it - but the evidence so far points that way and I thought I’d tell you sooner rather than later.
Due to the way the frei0r interface works it’s not possible to fix this using mutexes inside the filter. While it’s possible to disallow parameter updates while rendering render, the filter itself can’t guarantee that all parameter updates already received are for the same frame. (Imagine two threads setting filter parameters concurrently - the filter could end up with half the parameters set by one thread, half by another, and no way to figure out what the proper values are.)
Turning off parallel processing fixes the issue, but it would of course be nice to have my filters working irrespective of the parallel processing setting.