hanseuljun/temporal-rvl

Stream over server, SIGSEGV error when keyframe false

Closed this issue · 2 comments

Hi, currently I try to send my data from a server by using your compression library.
When the keyframe is set to True always, it works fine, but it does not really use the compression functionality.
However, when keyframe is set to False, I receive the error:
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
Which is caused by some memory allocation issue.
So my question is, what do you think might cause this in the trvl compression side? I mean, is there an inherent difference between non-keyframe memory allocation versus keyframe one? I see that data size does not change.. Have you ever tried this on such a simple server/client app?
Thanks a lot!

In such case, I would have added logs in between the lines of trvl.h and perhaps rvl.h to find which one is causing the problem, especially before and after the lines with memory allocation. It is quite hard for me to guess the root cause without such information.

About the server/client example, I used this compression method in the implementation of the following project: https://github.com/hanseuljun/kinect-to-hololens.

To add a little bit of information, SIGSEGV is often from accessing address of memory that has not been allocated.
Theoretically, the following line may fail with such an error as it assumes compression ratio of at least 1 from RVL. I haven't met an actual case yet as I've always used data from a real depth camera; however, if you are using depth pixels from a random generator, not a real depth camera, that might happen.

int size = wilson::CompressRVL(input, output.data(), num_pixels);