From 54b3717a606442720a1ec019e40729ac79f2fcd2 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 21 Mar 2026 07:55:26 +0000 Subject: [PATCH] Fix: revert cameraAspectRatio inversion for ui.rotate cameras MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous commit caused a double dimension swap for rotated cameras: - LiveCameraView was inverting the aspect ratio (1/ratio) → portrait container - MsePlayer was then swapping width/height again internally when isRotatedGrid=true → video got zero/invalid dimensions, nothing visible The MsePlayer already handles the full rotation internally via CSS variables (transform + width/height swap). The container in LiveCameraView should keep the original (landscape) aspect ratio, matching the grid cell behavior in DraggableGridLayout where this works correctly. https://claude.ai/code/session_01CDLHQPGpf8w44jpsG8g8nM --- web/src/views/live/LiveCameraView.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/web/src/views/live/LiveCameraView.tsx b/web/src/views/live/LiveCameraView.tsx index 741f7a919..7eb76141d 100644 --- a/web/src/views/live/LiveCameraView.tsx +++ b/web/src/views/live/LiveCameraView.tsx @@ -360,13 +360,11 @@ export default function LiveCameraView({ }, [windowAspectRatio, containerRef]); const cameraAspectRatio = useMemo(() => { - let ratio; if (fullResolution.width && fullResolution.height) { - ratio = fullResolution.width / fullResolution.height; + return fullResolution.width / fullResolution.height; } else { - ratio = camera.detect.width / camera.detect.height; + return camera.detect.width / camera.detect.height; } - return camera.ui?.rotate ? 1 / ratio : ratio; }, [camera, fullResolution]); const constrainedAspectRatio = useMemo(() => {