INNER CODE UNIT · Rust

zoom_limit

gyroflow/gyroflow · src/core/lib.rs:511

                    let mut zoom_limit = params.keyframes.value_at_video_timestamp(&KeyframeType::MaxZoom, ts).unwrap_or(max_zoom_param) / 100.0;

                    if params.video_speed_affects_zooming_limit && (params.video_speed != 1.0 || params.keyframes.is_keyframed(&KeyframeType::VideoSpeed)) {
                        let vid_speed = params.keyframes.value_at_video_timestamp(&KeyframeType::VideoSpeed, ts).unwrap_or(params.video_speed).abs();
                        zoom_limit *= (1.0 + ((vid_speed - 1.0) / 4.0)).min(1.8);
                    }

                    let fov_limit = 1.0 / (zoom_limit * scaling_factor);
                    if *fov < fov_limit {
                        any_above_limit = true;
                        params.smoothing_fov_limit_per_frame[i] *= (*fov / fov_limit).min(*thresholds.get(iter).unwrap_or(thresholds.last().unwrap()));
                    }
                }
                log::debug!("Max zoom iteration {iter}/{max_zoom_iters}, any above limit: {any_above_limit}");
                if !any_above_limit {
                    if iter == 0 {
                        params.smoothing_fov_limit_per_frame.clear();
                    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…