Webcam Microsoft VX-3000 (LifeCam) / Bad video quality

I’ve got a Microsoft VX-3000 webcam for 3 reasons:

  1. 640x480 sensor
  2. Is cheap (U$S 35 here)
  3. Is listed as supported on the Gspca/Spca5xx, Spca5xx-LE WebCams Driver Compatibility Chart

Is marked in Support column with Yes in green, and 3 stars… Now I see why 3 and no more, it have some video quality problems that I will describe in this post.

Before describing the problem, I must tell that is the 3rd day searching the web for a solution and no luck. Only a thread in a Ubuntu forum with no solution.

Also I can’t find a Bug Report area for the gspca drivers.

This is the scenario an the problem:

My hardware

Processor: Pentim 4 1.8Ghz
USB version: 2.0
Webcam: Microsoft VX-3000 (LifeCam)
lsusb:

Bus 003 Device 003: ID 046d:c517 Logitech, Inc.
Bus 003 Device 002: ID 03f0:2f11 Hewlett-Packard
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
**Bus 001 Device 004: ID 045e:00f5 Microsoft Corp.**
Bus 001 Device 001: ID 0000:0000

My installed software

SO: openSUSE 10.3, KDE 3.5.7 “release 72.9”
Kernel: 2.6.22.17-0.1-default
USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
Webcam driver package: gspcav1-kmp-default, version: 20071224_2.6.22.17_0.1-10.2 i586

The problem

The webcam is recognized, after plug it this is the dmesg result:


usb 1-3: new full speed USB device using ohci_hcd and address 5
usb 1-3: new device found, idVendor=045e, idProduct=00f5
usb 1-3: new device strings: Mfr=0, Product=1, SerialNumber=0
usb 1-3: Product: USB camera
usb 1-3: configuration #1 chosen from 1 choice
/usr/src/packages/BUILD/gspcav1-20071224/obj/default/gspca_core.c: USB GSPCA camera found. SONIX JPEG (sn9c1xx)
/usr/src/packages/BUILD/gspcav1-20071224/obj/default/gspca_core.c: [spca5xx_probe:4275] Camera type JPEG
/usr/src/packages/BUILD/gspcav1-20071224/obj/default/gspca_core.c: [spca5xx_getcapability:1249] maxw 640 maxh 480 minw 160 minh 120

Then when I try some program so see the video output the quality is bad, as I would describe:

gqcam

This is the most versatile program I’ve found to test the webcam video outupt.

When started, it uses the small format, and video is very dark, colors distorted:

http://www.pbueti.com.ar/web/images/vx3000/shoot01.jpg

Seems that nothing I do with controls help to get my face visible. Something happens allways, in gccam and the other programs I’ve tested… When touching any paramenter (brightness, hue, etc), contrast is reset to a fixed level, then when touching contrast control is goes to the set position).

In half size same kind of problems.

In full size the image is accepable, but same problem with contrast control:

http://www.pbueti.com.ar/web/images/vx3000/shoot02.jpg

This is the only program and format with I can get a decent video output.

Skype

In Options - Video Devices I’ve a Test button, when pressed I see this:

http://www.pbueti.com.ar/web/images/vx3000/shoot03.jpg

Similar to half quality but seeing only a portion of the sensor capture surface.

In a video call, sending video looks similar, but after a few seconds the image starts scaling, camera led blinks almost 5 times and at the end video seems to be ok: I can see myself almost gqcam in full size, but the other person only see a distorted frozen picture of me vertically inverted.

Kopete

Going to Settings -> Devices -> Video I see video output exaclty like gqcam half size, and controls react with the same problem touching contrast.

Conclusion

If someone can share it’s experience in order to try to solve this problem I can run necesary tests and submit the results here.

Also if someone know where to report the bugs of gspca controller I’ll do it.

Thanks, Scot.

I don’t suppose you could ask the manufacturer for linux drivers? :rolleyes: :smiley: :smiley:

Anyway, I noted here that you have the correct driver that the community has produced:
http://mxhaard.free.fr/spca5xx.html

You could try downloading “wxcam” and “camorama” and see if you can tune the output better with one of those two programs.

Ok, I’m adding results with these two applications:

wxcam

The program starts in aparently in 320x240, image is visible, I can see my face. Gradually in 10 seconds it gets dark like the previous half size example.

After going to Settings -> Preferences application crash, I’ve started from console so here is the output:


me@pc~> wxcam
Cannot open input file: No existe el fichero o el directorio
Resolution setted to 320x240
Determining video4linux API version...
/dev/video0 is no V4L2 device
Using video4linux 1 API
Determining palette format...
Found palette VIDEO_PALETTE_RGB24
*** glibc detected *** wxcam: realloc(): invalid pointer: 0xb7171ff4 ***
======= Backtrace: =========
/lib/libc.so.6[0xb6dd94b6]
/lib/libc.so.6(realloc+0x255)[0xb6ddd2f5]
/usr/lib/libwx_baseu-2.8.so.0(_ZN12wxStringBase16AllocBeforeWriteEj+0x89)[0xb7087ce9]
/usr/lib/libwx_baseu-2.8.so.0(_ZN12wxStringBase10AssignCopyEjPKw+0x6f)[0xb70889ef]
/usr/lib/libwx_baseu-2.8.so.0(_ZN12wxStringBaseaSEPKw+0x3e)[0xb7088a6e]
wxcam[0x805b5fb]
wxcam[0x805f722]
wxcam[0x807b829]
/usr/lib/libwx_baseu-2.8.so.0(_ZNK12wxAppConsole11HandleEventEP12wxEvtHandlerMS0_FvR7wxEventES3_+0x41)[0xb7027fc1]
/usr/lib/libwx_baseu-2.8.so.0(_ZN12wxEvtHandler21ProcessEventIfMatchesERK21wxEventTableEntryBasePS_R7wxEvent+0x88)[0xb70cf1c8]
/usr/lib/libwx_baseu-2.8.so.0(_ZN16wxEventHashTable11HandleEventER7wxEventP12wxEvtHandler+0x78)[0xb70cf328]
/usr/lib/libwx_baseu-2.8.so.0(_ZN12wxEvtHandler12ProcessEventER7wxEvent+0xbf)[0xb70cf48f]
/usr/lib/libwx_gtk2u_core-2.8.so.0[0xb732f7b3]
/usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x4f)[0xb781dbcf]
/usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x129)[0xb7810919]
/usr/lib/libgobject-2.0.so.0[0xb78239ed]
/usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8ef)[0xb782563f]
/usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0xb7825989]
/usr/lib/libgtk-x11-2.0.so.0(gtk_widget_activate+0x58)[0xb7d6ee28]
/usr/lib/libgtk-x11-2.0.so.0(gtk_menu_shell_activate_item+0x182)[0xb7c58bf2]
/usr/lib/libgtk-x11-2.0.so.0[0xb7c5a6f8]
/usr/lib/libgtk-x11-2.0.so.0[0xb7c51914]
/usr/lib/libgtk-x11-2.0.so.0[0xb7c4b8a4]
/usr/lib/libgobject-2.0.so.0[0xb780f1f9]
/usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x129)[0xb7810919]
/usr/lib/libgobject-2.0.so.0[0xb7823b82]
/usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x617)[0xb7825367]
/usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0xb7825989]
/usr/lib/libgtk-x11-2.0.so.0[0xb7d6a197]
/usr/lib/libgtk-x11-2.0.so.0(gtk_propagate_event+0xc1)[0xb7c44b01]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main_do_event+0x2b8)[0xb7c45d68]
/usr/lib/libgdk-x11-2.0.so.0[0xb797ea2a]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x176)[0xb778b5d6]
/usr/lib/libglib-2.0.so.0[0xb778e972]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1e7)[0xb778ed57]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb4)[0xb7c46244]
/usr/lib/libwx_gtk2u_core-2.8.so.0(_ZN11wxEventLoop3RunEv+0x5c)[0xb72add7c]
/usr/lib/libwx_gtk2u_core-2.8.so.0(_ZN9wxAppBase8MainLoopEv+0x4c)[0xb734ef3c]
/usr/lib/libwx_gtk2u_core-2.8.so.0(_ZN9wxAppBase5OnRunEv+0x21)[0xb734e511]
/usr/lib/libwx_baseu-2.8.so.0(_Z7wxEntryRiPPw+0x6a)[0xb7063ffa]
/usr/lib/libwx_baseu-2.8.so.0(_Z7wxEntryRiPPc+0x37)[0xb70640a7]
wxcam[0x807b9d0]
/lib/libc.so.6(__libc_start_main+0xe0)[0xb6d88fe0]
wxcam(_ZN19wxTopLevelWindowGTK14OnInternalIdleEv+0x8d)[0x8056521]
======= Memory map: ========
08048000-080a8000 r-xp 00000000 08:02 3858351    /usr/bin/wxcam
080a8000-080ad000 rw-p 0005f000 08:02 3858351    /usr/bin/wxcam
080ad000-08260000 rw-p 080ad000 00:00 0          [heap]
b625e000-b628b000 r--p 00000000 08:02 2785378    /var/cache/libx11/compose/l4_024_313cb605_00280cc0
b628b000-b62b5000 r--p 00000000 08:02 4030470    /usr/share/fonts/truetype/albw.ttf
b62b5000-b62b7000 r-xp 00000000 08:02 4261105    /usr/lib/pango/1.6.0/modules/pango-basic-fc.so
b62b7000-b62b9000 rw-p 00001000 08:02 4261105    /usr/lib/pango/1.6.0/modules/pango-basic-fc.so
b62b9000-b62c0000 r--s 00000000 08:02 2786792    /var/cache/fontconfig/77e41c5059666d75f92e318d4be8c21e-x86.cache-2
b62c0000-b62c3000 r--s 00000000 08:02 2786996    /var/cache/fontconfig/1bf8b149fd7fb2bad34458a6f42bba03-x86.cache-2
b62c3000-b62c4000 r--s 00000000 08:02 2786754    /var/cache/fontconfig/b6bbb9f898b73777cfe763014a8c08d3-x86.cache-2
b62c4000-b62e7000 r--s 00000000 08:02 2786750    /var/cache/fontconfig/8d4af663993b81a124ee82e610bb31f9-x86.cache-2
b62e7000-b62fd000 r--s 00000000 08:02 2786984    /var/cache/fontconfig/7ef2298fde41cc6eeb7af42e48b7d293-x86.cache-2
b62fd000-b62ff000 r--s 00000000 08:02 2786752    /var/cache/fontconfig/d458be102e54cf534d1eef0dcbb02d07-x86.cache-2
b62ff000-b6345000 r--s 00000000 08:02 2786742    /var/cache/fontconfig/df311e82a1a24c41a75c2c930223552e-x86.cache-2
b6345000-b634a000 r--s 00000000 08:02 2786745    /var/cache/fontconfig/d62e99ef547d1d24cdb1bd22ec1a2976-x86.cache-2
b634a000-b6390000 r--s 00000000 08:02 2786743    /var/cache/fontconfig/17090aa38d5c6f09fb8c5c354938f1d7-x86.cache-2
b6390000-b65e9000 rw-s 00000000 00:0f 277165     /dev/video0
b65e9000-b6649000 rw-s 00000000 00:09 611450889  /SYSV00000000 (deleted)
b6649000-b66a9000 rw-s 00000000 00:09 611418120  /SYSV00000000 (deleted)
b66a9000-b66af000 r-xp 00000000 08:02 4261729    /usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so
b66af000-b66b1000 rw-p 00005000 08:02 4261729    /usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so
b66b1000-b66cf000 r--p 00000000 08:02 3854539    /usr/share/locale/es/LC_MESSAGES/libc.mo
b66cf000-b66ef000 r-xp 00000000 08:02 4262410    /usr/lib/gtk-2.0/2.10.0/engines/libqtcurve.so
b66ef000-b66f1000 rw-p 0001f000 08:02 4262410    /usr/lib/gtk-2.0/2.10.0/engines/libqtcurve.so
b66f1000-b66f2000 rw-p b66f1000 00:00 0
b66f2000-b6727000 r--s 00000000 08:02 2786942    /var/run/nscd/passwd
b6727000-b672d000 r-xp 00000000 08:02 1655401    /usr/lib/libgailutil.so.18.0.1
b672d000-b672f000 rw-p 00006000 08:02 1655401    /usr/lib/libgailutil.so.18.0.1
b672f000-b675d000 r-xp 00000000 08:02 1655005    /usr/lib/libgnomecanvas-2.so.0.2000.0
b675d000-b675f000 rw-p 0002e000 08:02 1655005    /usr/lib/libgnomecanvas-2.so.0.2000.0
b675f000-b679c000 r-xp 00000000 08:02 1687687    /usr/lib/libgnomeprintui-2-2.so.0.1.0
b679c000-b679e000 rw-p 0003d000 08:02 1687687    /usr/lib/libgnomeprintui-2-2.so.0.1.0
b679e000-b67b3000 r-xp 00000000 08:02 3855215    /usr/lib/libart_lgpl_2.so.2.3.19
b67b3000-b67b5000 rw-p 00014000 08:02 3855215    /usr/lib/libart_lgpl_2.so.2.3.19
b67b5000-b681a000 r-xp 00000000 08:02 1655369    /usr/lib/libgnomeprint-2-2.so.0.1.0
b681a000-b681c000 rw-p 00064000 08:02 1655369    /usr/lib/libgnomeprint-2-2.so.0.1.0
b681c000-b681d000 rw-p b681c000 00:00 0
b6825000-b6829000 r-xp 00000000 08:02 4261737    /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so
b6829000-b682b000 rw-p 00003000 08:02 4261737    /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloaderAbortado
me@pc:~>

I start the application again.
Touching Settings → Picture functions I can’t get my face visible.

Now going to Settings → Frame options, I select 640x480 and again same image quality as same size in gqcam, the only mode with an acceptable video output. Here going to Picture Functions again, I can adjust the image correctly, but the same “Contrast reset” as described in other applications.

camorama

Starts ok, first video output is dark, like half size in gqcam. Nothing to do with image Adjustments to correct it. In this mode seems that constrast reset don’t happens.
White Balance have no effect, I forgot to mention that either have no effect in other apps, in any size.

If I select View → Large application crash, for a instant seem to show the large video output before crashing.

This is the console output:


me@pc:~> camorama
(camorama:3140): Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
name = medium
name = large
me@pc:~>   

Same crash selecting View -> Small, but console output ends in “name = small”

Of course the desired result is that the driver works fine in all applications, most in IM clients like kopete and skype. I hope this thread could lead to that.

Thanks, Scot.

I recommend you research the site where your gspca driver comes from, and see if you can either write a bug report, or if they don’t have a bug report system, then look for a gspca specific forum, and raise your observations there.

Thanks for responding so fast oldcpu, but I still can’t find a bug report system or forum for gspca/spca drivers. Only two e-mail address in the main site, I’ve sent a mail asking if there is such forum or system available, I’ll keep up to date if I got a response.

Thanks, Scot.

Keeping this post updated:

I placed a post in bugzilla.novell.com and also sent an e-mail to the two email addresses on mxhard website, but one rejects as spam and still no response in the other.