-
Notifications
You must be signed in to change notification settings - Fork 226
MJPEG decoder initialization failed #37
Comments
I'm having the same problem. Ubuntu 18.04 with ROS Melodic. |
ditto me too... |
I've occasionally seen this issue as well, which is why I openned Issue #20 to stop using the MJPEG decoder. This won't fix all cases though, since we need to convert to BGRA to publish the colorized point cloud. This feels like a bug in the Linux implementation of the SDK, but it only seems to repro when running the nodelet. I'll try to dig into this a bit more on Monday, and open a bug on the Azure Kinect SDK if I can get a reliable repro. |
bump. this seems to happening a lot, without a deliberate workaround. |
Still investigating this: the MJPEG decoder on Linux is very opaque, so getting logs out of it is more challenging. A potential workaround might be to use the node version of the driver instead of the nodelet: I don't think I've seen the bug hit in the node. |
This is some issue initializing libjpeg. Unfortunately, the SDK isn't providing the error message from libjpeg for us to analyze. I've opened an issue on the SDK to see if they have insight / can help us out. |
I added a line to print the contents of tjGetErrorStr() and I'm getting this as the output:
Not sure what that means... digging further. |
Potential hypothesis: maybe there are multiple instances of a libjpeg shared object being loaded into the nodelet manager, causing symbol collision? |
Also potentially possible: ROS might be adding a different version of libjpeg to LD_LIBRARY_PATH that's causing the Azure Kinect SDK to fail. Similar to this issue: torch/image#171 |
@skalldri In general opencv should work with the sdk because they also have an example in their repository which uses opencv. |
OpenCV does work with the Azure Kinect SDK, but there are no guarantees that any random version of OpenCV will work with any random version of the Kinect SDK. The version compatibility matrix is too complex to manage them all, and it looks like we've run into an issue. It seems likely that a symbol conflict is responsible for this issue. I'll dig into it a bit more today, and if I don't find a good solution I'll move the image_proc phases into a different nodelet manager to ensure they're separated from the SDK. That process-level isolation should fix the issue, at the cost of message serialization/deserialization between the Kinect node and the image_proc nodelets. |
It looks like a version of The best workaround for now might be to switch to the node... it's going to be tricky to untangle this. |
having the same issue, [2019-09-03 23:09:59.062] [error] [t=6630] /home/vsts/work/1/s/extern/Azure-Kinect-Sensor-SDK/src/sdk/k4a.c (271): capturesync_get_capture(device->capturesync, capture_handle, timeout_in_ms) returned failure in k4a_device_get_capture() |
Root caused to an issue in the sensor SDK. This bug will be fixed when microsoft/Azure-Kinect-Sensor-SDK#672 is fixed. |
The dependent issue in the SDK has been fixed. Resolving. |
Hi, Can you kindly help me resolve the issue, please? I cannot find a solution to fix this. Please find the error below:
Thanks for your support in advance |
@AswinkarthikeyenAK, Are you able to capture using the k4aviewer? |
@ooeygui, |
@ooeygui,
This fixed the issues I had initially reported here and the node doesn't die after sometime thereby continuously streaming the data. Thanks |
@AswinkarthikeyenAK thank you for posting back. The converting the output from the kinect to ROS friendly representations is a time consuming, which negatively impacts performance. it would be a good enhancement to identify that this is occurring and notify the user; and perhaps have a property allow downshifting the performance of the camera. |
I sometimes enconter the problem, not everytime.
comand: roslaunch azure_kinect_ros_driver rectify_test.launch
Logs
[2019-08-01 16:49:34.768] [error] [t=6690] /home/username/Software/Azure-Kinect-Sensor-SDK/src/color/uvc_camerareader.cpp (1274): DecodeMJPEGtoBGRA32(). MJPEG decoder initialization failed
[2019-08-01 16:49:34.769] [error] [t=6691] /home/username/Software/Azure-Kinect-Sensor-SDK/src/sdk/k4a.c (271): capturesync_get_capture(device->capturesync, capture_handle, timeout_in_ms) returned failure in k4a_device_get_capture()
terminate called after throwing an instance of 'k4a::error'
what(): Failed to get capture from device!
Desktop (please complete the following information):
The text was updated successfully, but these errors were encountered: