How it works:
Ruby continuously measures (on both ends of the radio link: on your vehicle and your controller) an extensive set of parameters (missing data, receive strength, the amount of error correction data that is used, retransmissions requests, latency of the radio link) in order to gauge the video link quality and detect potential upcoming video breakups.
Based on these input parameters Ruby computes a set of synthesized parameters (VQP: Video Quality and Prediction parameters) about overall radio link quality and video stream quality in the present and in the near future.
Based on these VQP parameters, small, descrete adjustments steps in error correction rate, H264 parameters and video bitrate are done when needed to prevent a breakup in the video.
If such small changes would not suffice, then more aggresive changes are done and the actual radio datarate is lowered too and then only small adjustments are performed again (see the right side picture);
The vehicle code, when performing all these computations of VQP parameters and does adjustments, also uses feedback from the controller about the input parameters above. If for some reason feedback from the controller stops beeing received, than Ruby will switch to a different algorithm and use only information available on the vehicle itself to compute VQP parameters. When feedback from the controller is received again, the algorithms are switched back.
Menu->Vehicle->Video->Advanced Video Profile Parameters.