Comments (2)
Ok I know exactly what is wrong now.
The code is ok in theory, but there is a synchronisation problem that arises when closing the kinect.
You must remember that there are technically 2 threads running, one processing events from the kinect, and the other running glut.
Upon close, we join the threads, but there are still some interrupt driven functions that are called when you get events from the kinect.
The bug is something specific to cpp.
We start destroying the device, when this happens, the virtual functions become uncallable.
But there are still some frames that need to be processed by the callback functions.
The interrupt driven functions of the libfreenect call these virtual functions.
Since libfreenect does not use locks to synchronise data across multiple threads, I believe that it is impossible to fix this synchronisation problem.
I'm simply going to call stop video and depth before destroying the structures and wait a second.
This does not solve the synchronisation problem, for example if your computer is lagging and the usb traffic is heavily buffered.
But I think it should allow you to debug your code to see if it exists properly without having to worry about this bug...
from libfreenect.
Ok So here is an other fix, that I am pretty sure is only save 99.9999% of the time, and we all know how annoying that is:
in ~MyFreenectDevice
call
stopVideo()
stopDepth()
this decreases the chances of the video causing an interrupt before the struct is destroyed and its virtual functions are no longer callable.
In my code, I'm still going to add the 1 second delay, I i like to have code that doesn't cause errors at random moments ....
from libfreenect.
Related Issues (20)
- Distance issues with Kinect and R Pi 4 HOT 2
- tp_print is removed from Cython HOT 2
- Kinect HOT 1
- Java wrapper always has null value for buffer in callback
- freenect can't detect the kinect camera HOT 1
- same issue. i even tried different versions of python and different versions of ubuntu to run it on and none worked HOT 1
- /libfreenect/build/wrappers/python/freenect3.c:747:10: fatal error: numpy/arrayobject.h: File or directory not found
- Can we kill the sync_get_depth and sync_get_video calls after a specific amount of time?
- libfreenect fails to build with Cython 3.0.0 HOT 2
- No such file or directory [D:\libfreenect\libfreenect\build\src\freenectstatic.vcxproj]
- [Feature request] Skeleon Tracking HOT 2
- Python3 wrapper, c1: fatal error C1083: Cannot open source file: 'freenect.c': No such file or directory HOT 2
- CMake warning about legacy GL library and GLVND libraries for OpenGL and GLX. HOT 3
- libfreenect fails to build after latest commit HOT 1
- Questions about timestamp HOT 2
- Unable to use both a kinect and a regular webcam at the same time HOT 1
- Can't import python3 wrapper (ModuleNotFoundError: No module named 'freenect') HOT 1
- missing rpath issue with 0.7.5 release
- ImportError: dynamic module does not define module export function (PyInit_freenect)
- NOT AN ISSUE, THIS IS A QUESTION ( CAN'T FIND THE FORUM TO ASK THIS ) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libfreenect.