Opened 8 years ago

Last modified 3 months ago

#7113 new enhancement

libwebcam webcam API and some support UVC

Reported by: stargatefan Owned by: mmlr
Priority: normal Milestone: R1
Component: Drivers/USB Version: R1/Development
Keywords: webcam uvc usb Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

logitech has a LGPL and GPL set of API and frame work librarys for controlling and setting up uvc compliant webcams " should work for most uvc webcams as well"

Just putting this link here for future refrence.

http://www.quickcamteam.net/software/libwebcam

Change History (11)

comment:1 Changed 8 years ago by stargatefan

Summary: libwebcam webcam API and some driver support UVClibwebcam webcam API and some support UVC

comment:3 Changed 6 years ago by kallisti5

Interesting. I actually have a uvc video camera on my laptop and Haiku doesn't seem to do anything with it. I even added the USBID's to our uvc driver and saw no positive response. (adding usbid's shouldn't be needed though as long as the usb webcam id's itself as a uvc device)

It may be that the uvc driver isn't compiled in or something... someone should look into it at some point.

http://cgit.haiku-os.org/haiku/tree/src/add-ons/media/media-add-ons/usb_webcam

and

http://cgit.haiku-os.org/haiku/tree/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc

I think uvc is pretty well understood... so i'm not sure if we even care about libwebcam.

comment:4 in reply to:  3 Changed 6 years ago by modeenf

Yes I know. UVC was inactivated in the jamfile. But after activating it nothing happens (I havn't added my ID's) but the reason for the inactivation was that it was added in the media-addons without having support. perhaps it works and are only added if the hardware are there :)

comment:5 Changed 6 years ago by modeenf

also we are missing isochronous in USB.. but perhaps Bulk can work instead :)

comment:6 in reply to:  5 ; Changed 6 years ago by anevilyak

Replying to modeenf:

also we are missing isochronous in USB.. but perhaps Bulk can work instead :)

I was under the impression that's only the case for OHCI. EHCI definitely supports isochronous, and I thought it had been implemented for UHCI as well.

comment:7 in reply to:  6 ; Changed 6 years ago by modeenf

Replying to anevilyak:

Replying to modeenf:

also we are missing isochronous in USB.. but perhaps Bulk can work instead :)

I was under the impression that's only the case for OHCI. EHCI definitely supports isochronous, and I thought it had been implemented for UHCI as well.

True, now that you say that :) but are it fully working?

comment:8 in reply to:  7 Changed 6 years ago by siarzhuk

Replying to modeenf:

Replying to anevilyak:

Replying to modeenf:

also we are missing isochronous in USB.. but perhaps Bulk can work instead :)

I was under the impression that's only the case for OHCI. EHCI definitely supports isochronous, and I thought it had been implemented for UHCI as well.

True, now that you say that :) but are it fully working?

As I have observed in my isochronous OHCI draft implementation it is critical that no more than max packet size of data should be sent to the endpoint during one USB frame. AFAIR our current implementation for EHCI, UHCI ignores this restriction so, probably it doesn't work too. Or just work only for IN endpoints (reading from device). From the other side it can be the OHCI-only restriction so I may be wrong in generalizing this to all controller types. But common sense says me that exceeding endpoints hardware "max packet size" buffer is not a good thing in any case. ;-)

comment:9 Changed 6 years ago by modeenf

So what you say are that reading works for OHCI , EHCI, UHCI and writing works if you don't exeeds max size?

Writing to isochronous are only used for things like sound output (or are it the mic) and writing to disk(if isochronous can be used for disks)and output of data to any form of media USB type?

comment:10 in reply to:  9 Changed 6 years ago by siarzhuk

Replying to modeenf:

So what you say are that reading works for OHCI , EHCI, UHCI and writing works if you don't exeeds max size?

Hmmm.. I would say: it _may_ work. You just receive only max packet size data amount from endpoint per frame in this case. ;-)

Writing to isochronous are only used for things like sound output (or are it the mic) and writing to disk(if isochronous can be used for disks)

isochronous transfers are targeted for time-critical data stream applications. There are no guarantee that all frames you have send will be consumed by endpoint.

comment:11 Changed 3 months ago by pulkomandy

Sourcecode for libwebcam now lives at https://sourceforge.net/projects/libwebcam/

Note: See TracTickets for help on using tickets.