diff --git a/main.py b/main.py index abe427f..806b4bb 100644 --- a/main.py +++ b/main.py @@ -827,6 +827,16 @@ class CameraWorker(QThread): f"等待帧同步…RGB-D 差 {ts_diff}ms({self._sync_wait_count}/10)") continue + # 快速丢弃 SDK 内部缓冲中的旧帧,只保留最新帧以降低延迟 + for _ in range(20): + try: + newer = pipeline.wait_for_frames(1) + if newer is None: + break + frames = newer + except Exception: + break + # 预览 # HDR merge:用 merged 帧集替换深度帧 display_frames = frames @@ -2002,7 +2012,7 @@ class MainWindow(QMainWindow): self._worker.set_splat(self.capture_splat_combo.currentData()) if self.hdr_check.isChecked(): self._worker.set_hdr(True) - self._worker.preview_ready.connect(self._on_preview_ready) + self._worker.preview_ready.connect(self._update_preview) self._worker.capture_done.connect(self._on_capture_done) self._worker.params_ready.connect(self._on_params_ready) self._worker.log_msg.connect(self._append_d2c_log)