Re: Improving kernel -> userspace (usbfs) usb device hand off

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

 




On Sat, 11 Jun 2011, Xiaofan Chen wrote:

> On Sat, Jun 11, 2011 at 6:43 AM, Theodore Kilgore
> <kilgota@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> >> If the linux community decided to put webcam functionality in kernel and
> >> still image functionality on a completely separate driver, that's
> >> entirely our problem.
> >
> > As I understand, the basic reason why webcam functionality needs to be in
> > the kernel is speed. Quick reaction time, and faster data transmission.
> > Most but not all webcams use isochronous data transport. The ones which do
> > not, cannot get as high a rate of frames per second. Isochronous data
> > transport has historically seemed to need kernel support in order to work
> > properly. Related to this, libusb has not supported isochronous data
> > transport. But still cameras use bulk transport. This is natural because
> > one needs to move data which is stored on the camera to a place on the
> > computer where it can be processed (if needed) and stored. There is no
> > impediment to userspace talking to a USB device, so why not go ahead and
> > do the job that way if the kernel is not needed?
> 
> Just one comment, libusb-1.0 does support isochronous transfer.
> http://libusb.sourceforge.net/api-1.0/group__asyncio.html
> Whether you want to use libusb-1.0 for the webcam functionality is another
> story.

Well, I guess I have not kept up with the latest. It didn't used to do 
that. I still can't help wondering if isochronous transport through libusb 
would really work for webcam application, though, because userspace access 
to a piece of hardware will almost surely be less direct than kernel 
access. Sort of by instinct, I would say that there would be too many 
layers of code one on top of the other.

This is interesting, though. A good way to try it out would be by doing 
something small to start with. One could try to add the ability to capture 
a frame to the libgphoto2 driver for, say, the MR97310A cameras. If frame 
capture were going to work at all for those cameras, it would have to be 
done with isochronous support. Thus, the current situation for these 
cameras is that frame capture has to be done using a webcam app which can 
grab frames.

Theodore Kilgore
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux