OpenKinect / libfreenect

Drivers and libraries for the Xbox Kinect device on Windows, Linux, and OS X
http://openkinect.org
3.57k stars 1.15k forks source link

Added manual exposure settings #670

Closed dudeofea closed 1 year ago

dudeofea commented 1 year ago

Should fix or at least begin a fix for #386 / #387, and maybe other issues even.

Tested on Kinect 1414, I measured the following video capture times using camtest.c by comparing timestamps and dividing by 60MHz. By default the timestamps are 33.333ms apart.

RGB Mode (30Hz)
10000 -> 0.54208s
20000 -> 1.08416s
30000 -> 1.62625s

0.05421 x 10000 -> time in ms

YUV Mode (15Hz)
10000 -> 0.6325s
20000 -> 1.265s
30000 -> 1.8975s

0.06325 x 10000 -> time in ms

As for how I knew which register, I think people might be glad to see this document: https://dlscorp.com/wp-content/uploads/2019/03/MT9M112_DS_full.pdf

Which I think is the correct datasheet for the MT9M112 that the Kinect v1 uses. There are a few values related to exposure (shutter width, shutter delay, extra delay, blanking, etc), but my measurements didn't seem to have a constant offset, so I only use shutter_width * MEASURED_CONSTANT

piedar commented 1 year ago

Nice! 0f8d11ec594c36ea9f7399ddeedf5beb4175d084