We are developing an application that does small-scale retiming of movies. Currently it is a stand-alone C++ & Qt application, but there is interest in RV Integration. Our algorithm requires access to the whole range of input images and generates a potentially different number of output frames. For user input we require a custom widget and some tools directly on the video frame, similar to the annotation tools that already exist.
What are the best options to this? The first Idea was writing a filter node similar to a retime node, but there does not seem to be an API to make user-defined nodes, or even load C++ plugins. I didn't find a way to access the image data from Python either. But if it is possible to replace a retime node with our own, or even create a custom top-level node that can sit between a source and the view group, then that would be optimal.
A potential fallback solution might be to ignore RV's input capabilities and expose only the output of our program via the network. User interaction could be done with a small python plugin, sending all the feedback back to the external program. This method would not be very convenient and probably also not very performant.