History log of /haiku/src/add-ons/media/media-add-ons/usb_webcam/CamDevice.cpp
Revision Date Author Comments
# 628ddb27 25-Sep-2021 Franck LeCodeur <cassisian@gmail.com>

usb_webcam: Fix warnings and enable Werror

Done as part of #9460

Change-Id: I45f53451c91d63f5e5170234c75a831472cfffc7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4501
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# fb5c24d8 09-Oct-2021 Adrien Destugues <pulkomandy@pulkomandy.tk>

MediaAddOn: missing const

Pretty much all add-ons are setting this to point to a const string, so
we should make sure that nothing tries to modify it.


# 88d7c774 27-Feb-2019 Murai Takashi <tmurai01@gmail.com>

media-add-ons/usb_webcam: Fix -Wclass-memaccess

Remove memset(), since WebCamAddOn()::FillDefaultFlavorInfo()
at next line sets all flavor_info members except _reserved_[].

Change-Id: I41b4297a79303b61ccea914133b268b118b0d968
Reviewed-on: https://review.haiku-os.org/c/1118
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>


# 51a01ea0 25-Aug-2011 Jérôme Duval <korli@users.berlios.de>

Patch from Gabriel Hartmann for his GSoC UVC project. Coding style updates by myself. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22f4c339 16-May-2011 Jérôme Duval <korli@users.berlios.de>

* select idle alternate when stopping the UVC device.
* set up a dumb deframer.
* received isochronous buffers can be zero length: loop instead of breaking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5a66905 07-Apr-2011 Jérôme Duval <korli@users.berlios.de>

* style fixes.
* added SuggestVideoFrame() so that this can be overriden.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41195 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02af02f9 12-Apr-2010 Jérôme Duval <korli@users.berlios.de>

partial clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36198 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb086488 28-Aug-2009 François Revol <revol@free.fr>

- style fixes,
- fix error handling in CamDevice.cpp,
- implemented PowerOnSensor() for Sonix,
- add a ProbeByIICSignature method to CamSensor, that takes a list of regs and values to match, as some Linux drivers do,
- add (unfinished, mostly copied from TAS5110C1B) support for TAS5130D1B sensor,
- add (unfinished) support for PAS106 sensor, probe by IIC signature as the Linux driver does,
- add probing by IIC signature for the HV7131E1 sensor as the Linux driver does,
- use -lusb for BeOS (actually ZETA) builds, don't try to use the Haiku USB Kit,
- for the TAS5110C1B sensor, use remove code dup and call SetVideoFrame(), tweaked the values to match those sniffed from the XP driver,
- disabled gain control for now on sonix, doesn't seem to work on all models.
This gets another sonix-based webcam working, partially at least, so if you want to get one to try until UVC works, try this one:
http://www.macally.com/EN/product/ArticleShow.asp?ArticleID=119
We should at least have one webcam supported in the alpha :D
+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32795 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 591eab0a 18-Jul-2009 François Revol <revol@free.fr>

- add PowerOnSensor() virtual,
- Add Or/And reg helpers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d29cb415 22-Feb-2009 François Revol <revol@free.fr>

Fix ZETA build, USBKit doesn't have the AltInterface stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32bf83a3 22-Feb-2009 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Fix initialisation of CamDevice::fIsoIn.
* Fix debug message on IsoIn path.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6595d683 22-Feb-2009 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Make usb device detection in usb_webcam identical to the way the usb bus_manager handles it.
* Fix some minor printf()-style warnings in the debug build of usb_webcam.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29279 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a1830cbd 30-Sep-2008 François Revol <revol@free.fr>

Add missing copyrights.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27812 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0866ac7e 07-May-2008 François Revol <revol@free.fr>

- point to logitech opensource website
- cleanup
- handle frame size suggestions (Codycam gets QVGA now, and eXposer doesn't complain), though the picture is not centered nor scaled yet.
- added a stat text parameter to show actual frame rate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25359 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d55e0f83 05-May-2008 François Revol <revol@free.fr>

Turns out my QuickCam is not a usual quickcam with an WTV600 chip but an NW80x based one...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25321 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 74b3713a 05-May-2008 François Revol <revol@free.fr>

- style cleanup (remove // -----, 2 lines between funcs)
- hooks to handle probing sensor chips instead of hardcoding them.
- more urls for reference drivers (the macam driver would be interesting but it's GPL and ObjC :-( )...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b880818 04-May-2008 François Revol <revol@free.fr>

- some code to support isochronous, not yet functional.
- some code for quickcam, not yet functional.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25319 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a486abdc 04-May-2008 François Revol <revol@free.fr>

- don't hardcode frame size, use the maximum available instead. Setting it at connection won't work yet.
- Added hooks to handle device and sensor-specific parameters
- Added gain controls for my webcam, oddly none seem to work correctly except green gain :^)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25315 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e53032e5 08-Mar-2008 François Revol <revol@free.fr>

Fix warnings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24319 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6bb8b29f 09-Jan-2008 François Revol <revol@free.fr>

Make CamFrame a subclass of BMallocIO to add a timestamp field.
Set the field on allocation and pass it around.
Still disabled as CodyCam drops everything, I should probably drop old frames from the buffer...
for now it uses system_time() to make CodyCam happy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 830d9677 12-May-2007 François Revol <revol@free.fr>

added CamdDevice::WaitFrame() which will be needed to rewrite teh producer frame generator thread


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21126 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61064c3b 12-May-2007 François Revol <revol@free.fr>

Better locking: CamDevice::Start/StopTransfer() should be called with lock held.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21125 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 634dc81d 23-Jan-2007 François Revol <revol@free.fr>

remove zeta-specific stuff from the use of USB Kit, USBKit.h is all we need.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19924 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c9bd703 28-Aug-2006 François Revol <revol@free.fr>

Current version of my USB Webcam driver. WORK IN PROGRESS!
Uses the USB Kit (userland API, needs libusb) to publish a
media node representing the webcam.
It currently only works with my Sonix webcam (3Euro cheapo
cam), but is modular enough to easily expand it, some code
is already there to detect Quickcams.
For now you should be able to build it under Zeta with the
makefile provided.
Making a Jamfile might get tricky as several source files are
created by the makefile itself to include addons and censors
in the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18670 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51a01ea03b482556ca9780c879a727fad22201c6 25-Aug-2011 Jérôme Duval <korli@users.berlios.de>

Patch from Gabriel Hartmann for his GSoC UVC project. Coding style updates by myself. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22f4c33994d7149675821df857cfe7e7f424687b 16-May-2011 Jérôme Duval <korli@users.berlios.de>

* select idle alternate when stopping the UVC device.
* set up a dumb deframer.
* received isochronous buffers can be zero length: loop instead of breaking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5a669052f4a927ac82f9d8bc3134e680601c9ce 07-Apr-2011 Jérôme Duval <korli@users.berlios.de>

* style fixes.
* added SuggestVideoFrame() so that this can be overriden.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41195 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02af02f93ae67777d65cce1eda1c5f21aaed3446 12-Apr-2010 Jérôme Duval <korli@users.berlios.de>

partial clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36198 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb086488a9cfb386e73a31e0303940f0176df11c 28-Aug-2009 François Revol <revol@free.fr>

- style fixes,
- fix error handling in CamDevice.cpp,
- implemented PowerOnSensor() for Sonix,
- add a ProbeByIICSignature method to CamSensor, that takes a list of regs and values to match, as some Linux drivers do,
- add (unfinished, mostly copied from TAS5110C1B) support for TAS5130D1B sensor,
- add (unfinished) support for PAS106 sensor, probe by IIC signature as the Linux driver does,
- add probing by IIC signature for the HV7131E1 sensor as the Linux driver does,
- use -lusb for BeOS (actually ZETA) builds, don't try to use the Haiku USB Kit,
- for the TAS5110C1B sensor, use remove code dup and call SetVideoFrame(), tweaked the values to match those sniffed from the XP driver,
- disabled gain control for now on sonix, doesn't seem to work on all models.
This gets another sonix-based webcam working, partially at least, so if you want to get one to try until UVC works, try this one:
http://www.macally.com/EN/product/ArticleShow.asp?ArticleID=119
We should at least have one webcam supported in the alpha :D
+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32795 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 591eab0abaea8ce61974be399f187e84f329f18a 18-Jul-2009 François Revol <revol@free.fr>

- add PowerOnSensor() virtual,
- Add Or/And reg helpers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d29cb415215bfcc87c104c919e3b0ce1e18cb7a0 22-Feb-2009 François Revol <revol@free.fr>

Fix ZETA build, USBKit doesn't have the AltInterface stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 32bf83a34b389ad1aa2677fba619a6a44fa38a0d 22-Feb-2009 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Fix initialisation of CamDevice::fIsoIn.
* Fix debug message on IsoIn path.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6595d6836d794749fbbf6d9f4deb70d4e1d1c7df 22-Feb-2009 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Make usb device detection in usb_webcam identical to the way the usb bus_manager handles it.
* Fix some minor printf()-style warnings in the debug build of usb_webcam.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29279 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a1830cbd577f57e8c92e5fea206d5dbf777a67a0 30-Sep-2008 François Revol <revol@free.fr>

Add missing copyrights.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27812 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0866ac7e91ed776223ec00160e60faaa8a9682e6 07-May-2008 François Revol <revol@free.fr>

- point to logitech opensource website
- cleanup
- handle frame size suggestions (Codycam gets QVGA now, and eXposer doesn't complain), though the picture is not centered nor scaled yet.
- added a stat text parameter to show actual frame rate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25359 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d55e0f83f2ae17b5c4528647ab7d7d57db8cc6b5 05-May-2008 François Revol <revol@free.fr>

Turns out my QuickCam is not a usual quickcam with an WTV600 chip but an NW80x based one...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25321 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 74b3713ab98b669bbc98d4b5c074c9dd89db613d 05-May-2008 François Revol <revol@free.fr>

- style cleanup (remove // -----, 2 lines between funcs)
- hooks to handle probing sensor chips instead of hardcoding them.
- more urls for reference drivers (the macam driver would be interesting but it's GPL and ObjC :-( )...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b880818a5d7b789bdd2b3a253b320b26c3dd1b6 04-May-2008 François Revol <revol@free.fr>

- some code to support isochronous, not yet functional.
- some code for quickcam, not yet functional.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25319 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a486abdce0e5725976184dd2752d42caa432fbb3 04-May-2008 François Revol <revol@free.fr>

- don't hardcode frame size, use the maximum available instead. Setting it at connection won't work yet.
- Added hooks to handle device and sensor-specific parameters
- Added gain controls for my webcam, oddly none seem to work correctly except green gain :^)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25315 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e53032e55dd3ce646da788cd78ee86a293d491c2 08-Mar-2008 François Revol <revol@free.fr>

Fix warnings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24319 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6bb8b29f4808742e25b256451e77ada26ed136a4 09-Jan-2008 François Revol <revol@free.fr>

Make CamFrame a subclass of BMallocIO to add a timestamp field.
Set the field on allocation and pass it around.
Still disabled as CodyCam drops everything, I should probably drop old frames from the buffer...
for now it uses system_time() to make CodyCam happy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 830d96771792994ee013957b02a2207400d60680 12-May-2007 François Revol <revol@free.fr>

added CamdDevice::WaitFrame() which will be needed to rewrite teh producer frame generator thread


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21126 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61064c3beae028e5a269ccaf610dde46e5cbd9e0 12-May-2007 François Revol <revol@free.fr>

Better locking: CamDevice::Start/StopTransfer() should be called with lock held.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21125 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 634dc81de98ef0dec960b794ec9fc76425243535 23-Jan-2007 François Revol <revol@free.fr>

remove zeta-specific stuff from the use of USB Kit, USBKit.h is all we need.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19924 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c9bd70310636a2ce913fba5ef02a51008c06ef5 28-Aug-2006 François Revol <revol@free.fr>

Current version of my USB Webcam driver. WORK IN PROGRESS!
Uses the USB Kit (userland API, needs libusb) to publish a
media node representing the webcam.
It currently only works with my Sonix webcam (3Euro cheapo
cam), but is modular enough to easily expand it, some code
is already there to detect Quickcams.
For now you should be able to build it under Zeta with the
makefile provided.
Making a Jamfile might get tricky as several source files are
created by the makefile itself to include addons and censors
in the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18670 a95241bf-73f2-0310-859d-f6bbb57e9c96