Hi everyone,
First of all, thank you for all the work you’ve put into the ZED SDK. We’ve been using it in our project and it’s been a great experience overall. I think I may have found an issue with the streaming receiver and wanted to check whether this is expected behavior or a bug.
Environment
-
OS: Windows
-
SDK: ZED SDK 5.3
-
Sample: Official C++ Streaming Receiver sample
https://github.com/stereolabs/zed-sdk/blob/master/camera%20streaming/receiver/cpp/src/main.cpp
Issue
When I try to connect to an invalid stream IP, the SDK reports a timeout internally, but Camera::open() never returns.
To reproduce:
-
Build and run the official Streaming Receiver sample.
-
Enter an invalid IP address (or an IP where no ZED streamer is running).
-
The console outputs:
[ZED][INFO] Logging level INFO
[Streaming] Warning: Failed to retrieve camera settings from sender
[Streaming] Error: Stream Opening returned TIMEOUT (350)
However, the call to zed.open(init_parameters) never returns.
For example, if I add:
auto returned_state = zed.open(init_parameters);
std::cout << "Returned: "
<< sl::toString(returned_state)
<< " ("
<< static_cast<int>(returned_state)
<< ")" << std::endl;
the "Returned:" line is never printed because zed.open() blocks indefinitely.
Expected behavior
I would expect Camera::open() to return an appropriate sl::ERROR_CODE after the timeout so the application can handle the connection failure and notify the user.
Actual behavior
The SDK reports:
[Streaming] Error: Stream Opening returned TIMEOUT (350)
but Camera::open() never returns, leaving the application blocked indefinitely.
Has anyone experienced this with SDK 5.3 on Windows, or is this a known issue?
Thank you in advance for your help!