fix: enforce frame-based positioning across all video playback

Core Principle: Frame is the only standard

Changes:
- VideoPlayer: Add startFrame/endFrame props
- VideoPlayer: Use frame parameters in simple playback path
- SearchView: Remove frame/time conversion (stop using fps = 24)
- PeopleView: Pass frames directly instead of time
- PersonDetailView: Pass frames directly instead of time

All video streams now use startFrame/endFrame API parameters.
Time conversion only happens in VideoPlayer internals for UI display.

Ref: frame-based positioning standards research
This commit is contained in:
2026-07-24 21:17:11 +08:00
parent 2af8ffaf93
commit 1fd6312f7e
4 changed files with 15 additions and 11 deletions

View File

@@ -443,8 +443,8 @@ function playTrace(t: any) {
const endFrame = (t.last_frame || 0) + 10
currentVideo.value = {
fileUuid: t.file_uuid || '',
startTime: startFrame / fps,
endTime: endFrame / fps,
startFrame: startFrame,
endFrame: endFrame,
traceIdx: idx,
title: `${person.value?.name} · T${t.trace_id}`,
}