diff --git a/selfdrive/ui/qt/widgets/cameraview.cc b/selfdrive/ui/qt/widgets/cameraview.cc index 1535e888ff..5ada00d1c9 100644 --- a/selfdrive/ui/qt/widgets/cameraview.cc +++ b/selfdrive/ui/qt/widgets/cameraview.cc @@ -220,10 +220,9 @@ void CameraViewWidget::paintGL() { assert(frames.size() == frame_ids.size()); if (frames.size() == 0) return; - VisionBuf *frame; std::deque::iterator it = std::find(frame_ids.begin(), frame_ids.end(), draw_frame_id); int frame_idx = (it == frame_ids.end()) ? (frames.size() - 1) : (it - frame_ids.begin()); - frame = frames[frame_idx]; + VisionBuf *frame = *frames[frame_idx]; glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glViewport(0, 0, width(), height()); @@ -274,7 +273,7 @@ void CameraViewWidget::vipcConnected(VisionIpcClient *vipc_client) { } void CameraViewWidget::vipcFrameReceived(VisionBuf *buf, quint32 frame_id) { - frames.push_back(buf); + frames.push_back(std::make_unique(buf)); frame_ids.push_back(frame_id); while (frames.size() > FRAME_BUFFER_SIZE) { frames.pop_front(); diff --git a/selfdrive/ui/qt/widgets/cameraview.h b/selfdrive/ui/qt/widgets/cameraview.h index 29050538a0..3e636f33b2 100644 --- a/selfdrive/ui/qt/widgets/cameraview.h +++ b/selfdrive/ui/qt/widgets/cameraview.h @@ -37,7 +37,7 @@ protected: void vipcThread(); bool zoomed_view; - std::deque frames; + std::deque> frames; std::deque frame_ids; GLuint frame_vao, frame_vbo, frame_ibo; mat4 frame_mat;