pull/24335/head
Shane Smiskol 3 years ago
parent bfeddc0a14
commit d593935001
  1. 24
      selfdrive/ui/qt/widgets/cameraview.cc

@ -279,6 +279,7 @@ void CameraViewWidget::vipcThread() {
std::unique_ptr<VisionIpcClient> vipc_client; std::unique_ptr<VisionIpcClient> vipc_client;
VisionIpcBufExtra meta_main = {0}; VisionIpcBufExtra meta_main = {0};
VisionBuf *buf; VisionBuf *buf;
UIState *s = uiState();
while (!QThread::currentThread()->isInterruptionRequested()) { while (!QThread::currentThread()->isInterruptionRequested()) {
if (!vipc_client || cur_stream_type != stream_type) { if (!vipc_client || cur_stream_type != stream_type) {
@ -294,18 +295,19 @@ void CameraViewWidget::vipcThread() {
emit vipcThreadConnected(vipc_client.get()); emit vipcThreadConnected(vipc_client.get());
} }
UIState *s = uiState(); // Wait until camera frame id is behind modelV2, then update once
qDebug() << "camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId(); while (meta_main.frame_id >= (*s->sm)["modelV2"].getModelV2().getFrameId()) {
bool recv_one = (meta_main.frame_id - (*s->sm)["modelV2"].getModelV2().getFrameId()) > 40; qDebug() << "Sleeping";
while (meta_main.frame_id < (*s->sm)["modelV2"].getModelV2().getFrameId() || recv_one) { QThread::msleep(10);
buf = vipc_client->recv(&meta_main, 1000); if ((meta_main.frame_id - (*s->sm)["modelV2"].getModelV2().getFrameId()) > 40) {
recv_one = false; break;
qDebug() << "recv loop: camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId(); }
if (buf == nullptr) break; };
}
if (buf) { if ((buf = vipc_client->recv(&meta_main, 1000))) {
qDebug() << "camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId(); qDebug() << "emitting";
emit vipcThreadFrameReceived(buf); emit vipcThreadFrameReceived(buf);
} }
qDebug() << "camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId();
} }
} }

Loading…
Cancel
Save