Skip to content

Remove separate multi-cam display signal - #125

Open
C-Achard wants to merge 2 commits into
masterfrom
cy/fix-double-throttling
Open

Remove separate multi-cam display signal#125
C-Achard wants to merge 2 commits into
masterfrom
cy/fix-double-throttling

Conversation

@C-Achard

@C-Achard C-Achard commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Fix double throttling of frame delivery by removing the extra throttled display_ready path and relying on frame_ready for both processing and UI updates.

Simplify multi-camera frame delivery by removing the throttled `display_ready` path and relying on `frame_ready` for both processing and UI updates. The main window now marks display state dirty when `frame_ready` arrives, and the controller no longer maintains GUI FPS-based display emission logic.
@C-Achard C-Achard self-assigned this Aug 28, 2026
@C-Achard C-Achard added bug Something isn't working camera Related to cameras and camera backends gui Related to the GUI itself : windows and fields bugs, UI, UX, ... labels Aug 28, 2026
@C-Achard
C-Achard requested a review from deruyter92 September 9, 2026 12:02
@C-Achard
C-Achard marked this pull request as ready for review September 9, 2026 12:02
@C-Achard
C-Achard requested a lite review from Copilot September 9, 2026 12:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

display_ready and its GUI-throttling state remain declared but unused/misleading after removing the emission path, and the frame_ready signal comment is now inaccurate.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR removes the separate throttled multi-camera display_ready signal path to avoid “double throttling” and instead uses frame_ready as the single source of truth for both processing and UI refresh triggering.

Changes:

  • Removed the _should_emit_display_ready() throttling helper and the display_ready.emit(...) path from MultiCameraController.
  • Updated MainWindow to rely solely on frame_ready and mark the display as dirty from the processing-ready handler.
  • Tweaked the OpenCV text font used for tiled camera labels.
File summaries
File Description
dlclivegui/utils/display.py Changes the OpenCV font used for camera label overlay in tiled frames.
dlclivegui/services/multi_camera_controller.py Removes the throttled GUI-only display_ready emission path, relying on frame_ready only.
dlclivegui/gui/main_window.py Stops connecting to display_ready and triggers display refresh via frame_ready updates.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 478 to 482
if frame_data is not None:
with timing.measure("Multi.emit.frame_ready"):
self.frame_ready.emit(frame_data)

# GUI-only path: throttled display updates
if self._should_emit_display_ready():
with timing.measure("Multi.emit.display_ready"):
self.display_ready.emit(frame_data)

timing.note_frame()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working camera Related to cameras and camera backends gui Related to the GUI itself : windows and fields bugs, UI, UX, ...

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants