draw camera on same frame from modelV2

pull/24335/head
Shane Smiskol 3 years ago
parent efa98d2a06
commit 0bebfffdc4
  1. 18
      selfdrive/ui/qt/widgets/cameraview.cc

@ -277,11 +277,13 @@ void CameraViewWidget::vipcFrameReceived(VisionBuf *buf) {
void CameraViewWidget::vipcThread() { void CameraViewWidget::vipcThread() {
VisionStreamType cur_stream_type = stream_type; VisionStreamType cur_stream_type = stream_type;
std::unique_ptr<VisionIpcClient> vipc_client; std::unique_ptr<VisionIpcClient> vipc_client;
VisionIpcBufExtra meta_main = {0};
VisionBuf *buf;
while (!QThread::currentThread()->isInterruptionRequested()) { while (!QThread::currentThread()->isInterruptionRequested()) {
if (!vipc_client || cur_stream_type != stream_type) { if (!vipc_client || cur_stream_type != stream_type) {
cur_stream_type = stream_type; cur_stream_type = stream_type;
vipc_client.reset(new VisionIpcClient(stream_name, cur_stream_type, true)); vipc_client.reset(new VisionIpcClient(stream_name, cur_stream_type, false));
} }
if (!vipc_client->connected) { if (!vipc_client->connected) {
@ -292,8 +294,20 @@ void CameraViewWidget::vipcThread() {
emit vipcThreadConnected(vipc_client.get()); emit vipcThreadConnected(vipc_client.get());
} }
if (VisionBuf *buf = vipc_client->recv(nullptr, 1000)) {
UIState *s = uiState();
qDebug() << "camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId();
while (meta_main.frame_id < (*s->sm)["modelV2"].getModelV2().getFrameId()) {
buf = vipc_client->recv(&meta_main, 1000);
qDebug() << "recv loop: camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId();
if (buf == nullptr) break;
}
if (buf) {
qDebug() << "camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId();
emit vipcThreadFrameReceived(buf); emit vipcThreadFrameReceived(buf);
} }
qDebug();
} }
} }

Loading…
Cancel
Save