Re: Kinect sensor and Linux kernel driver.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 07 Dec 2010 12:29:31 +0100
Hans de Goede <hdegoede@xxxxxxxxxx> wrote:

> On 12/06/2010 10:18 PM, Antonio Ospite wrote:

[...]
> > Now the hard part begins, here's a loose TODO-list:
> >    - Discuss the "fragmentation problem":
> >       * the webcam kernel driver and the libusb backend of libfreenect
> >         are not going to conflict each other in practice, but code
> >         duplication could be avoided to some degree; we could start
> >         listing the advantages and disadvantages of a v4l2 backend
> >         opposed to a libusb backend for video data in libfreenct (don't
> >         think in terms of userspace/kernelspace for now).
> 
> I think that being able to use the kinect as just a webcam in apps like cheese,
> skype and google chat is a major advantage of the kernel driver. I also
> think that in the long run it is not useful to have 2 different drivers.
>

Well, keep in mind that libfreenect meant to be a postable layer
across different platforms, so the libusb backend would be around even
if the projects ended up not using it on linux.

[...]
> 
> >    - Check if gspca can handle two video nodes for the same USB device
> >      in a single driver (Kinect sensor uses ep 0x81 for color data and
> >      ep 0x82 for depth data).
> 
> Currently gspca cannot handle 2 streaming endpoints / 2 video nodes for 1
> usb device. I've been thinking about this and I think that the simplest solution
> is to simply pretend the kinects video functionality consists of 2 different
> devices / usb interfaces in a multifunction device. Even though it does not
> what I'm proposing is for the kinect driver to call: gspca_dev_probe twice with
> 2 different sd_desc structures, thus creating 2 /dev/video nodes, framequeues and
> isoc management variables.
> 
> This means that the alt_xfer function in gspca.c needs to be changed to not
> always return the first isoc ep. We need to add an ep_nr variable to the
> cam struct and when that is set alt_xfer should search for the ep with that
> number and return that (unless the wMaxPacketSize for that ep is 0 in the
> current alt setting in which case NULL should be returned).
>

Thanks for these directions, it doesn't sound too hard to do.

> >    - Decide if we want two separate video nodes, or a
> >      combined RGB-D data stream coming from a single video device node.
> >      (I haven't even looked at the synchronization logic yet).
> 
> I think 2 separate nodes is easiest, also see above.
> 

That's the way I am going for now.

Regards,
   Antonio

-- 
Antonio Ospite
http://ao2.it

PGP public key ID: 0x4553B001

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?

Attachment: pgpfd1sUJy4Ei.pgp
Description: PGP signature


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux