Bug 601563
Summary: | libv4lconvert | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Leslie Katz <lesliek> |
Component: | libv4l | Assignee: | Hans de Goede <hdegoede> |
Status: | CLOSED UPSTREAM | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | low | ||
Version: | rawhide | CC: | hdegoede |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2010-06-10 09:44:09 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Leslie Katz
2010-06-08 08:10:51 UTC
Those errors are being printed by libv4lconvert because your webcam is producing corrupt jpeg frames. This could be a driver issue, or a hardware issue. Can you attach the output of dmesg and lsusb please ? I HOPE that this is the relevant output from dmesg (I'm not very knowledgeable about these things!): [60049.912051] usb 3-1: new full speed USB device using ohci_hcd and address 2 [60050.079289] usb 3-1: configuration #1 chosen from 1 choice [60050.923634] TKIP: RX tkey->key_idx=2 frame keyidx=1 priv=d8d36a80 [60051.658433] Linux video capture interface: v2.00 [60051.746547] gspca: main v2.6.0 registered [60051.776481] gspca: probing 0ac8:307b [60052.633111] zc3xx: probe 2wr ov vga 0x7648 [60052.633120] zc3xx: probe sensor -> 7648 [60052.633127] zc3xx: Find Sensor OV7648 [60052.637261] gspca: probe ok [60052.637310] usbcore: registered new interface driver zc3xx [60052.637318] zc3xx: registered Likewise, that this is what you want from lsusb: Bus 003 Device 002: ID 0ac8:307b Z-Star Microelectronics Corp. USB 1.1 Webcam Yes that is what I was looking for, thanks. Do you get this error message once, or do you get it printed a lot of times ? Also does the webcam work in cheese, and does the display look ok, or is some part missing at the bottom ? Thanks & Regards, Hans Apologies. I should've said that the error message keeps repeating for so long as the program keeps running. I know that because I run the program from a terminal and can see the output in the terminal in the background while cheese is open. Also, when I run the program, the display is fine; nothing is missing at the bottom. I see video of myself. Apologies. I should've said that the error message keeps repeating for so long as the program keeps running. I know that because I run the program from a terminal and can see the output in the terminal in the background while cheese is open. Also, when I run the program, the display is fine; nothing is missing at the bottom. I see video of myself. Hi, This will need some further testing / debugging. Could you please try installing and running camorama with your webcam, do: yum install camorama camorama And then check if the entire image is ok, esp. if the bottom right corner (the last pixel) is showing what it should, try moving a piece of paper in front of the cam so that it covers this corner and check that the last pixel also changes to the color of the paper (and back again when you remove the paper). Also write down the framerate that camorama is showing. Also I've made some changes to libv4l recently which should lead to the error message no longer being printed or changing depending on the exact nature of the problem. Can you please install and try the latest libv4l version ? Do: git clone git://linuxtv.org/v4l-utils.git cd v4l-utils/lib And then follow the installation instructions here: http://hansdegoede.livejournal.com/7622.html After this try the camera again with camorama, look at the framerate again, has it changed ? Thanks & Regards, Hans I'm certainly prepared to try to install camorama and the latest version of libv4l and do as you suggest, but have to ask first--does it matter that I'm using Ubuntu rather than Fedora? I first posted about my problem on the cheese list and was told to file this bug report instead, so I did, without worrying about the fact that I wasn't using Fedora. Now I'm worried I might have breached some rule in doing that. (In reply to comment #7) > I'm certainly prepared to try to install camorama and the latest version of > libv4l and do as you suggest, but have to ask first--does it matter that I'm > using Ubuntu rather than Fedora? > > I first posted about my problem on the cheese list and was told to file this > bug report instead, so I did, without worrying about the fact that I wasn't > using Fedora. Now I'm worried I might have breached some rule in doing that. Hi, No problem I'm libv4l's upstream author and maintainer so I'm still interested in pursuing this. Using Fedora bugzilla for this is a bit strange though, directly mailing me would have been better. But we are here now anyways so lets continue this discussion here. Your milage with camorama on ubuntu may vary but we'll see. There are 2 reasons why I want you to try camorama: 1) It does not scale the image but shows it at its true resolution, so if 1 or 2 pixels at the bottom right are corrupt (which I would expect given the error message you are seeing) it will not blur them out because of scaling 2) It shows at how much fps the video stream is running Chances are red and blue colors will be swapped in Ubuntu's camorama this is a known camorama bug, which has been fixed in Fedora for a while now :) Regards, Hans Well, I fell almost at the first hurdle. I installed camorama (v 0.19-2). Before running it, I ran cheese, just to make sure that the webcam was working. It was, but cheese still produced the error messages that had prompted me to raise this in the first place. I shut down cheese. I then ran camorama from a terminal. The following appeared in the terminal: "(camorama:3490): Gtk-WARNING **: GtkSpinButton: setting an adjustment with non-zero page size is deprecated". camorama opened in a second window, but there was no picture where it should have appeared, just a series of horizontal fuzzy grey bars. A separate window also appeared with the error message: "Unable to capture image." I'm not sure what to try next. I did take a screenshot of my desktop with the three windows open on it, but don't know if there's a way to attach it to this message. If you'd like to see it, I could email it to you. Thank you for trying to help me like this. Try running camorama like this: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so camorama That should help. That made camorama work, thank you. Here are the points I hope you want from me: 1. In the terminal, the same error message as that I get when running cheese kept repeating itself. 2. The image didn't fill the area it should have filled. Along the bottom was a thin black strip of uniform width. 3. The colours were wrong, as you said they'd be. 4. The current and average fps readings varied, but after a while, I saw 25.00 current and 23.71 average. Leslie, Thanks that is all very good info to have, this means that as I already was afraid the problem is a driver bug. I believe this is already fixed in the latest upstream kernel. To verify you could install the latest v4l-dvb stack. There is a special v4l-dvb tree which allows replacing your v4l drivers without replacing your entire kernel. To do this install mercurial and then do: hg clone http://linuxtv.org/hg/~hgoede/gspca cd gspca make menuconfig <disable at least the zc0301 driver (under video -> usb), exit, save> make <if the make fails in some driver, disable that driver in menuconfig, this sometimes happens depending on which kernel you are compiling against> sudo make install <reboot, yes really> Then you will have the latest upstream v4l stack, which I expect will fix this problem. Regards, Hans Hans, I'm sorry, but I'm simply not competent to do what you ask. I got as far as running make menuconfig and a window opened for kernel configuration, but I had absolutely no idea how to proceed from there, so I just closed the window down, without (I hope!) making any changes. I'll try to find some information about how one uses the configuration window and if I can understand it will return to that window and report back. Leslie Hi, No worries. I just checked and things should work if you don't make any changes, so do: make menuconfig <select exit> <choose yes to save changes if asked> make sudo make install <reboot, yes really> Regards, Hans Hans, I followed each of the steps you listed. All seemed to work as it should. I then rebooted. Unfortunately, all is as it was before. cheese keeps spitting out the same message while it remains open. camorama only runs when I use the special command you gave me and then the points about it that I made above still apply. I'm sorry to be such a pain! Hi, I think that for some reason you are still using the old driver. Can you run cheese, then go to the preferences menu and see what resolutions it lists ? With the new driver it should list 640x472 and 320x232. Maybe you're running a different kernel now as before the reboot ? Regards, Hans Cheese doesn't list those resolutions, but 640x480 and 320x240. My default kernel is 2.6.31-22-generic. When I booted up before running makeconfig, I didn't change away from the default, nor did I do anything on the reboot. uname -r shows that kernel now. So the new driver didn't install then, despite my thinking everything had worked. (In reply to comment #17) > Cheese doesn't list those resolutions, but 640x480 and 320x240. > > My default kernel is 2.6.31-22-generic. > > When I booted up before running makeconfig, I didn't change away from the > default, nor did I do anything on the reboot. uname -r shows that kernel now. > > So the new driver didn't install then, despite my thinking everything had > worked. Hmm, Try running the following commands from the gspca directory again: make sudo make install They will show that they "cd" in to a kernel source directory, check that they go into a directory which has 2.6.31-22-generic in its path name. Regards, Hans I ran make. Here's what happened, leaving out many errors listed re firedtv-1394.c: make -C /home/leslie/gspca/v4l make[1]: Entering directory `/home/leslie/gspca/v4l' creating symbolic links... make -C firmware prep make[2]: Entering directory `/home/leslie/gspca/v4l/firmware' make[2]: Leaving directory `/home/leslie/gspca/v4l/firmware' make -C firmware make[2]: Entering directory `/home/leslie/gspca/v4l/firmware' make[2]: Nothing to be done for `default'. make[2]: Leaving directory `/home/leslie/gspca/v4l/firmware' Kernel build directory is /lib/modules/2.6.31-22-generic/build make -C /lib/modules/2.6.31-22-generic/build SUBDIRS=/home/leslie/gspca/v4l modules make[2]: Entering directory `/usr/src/linux-headers-2.6.31-22-generic' CC [M] /home/leslie/gspca/v4l/firedtv-1394.o … make[3]: *** [/home/leslie/gspca/v4l/firedtv-1394.o] Error 1 make[2]: *** [_module_/home/leslie/gspca/v4l] Error 2 make[2]: Leaving directory `/usr/src/linux-headers-2.6.31-22-generic' make[1]: *** [default] Error 2 make[1]: Leaving directory `/home/leslie/gspca/v4l' make: *** [all] Error 2 Did whatever happened re firedtv-1394.c stop other things from happening? But make install SEEMED to me to be installing things. Here's everything that happened when I ran sudo make install: make -C /home/leslie/gspca/v4l install make[1]: Entering directory `/home/leslie/gspca/v4l' -e Removing obsolete files from /lib/modules/2.6.31-22-generic/kernel/drivers/media/video: -e Removing obsolete files from /lib/modules/2.6.31-22-generic/kernel/drivers/media/dvb/cinergyT2: -e Removing obsolete files from /lib/modules/2.6.31-22-generic/kernel/drivers/media/common: -e Removing obsolete files from /lib/modules/2.6.31-22-generic/kernel/drivers/media/dvb/frontends: Installing kernel modules under /lib/modules/2.6.31-22-generic/kernel/drivers/media/: /sbin/depmod -a 2.6.31-22-generic make -C firmware install make[2]: Entering directory `/home/leslie/gspca/v4l/firmware' Installing firmwares at /lib/firmware: vicam/firmware.fw dabusb/firmware.fw dabusb/bitstream.bin ttusb-budget/dspbootcode.bin cpia2/stv0672_vp4.bin av7110/bootcode.bin make[2]: Leaving directory `/home/leslie/gspca/v4l/firmware' make[1]: Leaving directory `/home/leslie/gspca/v4l' Hi, Ok I already was afraid this would happen with some somewhat older kernels for some reason the firedtv driver always fails to compile. To fix this do: make menuconfig <select Multimedia support (use the arrow keys), press enter> <go to the line which says "DVB for Linux", press 'N'> <exit> <exit> <yes save changes> make sudo make install I hope it works now :) Regards, Hans Did that. This time, during make, there were errors with ir-raw-event. I ran sudo make install afterwards and then rebooted. cheese still shows the same error message. Hmm, This just is not going anywhere I'm afraid. I'm pretty sure that the driver bug in question which you are seeing has been fixed. So in time when you get a newer ubuntu with a newer kernel the problem should fix it self. In the mean time other then the harmless error messages being printed and the small black line at the bottom you can use your webcam as is. Thanks for all the time you've put into this. Regards, Hans Thank you very much for being so patient! |