fix: trace debug — move overlay to top-left, double font sizes

This commit is contained in:
Accusys
2026-05-14 18:44:27 +08:00
parent 93d87f0582
commit 7fb6745c27

View File

@@ -395,24 +395,22 @@ async fn trace_video(
// Build drawtext entries
let mut parts: Vec<String> = Vec::new();
let bh = _height as i32;
// Bottom-left info panel (y=h-N positions from bottom up)
// Frame/time (colons must be escaped as \: for ffmpeg filter parser)
// Top-left info panel
// Frame/time at the top
parts.push(format!(
"drawtext=text='Frame %{{n}} %{{pts}}':fontsize=14:fontcolor=white:box=1:boxcolor=black@0.6:x=10:y={}",
bh - 30
"drawtext=text='Frame %{{n}} %{{pts}}':fontsize=28:fontcolor=white:box=1:boxcolor=black@0.6:x=10:y=12"
));
parts.push(format!(
"drawtext=text='Cut\\: {}':fontsize=14:fontcolor=white:box=1:boxcolor=black@0.6:x=10:y={}", cut_id, bh - 52
"drawtext=text='Cut\\: {}':fontsize=28:fontcolor=white:box=1:boxcolor=black@0.6:x=10:y=56", cut_id
));
parts.push(format!(
"drawtext=text='{}':fontsize=14:fontcolor=white:box=1:boxcolor=black@0.6:x=10:y={}", file_uuid, bh - 74
"drawtext=text='{}':fontsize=28:fontcolor=white:box=1:boxcolor=black@0.6:x=10:y=100", file_uuid
));
// Per-trace entries: show trace_id, start_frame, identity name
// Stack upward from y=bh-96
let mut y_pos = bh - 96;
// Position starts at y=144, increments by 44 per trace
let mut y_pos = 144;
for (tid, frames) in &sorted_traces {
let start = frames.iter().min().unwrap_or(&first_frame);
let identity = trace_identity.get(tid).map(|s| s.as_str()).unwrap_or("unknown");
@@ -422,10 +420,10 @@ async fn trace_video(
let enable = format!("between(n,{},{})", frames[0] as i64 - frame_offset, frames[frames.len() - 1] as i64 - frame_offset);
parts.push(format!(
"drawtext=text='{}':fontsize=14:fontcolor=white:box=1:boxcolor=black@0.6:x=10:y={}:enable='{}'",
"drawtext=text='{}':fontsize=24:fontcolor=white:box=1:boxcolor=black@0.6:x=10:y={}:enable='{}'",
label, y_pos, enable
));
y_pos -= 22;
y_pos += 44;
}
// Bounding boxes: interpolated (thickness=1) + actual (thickness=4) with trace_id label
@@ -447,8 +445,8 @@ async fn trace_video(
x, y, w, h, n, n
));
parts.push(format!(
"drawtext=text='{}':x={}:y={}:fontsize=16:fontcolor=green:box=1:boxcolor=black@0.5:enable='between(n,{},{})'",
tid, x + 2, y + 2, n, n
"drawtext=text='{}':x={}:y={}:fontsize=28:fontcolor=green:box=1:boxcolor=black@0.5:enable='between(n,{},{})'",
tid, x + 4, y + 4, n, n
));
}
}