mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-17 19:36:28 +02:00
fix(camera): apply camera_rotation to finish photos
_apply_camera_rotation was only ever wired into
_capture_snapshot_for_notification (print-start photo, in-print frame
bank) - the finish-photo pipeline (_background_finish_photo's three
branches: stage-22 pre-captured frame, external-camera fallback,
built-in buffered-frame fallback) saved frames straight to disk with
no rotation, so a finish photo came out upside-down whenever
camera_rotation was configured. Pre-existing gap, unrelated to
yesterday's collision fixes - just more visible now that a finish
photo reliably gets captured at all.
Built-in camera's final capture_finish_photo() fallback (writes its
own file, returns only a filename) is left unrotated - out of scope
here since Carl uses an external camera; would need its own change to
services/camera.py.
This commit is contained in:
@@ -5350,6 +5350,7 @@ async def on_print_complete(printer_id: int, data: dict):
|
||||
)
|
||||
cached_frame = _stage22_finish_frames.pop(printer_id, None)
|
||||
if cached_frame:
|
||||
cached_frame = _apply_camera_rotation(cached_frame, printer, logger)
|
||||
photos_dir = archive_dir / "photos"
|
||||
photos_dir.mkdir(parents=True, exist_ok=True)
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
@@ -5384,6 +5385,7 @@ async def on_print_complete(printer_id: int, data: dict):
|
||||
snapshot_url=printer.external_camera_snapshot_url,
|
||||
)
|
||||
if frame_data:
|
||||
frame_data = _apply_camera_rotation(frame_data, printer, logger)
|
||||
photos_dir = archive_dir / "photos"
|
||||
photos_dir.mkdir(parents=True, exist_ok=True)
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
@@ -5401,6 +5403,7 @@ async def on_print_complete(printer_id: int, data: dict):
|
||||
if (active_for_printer or active_chamber_for_printer) and buffered_frame:
|
||||
# Use frame from active stream
|
||||
logger.info("[PHOTO-BG] Using buffered frame from active stream")
|
||||
buffered_frame = _apply_camera_rotation(buffered_frame, printer, logger)
|
||||
photos_dir = archive_dir / "photos"
|
||||
photos_dir.mkdir(parents=True, exist_ok=True)
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
|
||||
Reference in New Issue
Block a user