After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 583733 - PS2 Namtai Eyetoy doesn't display on Cheese but does with gstreamer (and everything else)
PS2 Namtai Eyetoy doesn't display on Cheese but does with gstreamer (and ever...
Status: RESOLVED NOTGNOME
Product: cheese
Classification: Applications
Component: general
2.26.x
Other All
: Normal major
: 2.26
Assigned To: Cheese Maintainer(s)
Cheese Maintainer(s)
: 578441 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-05-24 16:36 UTC by James Robson
Modified: 2009-06-19 13:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26



Description James Robson 2009-05-24 16:36:09 UTC
Please describe the problem:
Cheese gives a "No Camera Found" error, despite there being a camera connected. Works with all other software except VLC, but does work with normally problem software such as Skype. Webcam was wqorking on earlier versions of Ubuntu withe same drivers, and on Jaunty with default drivers which are buggy for other purposes.

Drivers used are ov51-jpeg modules.

Steps to reproduce:
1. Install Ubuntu Jaunty.
2. Install ov51x-jpeg drivers: http://www.rastageeks.org/ov51x-jpeg/index.php/Ov51xJpegHackedInstall
3. Start Cheese


Actual results:
Cheese opens, does not detect Camera.

Expected results:
Cheee works, I see myself.

Does this happen every time?
Yes, reboots do nothing.

Other information:
Again, webcam works with everything else (except VLC, for other reasons I think), and works with gstreamer-properties.
Comment 1 Filippo Argiolas 2009-05-24 16:47:10 UTC
What does "hal-find-by-capability --capability video4linux" say?

Comment 2 James Robson 2009-05-24 16:49:57 UTC
(In reply to comment #1)
> What does "hal-find-by-capability --capability video4linux" say?
> 

No output.
Comment 3 Filippo Argiolas 2009-05-24 16:58:25 UTC
Your driver is doing something wrong (according to our past experience there is some chance that it isn't correctly setting the parent field in the videodev structure). So hal is not able to detect it as a video4linux device.

If everything will go as I plan, I'll drop hal detection code for the next major release (2.28) and this issue should go away on its own.
Nonetheless your driver is actually "bugged" and you should report it to its developers. Feel free to point them here.
Comment 4 James Robson 2009-05-24 17:01:31 UTC
(In reply to comment #3)
> Your driver is doing something wrong (according to our past experience there is
> some chance that it isn't correctly setting the parent field in the videodev
> structure). So hal is not able to detect it as a video4linux device.
> 
> If everything will go as I plan, I'll drop hal detection code for the next
> major release (2.28) and this issue should go away on its own.
> Nonetheless your driver is actually "bugged" and you should report it to its
> developers. Feel free to point them here.
> 

Thanks, but why was it working with the exact same driver in Hardy? That was with 2.22... I presume you changed the code to make it better at detecting devices by using the hal thing, and as such these woefully hacked drivers failed :P?
Comment 5 Filippo Argiolas 2009-05-24 17:04:22 UTC
Uhm no as far as I know HAL stuff was already in 2.22, maybe it's not exactly the same driver :) could be that something has changed there, don't know.
Comment 6 Filippo Argiolas 2009-05-24 17:05:15 UTC
*** Bug 578441 has been marked as a duplicate of this bug. ***
Comment 7 James Robson 2009-05-24 17:10:04 UTC
(In reply to comment #5)
> Uhm no as far as I know HAL stuff was already in 2.22, maybe it's not exactly
> the same driver :) could be that something has changed there, don't know.
> 

It's exactly the same driver asfaik=- complied it myself as it were. Perhaps some of the other modules have changed or something. As it is, it's an issue limited to Cheese, but thanks anyway.
Comment 8 Filippo Argiolas 2009-05-24 17:15:02 UTC
We had other similar issues with other drivers that have been fixed by respective developers. Please try to report this one to that driver maintainers.

Sure it could be limited to Cheese but we're just exposing a bug in the driver.
Comment 9 Filippo Argiolas 2009-05-24 17:17:49 UTC
Now that I think about it I remember a change in the v4l kernel stack that could have triggered this. Something in the videodev structure. All in tree drivers have been updated pretty soon but maybe yours missed it because it's not included in the mainline kernel. I could look for the particular commit but I'm not sure it's worth.
Comment 10 James Robson 2009-05-24 17:19:56 UTC
(In reply to comment #9)
> Now that I think about it I remember a change in the v4l kernel stack that
> could have triggered this. Something in the videodev structure. All in tree
> drivers have been updated pretty soon but maybe yours missed it because it's
> not included in the mainline kernel. I could look for the particular commit but
> I'm not sure it's worth.
> 

Quite possibly as soon as a new version of driver comes out base on in tree versions, then it'll fix it, but we'll see I guess. Thanks, anyway. Will email link to this bugreport to the mailing list.
Comment 11 Filippo Argiolas 2009-05-24 17:31:39 UTC
The change I remember was renaming the "dev" field to "parent" in the videodev structure.
It should be pretty easy to fix with something like:
-  ov->vdev->dev = dev->dev;
+  ov->vdev->parent = dev->dev;

in ov51x-jpeg-core.c line 8377 (from the 1.5.7 tarball)
Comment 12 Filippo Argiolas 2009-05-24 17:37:15 UTC
And, this is the commit
http://linuxtv.org/hg/v4l-dvb/rev/db7029e2fe8c
Comment 13 James Robson 2009-05-24 17:41:39 UTC
(In reply to comment #11)
> The change I remember was renaming the "dev" field to "parent" in the videodev
> structure.
> It should be pretty easy to fix with something like:
> -  ov->vdev->dev = dev->dev;
> +  ov->vdev->parent = dev->dev;
> 
> in ov51x-jpeg-core.c line 8377 (from the 1.5.7 tarball)
> 

Didn't complie with: /usr/src/webcam/modules/ov51x-jpeg/ov51x-jpeg-core.c:8377: error: incompatible types in assignment
Comment 14 Filippo Argiolas 2009-05-24 17:46:15 UTC
Well I was just guessing I didn't test it.
That's the part to change anyway, ask driver developers.
Comment 15 Filippo Argiolas 2009-05-24 17:54:26 UTC
try &dev->dev instead of dev->dev
Comment 16 Martijn Vermaat 2009-06-10 14:59:27 UTC
Works for me:

-  ov->vdev->dev = dev->dev;
+  ov->vdev->parent = &dev->dev;

in ov51x-jpeg-core.c line 8377 (from the 1.5.9 tarball)
Comment 17 James Robson 2009-06-10 15:27:13 UTC
Evidently I was doing something wrong. This worked for me!
Comment 18 Filippo Argiolas 2009-06-19 13:47:31 UTC
Good news for you guys!
http://hansdegoede.livejournal.com/7219.html