So I just finished a project that required using jit.qt.movie to playback 23.98 FPS footage at a smooth rate when projected onto a second monitor/projector. It became apparent fairly late in the project that the most simple playback patch, using jit.qt.movie, was not as smooth as simply playing back the movie in quicktime itself. It would introduce a very subtle, and yet, VERY noticable "jitter" (go figure, -it's an accurate term for what seemed to be the playback of qt.movie) This was extremely surprising, as one would imagine simple, smooth video playback would be the most basic requirement of jit.qt.movie. @unique 1 or @unique 0 didn't help, nor did rendering directly to the window- although that one isn't really an acceptable solution. The reason why I didn't notice this jitter initially is because my FPS-meter maintained a constant 24+ FPS throughout, but when I later compared it against the original footage in the Quicktime program, it was obvious there was an issue.
This is going straight from a qmetro > Jit.qt.movie > jit.gl.videoplane as the test patch.
Now, 23.98 FPS is way, way below the maximum range of detectable, or at least "acceptable to where you can't tell the difference" motion in our vision systems (simple stuff being around 30, fast motion at 60+), which means that the most subtle jitteriness in playback will become apparent at 23.98 FPS.
The workaround (with help from Luke DuBois, thank you Luke!) involved creating a dummy movie of increasing timecode that generated a new number every frame, and only triggering the renderer after the dummy movie passed through a jit.change.
Can this be solved?
Any ideas what would be causing the issue?
I would suggest as a feature request of qt.movie to include an attribute that turns on an internal driving source that uses a jit.change object to notify the renderer, but I dunno if that would be an acceptable solution for when multiple movies have to be played at once, perhaps at different speeds.
My second issue was that user interface elements- whether they be sliders, number boxes, etc- even qlim'd, would make playback jittery- i had to have the bpatcher interface set to a -completely- non-moving UI screen during playback to ensure smooth performance. In short, the performance worked out. But, damn. those workarounds are sort of ...not long term solutions.