fix(annotations): lock annotations to the picture at any player size
Deploy / deploy (push) Successful in 3m7s

Points were normalised to the whole player box, but the video is drawn
object-contain inside it, so any change in the player's shape (window or
panel resize, fullscreen, phone rotation, the annotation toolbar opening)
moved the picture under the marks.

The canvas now sits exactly over the displayed picture (same letterbox
measurement as AspectOverlay), so points are fractions of the image and
new saves are tagged version "2.0". Legacy "1.0" annotations are mapped
onto the picture at load time from their stored canvasWidth/canvasHeight
and the video's intrinsic size; no data migration. The save action now
accepts both versions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
twotalesanimation
2026-09-22 14:34:57 +02:00
parent 428814b8b9
commit 2817c7e815
4 changed files with 103 additions and 13 deletions
+1
View File
@@ -338,6 +338,7 @@ export const ReviewPlayer = forwardRef<ReviewPlayerRef, ReviewPlayerProps>(
{/* Annotation canvas overlay */}
<AnnotationCanvas
versionId={versionId}
videoRef={videoRef}
frameNumber={currentFrame}
fps={fps}
isAnnotating={isAnnotating && !isPlaying}