Skip to content

Conversation

@nneonneo
Copy link
Contributor

This change fixes Java wrapper API to use frame modes throughout, but retains the existing method of setting the frame mode using setVideoFormat and setDepthFormat. DepthFormat and VideoFormat are made into simple enums with no height, width or format data; that information is now stored on the FrameMode object.

The one backwards-incompatible change here is the change to the DepthHandler and VideoHandler classes to make them take FrameMode objects instead of DepthFormat/VideoFormat objects. This is necessary because this change unifies the frame format information under FrameMode.

zarvox and others added 30 commits October 15, 2011 01:37
…o-mm via FREENECT_DEPTH_MM

Also add a simple demo showing overlaid depth and RGB video is included in regview.c

Some advanced users may want to write GPU shaders to implement the transforms,
or want to not apply the transform to the entire frame to save CPU cycles.  For them,
we have added in freenect-registration.h a way to access the internal parameters and shift tables
needed to perform the transform.  Since this includes heap variables, such users should free
the tables when no longer in use with freenect_destroy_registration().

Signed-off-by: Drew Fisher <[email protected]>
Signed-off-by: Kyle McDonald <[email protected]>
Signed-off-by: Florian Echtler <[email protected]>
…ne_info()

Check for the expected number of bytes, just like done in the other
"fetch" calls.

Signed-off-by: Antonio Ospite <[email protected]>
Ask numpy for the correct include path for its headers, instead of just
assuming they are available in the default include path.

Signed-off-by: Hector Martin <[email protected]>
This lets the user initialize the Kinect context manually, and also
disables depth or video streaming when the respective callback is
not provided.

Signed-off-by: Hector Martin <[email protected]>
Use the correct structures from libfreenect.h and friends, and all
the right types, instead of defining clones in cython. Also use the
correct stdint types. This makes the code much more robust to changes
in libfreenect.

Signed-off-by: Hector Martin <[email protected]>
Signed-off-by: Alex Weiss <[email protected]>
Signed-off-by: Alex Weiss <[email protected]>
Updated examples & got the last few tests passing

Signed-off-by: Alex Weiss <[email protected]>
…aks in different places for new API and for Windows buildage. KinectDemo now runs on windows. Still get very poor FPS, but it does run. Maybe win32 driver is to blame? Not sure. Will investigate.

Signed-off-by: Aditya Gaddam <[email protected]> (LostInCake)
Fix errors like:

platform/windows/libusb10emu/libusb-1.0/libusb.h:69: error: ‘uint8_t’ has not been declared
platform/windows/libusb10emu/libusb-1.0/libusb.h:69: error: ‘uint8_t’ has not been declared
platform/windows/libusb10emu/libusb-1.0/libusb.h:69: error: ‘uint16_t’ has not been declared
platform/windows/libusb10emu/libusb-1.0/libusb.h:69: error: ‘uint16_t’ has not been declared
...

Unfortunately it looks like not all Visual Studio versions provide
stdint.h, so hack around them.

Signed-off-by: Antonio Ospite <[email protected]>
Undefine the error numeric constants before redefining them, some
systems define those in errno.h which can be brought in by some other
header.

platform/windows/libusb10emu/libusb-1.0/libusbemu.cpp: In function ‘int ReapTransfer(transfer_wrapper*, unsigned int, libusbemu::QuickList<transfer_wrapper>*)’:
platform/windows/libusb10emu/libusb-1.0/libusbemu.cpp:698: error: expected unqualified-id before numeric constant
platform/windows/libusb10emu/libusb-1.0/libusbemu.cpp:704: error: ‘ETIMEOUT’ was not declared in this scope
platform/windows/libusb10emu/libusb-1.0/libusbemu.cpp: At global scope:
platform/windows/libusb10emu/libusb-1.0/libusbemu.cpp:745: error: expected unqualified-id before ‘return’
platform/windows/libusb10emu/libusb-1.0/libusbemu.cpp:746: error: expected declaration before ‘}’ token

Signed-off-by: Antonio Ospite <[email protected]>
Implement a default_context mechanism similar to the one in libusb-1.0
itself, so that we can still pass a NULL context to libusb functions.

NOTE: we still assume libusb_init() needs to be called before any other
libusb_* function, otherwise the code will crash happily.

Signed-off-by: Antonio Ospite <[email protected]>
Signed-off-by: Drew Fisher <[email protected]>
Signed-off-by: Antonio Ospite <[email protected]>
Otherwise all the values are off by a factor of 2 in the x direction and
2.1333333 in the y direction.

Signed-off-by: Drew Fisher <[email protected]>
zarvox and others added 19 commits October 29, 2011 11:17
The 640x480 image is actually the result of cropping the 1280x1024 image
down to 1280x960 and then scaling by .5, so aspect ratio is preserved,
and we should scale x and y by exactly 2.

Thanks to Kyle McDonald for paying attention to detail and pointing this out.

Signed-off-by: Drew Fisher <[email protected]>
This also fixes the build in VS2010, which would apparently stop compiling when
it saw the stub function #warning.

Signed-off-by: Drew Fisher <[email protected]>
This is a prerequisite for adding open-by-serial-number functionality.

Signed-off-by: Drew Fisher <[email protected]>
It turns out being way uglier and longer, but should behave slightly
more correctly in the presence of multiple Kinects.

That said, since there's no reliable way to tell for sure which motor,
camera, and audio device belong to the same physical package, it's still
a little bit of a guessing game.

Signed-off-by: Drew Fisher <[email protected]>
…y camera serial number.

Since the index used in freenect_open_device() is nondeterministic, this makes
it possible to make one particular piece of hardware the "left Kinect" or the
"right Kinect" in a multi-Kinect setup.

Signed-off-by: Drew Fisher <[email protected]>
This should make it easier to integrate libfreenect into some other event loop.

Fixes OpenKinect#43.

Signed-off-by: Drew Fisher <[email protected]>
Do not do Pythony stuff (e.g. object conversion) with the GIL released.
Use the correct type for timestamp.

Signed-off-by: Hector Martin <[email protected]>
This is essential for making wrappers that can work properly with
both versions of libfreenect with audio support and versions of
libfreenect without audio support.

Signed-off-by: Drew Fisher <[email protected]>
Add a shell script to call libfreenect applications with fakenect.

Simplifies the use of fakenect by not requiring users to know or specify
environment variables and the like.

Usage:
fakenect <database> <application> <args>

Signed-off-by: Evan Shelhamer <[email protected]>
Signed-off-by: Drew Fisher <[email protected]>
Apparently this has been wrong for months.  Oops.  Presumably, people figured
out where else they could put the firmware to have it get found, but it's good
to fix these things.

Signed-off-by: Drew Fisher <[email protected]>
Signed-off-by: Erwan Daubert <[email protected]>
Signed-off-by: Erwan Daubert <[email protected]>
Signed-off-by: Erwan Daubert <[email protected]>
@nneonneo nneonneo closed this Nov 15, 2011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants