From 1c24c4f3fa6c1a6fad0c0ed198ed511cb78b4c35 Mon Sep 17 00:00:00 2001 From: deanlee Date: Tue, 12 Dec 2023 02:57:34 +0800 Subject: [PATCH 1/2] fix getAvailableStreams --- visionipc/visionipc_client.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/visionipc/visionipc_client.cc b/visionipc/visionipc_client.cc index 169afbb36..8d8034141 100644 --- a/visionipc/visionipc_client.cc +++ b/visionipc/visionipc_client.cc @@ -123,16 +123,22 @@ std::set VisionIpcClient::getAvailableStreams(const std::strin if (socket_fd < 0) { return {}; } + // Send VISION_STREAM_MAX to server to request available streams + std::set result; int request = VISION_STREAM_MAX; int r = ipc_sendrecv_with_fds(true, socket_fd, &request, sizeof(request), nullptr, 0, nullptr); - assert(r == sizeof(request)); - - VisionStreamType available_streams[VISION_STREAM_MAX] = {}; - r = ipc_sendrecv_with_fds(false, socket_fd, &available_streams, sizeof(available_streams), nullptr, 0, nullptr); - assert((r >= 0) && (r % sizeof(VisionStreamType) == 0)); + if (r > 0) { + assert(r == sizeof(request)); + VisionStreamType available_streams[VISION_STREAM_MAX] = {}; + r = ipc_sendrecv_with_fds(false, socket_fd, &available_streams, sizeof(available_streams), nullptr, 0, nullptr); + if (r > 0) { + assert((r % sizeof(VisionStreamType) == 0)); + std::copy(available_streams, available_streams + r / sizeof(VisionStreamType), std::inserter(result, result.end())); + } + } close(socket_fd); - return std::set(available_streams, available_streams + r / sizeof(VisionStreamType)); + return result; } VisionIpcClient::~VisionIpcClient(){ From a3db49fe81c41d2aa9e166c024fd9d0d0e37c504 Mon Sep 17 00:00:00 2001 From: deanlee Date: Tue, 12 Dec 2023 04:11:52 +0800 Subject: [PATCH 2/2] #include --- visionipc/visionipc_client.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/visionipc/visionipc_client.cc b/visionipc/visionipc_client.cc index 8d8034141..9eb6c2cf9 100644 --- a/visionipc/visionipc_client.cc +++ b/visionipc/visionipc_client.cc @@ -1,3 +1,4 @@ +#include #include #include #include