syntax = "proto2"; package mediapipe.autoflip; message KinematicOptions { // Weighted update of new camera velocity (measurement) vs current state // (prediction). optional double update_rate = 1 [default = 0.5, deprecated = true]; // Max velocity (degrees per second) that the camera can move. optional double max_velocity = 2 [default = 18]; // Min motion (in degrees) to react for both upper and lower directions. Must // not be set if using min_motion_to_reframe_lower and // min_motion_to_reframe_upper. optional float min_motion_to_reframe = 3; // Min motion (in degrees) for upper and lower direction to react. Both must // be set and min_motion_to_reframe cannot be set if these are specified. optional float min_motion_to_reframe_lower = 9; optional float min_motion_to_reframe_upper = 10; // When motion exceeds min_motion_to_reframe, move within this distance of the // camera from the starting direction. Setting this value non-zero reduces // total reframe distance on average. Value cannot exceed // min_motion_to_reframe value. optional float reframe_window = 4 [default = 0]; // Calculation of internal velocity state is: // min((delta_time_s / update_rate_seconds), max_update_rate) // where delta_time_s is the time since the last frame. optional double update_rate_seconds = 5 [default = 0.20]; optional double max_update_rate = 6 [default = 0.8]; // History time window of observations to be median filtered. optional int64 filtering_time_window_us = 7 [default = 0]; // Weighted update of average period, used for motion updates. optional float mean_period_update_rate = 8 [default = 0.25]; }