Video capture from webcam with USB passthrough freezes

Bug #1077708 reported by Tristan Schmelcher
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Expired
Undecided
Unassigned

Bug Description

QEMU version: 1.2.0
Graphics: Spice
Guest: Windows 7 32-bit
Host: Ubuntu 12.10 amd64 (using distro package qemu-kvm-spice)

I am using USB 2.0 passthrough of a Logitech C920 webcam. The guest is running the proprietary Logitech drivers. When video chatting with either Google+ Hangouts or Skype 3.8.0.115, video capture from the webcam is initially fine but eventually freezes. It remains frozen for up to several minutes and then resumes on its own. The process then repeats. Audio recorded from the webcam's mic works continuously.

The problem also affects video recording in Logitech's bundled software. Strangely though, the live preview is _not_ affected. The freezing is only present in the recorded video file.

I can tell that the problem is not introduced by Spice during playback, because the user on the other end of Hangouts/Skype sees the same problem, and the freezes in a recorded video file are seen at the same point every time the file is played.

Command line:

/usr/bin/kvm-spice -name Windows7 -S -M pc-1.0 -enable-kvm -m 2048 -smp 3,sockets=3,cores=1,threads=1 -uuid cfcc7e85-7873-1c32-0a00-d1c35f3eb073 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/Windows7.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 -drive file=/data/libvirt/images/Windows7.img,if=none,id=drive-ide0-0-0,format=raw -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=21,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:7e:0b:d9,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -spice port=5900,addr=127.0.0.1,disable-ticketing -vga std -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device usb-host,hostbus=2,hostaddr=8,id=hostdev0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

Revision history for this message
Tristan Schmelcher (tschmelcher) wrote :

The problem also occurs with the generic Microsoft webcam drivers.

Note that, during webcam use, these messages are output from QEMU sporadically:

USBDEVFS_DISCARDURB: Invalid argument
USBDEVFS_DISCARDURB: Invalid argument
husb: leaking iso urbs because of discard failure
USBDEVFS_DISCARDURB: Invalid argument
USBDEVFS_DISCARDURB: Invalid argument
husb: leaking iso urbs because of discard failure
USBDEVFS_DISCARDURB: Invalid argument
USBDEVFS_DISCARDURB: Invalid argument
husb: leaking iso urbs because of discard failure
USBDEVFS_DISCARDURB: Invalid argument
USBDEVFS_DISCARDURB: Invalid argument
USBDEVFS_DISCARDURB: Invalid argument
husb: leaking iso urbs because of discard failure

However, the timing of the messages is completely uncorrelated with the video freezes, so I am uncertain as to whether they are related or not.

Revision history for this message
Tristan Schmelcher (tschmelcher) wrote :

Does not seem to repro when using the webcam natively in the host with Google+ Hangouts.

Does not seem to repro when using the webcam natively on a Windows Vista 32-bit machine with Google+ Hangouts.

I'd be happy to do some debugging. Are there extra log messages that I should enable?

Revision history for this message
Thomas Huth (th-huth) wrote :

Triaging old bug tickets ... can you still reproduce this issue with the
latest version of QEMU (version 2.9)?

Changed in qemu:
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for QEMU because there has been no activity for 60 days.]

Changed in qemu:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.