From 2c5d734950dc3776d597240e9802ff3c5a736611 Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Wed, 11 Nov 2026 20:39:02 +0000 Subject: [PATCH] Convert Expression to Keyframes: cap at 2^20 frames (a 3-hour 60 fps comp is 648,000) --- crates/engine/src/cmd/prop.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/engine/src/cmd/prop.rs b/crates/engine/src/cmd/prop.rs index 9c2df7994..761a295b2 100644 --- a/crates/engine/src/cmd/prop.rs +++ b/crates/engine/src/cmd/prop.rs @@ -1387,8 +1387,10 @@ fn convert_expr_to_keys(s: &mut Session, p: &Value) -> Result { convert_one_expr(s, cid, lid, uid) } -/// Most keyframes Convert Expression to Keyframes makes (2.4 hours at 30 fps). -const MAX_CONVERTED_KEYS: u64 = 1 << 18; +/// Most keyframes Convert Expression to Keyframes makes: 2^20, 4.8 hours at 60 fps (After Effects +/// compositions run to 3 hours, 648,000 frames at 60 fps). +const MAX_CONVERTED_KEYS: u64 = 1 << 20; +const _: () = assert!(MAX_CONVERTED_KEYS >= 3 * 3600 * 60); /// One evaluation and one key per frame of the layer: its In and Out points and the composition's /// frame duration are saved data, so the step must advance and the count (a partial last frame