Skip to content

Commit a5d53b2

Browse files
committed
Route recording frames through recording sink
Switch `RecordingManager` import to the new `services` package path and update recording flow to use an explicit recording sink callback. Recording now sets `multi_camera_controller.set_recording_sink(self._rec_manager.write_frame)` when starting and clears it on stop, replacing the previous direct `recording_frame_ready` signal hookup.
1 parent 2793385 commit a5d53b2

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

dlclivegui/gui/main_window.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
)
7171
from ..services.dlc_processor import DLCLiveProcessor, PoseResult
7272
from ..services.multi_camera_controller import MultiCameraController, MultiFrameData, get_camera_id, get_display_id
73+
from ..services.recording_manager import RecordingManager
7374
from ..utils.display import BBoxColors, compute_tile_info, create_tiled_frame, draw_bbox, draw_pose
7475
from ..utils.settings_store import DLCLiveGUISettingsStore, ModelPathStore
7576
from ..utils.stats import WorkerTimingStats, format_dlc_stats
@@ -79,7 +80,6 @@
7980
from .misc import layouts as lyts
8081
from .misc.drag_spinbox import ScrubSpinBox
8182
from .misc.eliding_label import ElidingPathLabel
82-
from .recording_manager import RecordingManager
8383
from .theme import LOGO, LOGO_ALPHA, AppStyle, apply_theme
8484

8585
logger = logging.getLogger("DLCLiveGUI")
@@ -801,7 +801,7 @@ def _connect_signals(self) -> None:
801801
# Multi-camera controller signals (used for both single and multi-camera modes)
802802
self.multi_camera_controller.frame_ready.connect(self._on_multi_frame_processing_ready)
803803
self.multi_camera_controller.display_ready.connect(self._on_multi_frame_display_ready)
804-
self.multi_camera_controller.recording_frame_ready.connect(self._on_recording_frame_ready)
804+
# self.multi_camera_controller.recording_frame_ready.connect(self._on_recording_frame_ready)
805805
self.multi_camera_controller.all_started.connect(self._on_multi_camera_started)
806806
self.multi_camera_controller.all_stopped.connect(self._on_multi_camera_stopped)
807807
self.multi_camera_controller.camera_error.connect(self._on_multi_camera_error)
@@ -1605,6 +1605,7 @@ def _start_multi_camera_recording(self) -> None:
16051605
if run_dir is None:
16061606
self._show_error("Failed to start recording.")
16071607
return
1608+
self.multi_camera_controller.set_recording_sink(self._rec_manager.write_frame)
16081609
self.multi_camera_controller.set_recording_frame_do_emit(True)
16091610

16101611
self._settings_store.set_session_name(session_name)
@@ -1629,6 +1630,7 @@ def _stop_multi_camera_recording(self) -> None:
16291630
# Stop frame emission immediately so no new frames enter recording pipeline.
16301631
try:
16311632
self.multi_camera_controller.set_recording_frame_do_emit(False)
1633+
self.multi_camera_controller.set_recording_sink(None)
16321634
except Exception:
16331635
logger.exception("Failed to disable recording frame emission")
16341636

0 commit comments

Comments
 (0)