Discussion:
[linux-uvc-devel] HP Webcam HD 5210 - no h264 with guvcview
Tim Small
2015-06-01 13:59:30 UTC
Permalink
Hi,

I'm trying to use the hardware h264 encode on an HP Webcam HD 5210 (HP
LR374AA rev 1.0).

Not having any luck so far, using the 3.16 kernel on Debian Jessie
(uvcvideo 1.1.1) - guvcview (2.0.1) locks up when switching to h264
mode, and I get this in the kernel messages when running "guvcview -u h264":

[365423.303745] usb 2-1.8: new high-speed USB device number 65 using
ehci-pci
[365423.589234] usb 2-1.8: New USB device found, idVendor=03f0,
idProduct=cf07
[365423.589239] usb 2-1.8: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[365423.589242] usb 2-1.8: Product: HP Webcam HD 5210
[365423.589243] usb 2-1.8: Manufacturer: HP
[365423.752118] uvcvideo: Found UVC 1.00 device HP Webcam HD 5210
(03f0:cf07)
[365423.763599] input: HP Webcam HD 5210 as
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8:1.0/input/input100
[365423.763779] usbcore: registered new interface driver uvcvideo
[365423.763783] USB Video Class driver (1.1.1)
[365423.862111] retire_capture_urb: 2494 callbacks suppressed
[365428.869135] retire_capture_urb: 2492 callbacks suppressed
[365431.283896] uvcvideo: Failed to query (SET_CUR) UVC control 11 on
unit 8: -110 (exp. 2).
[365431.284222] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.284577] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.284939] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.285313] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.285694] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.286085] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.286421] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.286794] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.296432] uvcvideo: Failed to set UVC probe control : -32 (exp. 26).
[365431.296794] uvcvideo: Failed to query (GET_LEN) UVC control 11 on
unit 8: -32 (exp. 2).
[365431.297168] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.297561] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.297927] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.298295] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.298675] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.299051] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.299503] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.299799] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.575213] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.575818] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.575954] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.576328] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.576702] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.577076] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.577454] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.577829] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.578207] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.578582] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.579460] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.579837] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580255] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580644] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580968] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.581334] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.581723] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.582093] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.610628] uvcvideo: Failed to set UVC probe control : -32 (exp. 26).
[365431.610992] uvcvideo: Failed to query (GET_LEN) UVC control 11 on
unit 8: -32 (exp. 2).
[365431.611365] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.611746] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612116] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612492] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612867] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.613244] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.613616] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.613992] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.844729] uvcvideo: Failed to set UVC commit control : -32 (exp. 26).
[365431.844735] ------------[ cut here ]------------
[365431.844743] WARNING: CPU: 4 PID: 20262 at
/build/linux-RGM_Ed/linux-3.16.7-ckt9/drivers/media/v4l2-core/videobuf2-core.c:2123
__vb2_queue_cancel+0x10b/0x170 [videobuf2_core]()
[365431.844899] CPU: 4 PID: 20262 Comm: guvcview Tainted: G W
3.16.0-4-amd64 #1 Debian 3.16.7-ckt9-3~deb8u1
[365431.844901] Hardware name: Dell Inc. Studio XPS 8100/0T568R, BIOS
A03 12/09/2009
[365431.844903] 0000000000000009 ffffffff8150ac96 0000000000000000
ffffffff81067747
[365431.844907] 0000000000000000 ffff8802f2f49af0 0000000000000000
ffff8802f2f498d8
[365431.844910] ffff8802ed4b5c00 ffffffffa0ca75fb ffff8802f2f498d8
ffff8802f2f49af0
[365431.844913] Call Trace:
[365431.844920] [<ffffffff8150ac96>] ? dump_stack+0x41/0x51
[365431.844924] [<ffffffff81067747>] ? warn_slowpath_common+0x77/0x90
[365431.844928] [<ffffffffa0ca75fb>] ? __vb2_queue_cancel+0x10b/0x170
[videobuf2_core]
[365431.844931] [<ffffffffa0ca8c45>] ? vb2_internal_streamoff+0x35/0xd0
[videobuf2_core]
[365431.844934] [<ffffffffa0ce71bd>] ? uvc_queue_enable+0x5d/0xa0
[uvcvideo]
[365431.844938] [<ffffffffa0cebfe5>] ? uvc_video_enable+0x135/0x1a0
[uvcvideo]
[365431.844941] [<ffffffffa0ce91f3>] ? uvc_v4l2_do_ioctl+0x1103/0x15f0
[uvcvideo]
[365431.844945] [<ffffffff81187c68>] ? alloc_pages_vma+0x98/0x160
[365431.844948] [<ffffffffa0ce80f0>] ? uvc_v4l2_open+0x140/0x140 [uvcvideo]
[365431.844953] [<ffffffffa0c8b16e>] ? video_usercopy+0x1fe/0x540
[videodev]
[365431.844957] [<ffffffff8116f79f>] ? mmap_region+0x15f/0x650
[365431.844961] [<ffffffff810572c1>] ? __do_page_fault+0x1d1/0x4f0
[365431.844966] [<ffffffffa0c8667b>] ? v4l2_ioctl+0x10b/0x150 [videodev]
[365431.844969] [<ffffffff811ba2ff>] ? do_vfs_ioctl+0x2cf/0x4b0
[365431.844971] [<ffffffff811ba561>] ? SyS_ioctl+0x81/0xa0
[365431.844974] [<ffffffff81512e68>] ? page_fault+0x28/0x30
[365431.844977] [<ffffffff81510e4d>] ?
system_call_fast_compare_end+0x10/0x15
[365431.844979] ---[ end trace c8f39f37a6fef801 ]---
[365431.845097] uvcvideo: Failed to query (GET_LEN) UVC control 9 on
unit 8: -32 (exp. 2).
[365431.845474] uvcvideo: Failed to query (GET_LEN) UVC control 9 on
unit 8: -32 (exp. 2).

[... repeats until guvcview is killed]


Is it worth trying newer versions of any of the involved software, or is
the behaviour likely to be the same?

lsusb output for the device is here:

http://buttersideup.com/files/hp-5210-lsusb.txt



Cheers,

Tim.

------------------------------------------------------------------------------
Jayakrishnan M
2015-06-01 16:59:13 UTC
Permalink
Hi Tim,
Post by Tim Small
Hi,
I'm trying to use the hardware h264 encode on an HP Webcam HD 5210 (HP
LR374AA rev 1.0).
The camera does not advertise H.264 format explicitly. The descriptors in lsusb
output shows MJPEG and uncompressed formats.
It is possible that some XU controls are required to enable H.264 encoder.
Are you invoking these controls before trying to capture H.264 video?

Regards,
Jayakrishnan
Post by Tim Small
Not having any luck so far, using the 3.16 kernel on Debian Jessie
(uvcvideo 1.1.1) - guvcview (2.0.1) locks up when switching to h264
[365423.303745] usb 2-1.8: new high-speed USB device number 65 using
ehci-pci
[365423.589234] usb 2-1.8: New USB device found, idVendor=03f0,
idProduct=cf07
[365423.589239] usb 2-1.8: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[365423.589242] usb 2-1.8: Product: HP Webcam HD 5210
[365423.589243] usb 2-1.8: Manufacturer: HP
[365423.752118] uvcvideo: Found UVC 1.00 device HP Webcam HD 5210
(03f0:cf07)
[365423.763599] input: HP Webcam HD 5210 as
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8:1.0/input/input100
[365423.763779] usbcore: registered new interface driver uvcvideo
[365423.763783] USB Video Class driver (1.1.1)
[365423.862111] retire_capture_urb: 2494 callbacks suppressed
[365428.869135] retire_capture_urb: 2492 callbacks suppressed
[365431.283896] uvcvideo: Failed to query (SET_CUR) UVC control 11 on
unit 8: -110 (exp. 2).
[365431.284222] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.284577] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.284939] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.285313] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.285694] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.286085] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.286421] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.286794] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.296432] uvcvideo: Failed to set UVC probe control : -32 (exp. 26).
[365431.296794] uvcvideo: Failed to query (GET_LEN) UVC control 11 on
unit 8: -32 (exp. 2).
[365431.297168] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.297561] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.297927] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.298295] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.298675] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.299051] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.299503] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.299799] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.575213] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.575818] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.575954] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.576328] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.576702] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.577076] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.577454] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.577829] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.578207] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.578582] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.579460] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.579837] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580255] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580644] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580968] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.581334] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.581723] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.582093] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.610628] uvcvideo: Failed to set UVC probe control : -32 (exp. 26).
[365431.610992] uvcvideo: Failed to query (GET_LEN) UVC control 11 on
unit 8: -32 (exp. 2).
[365431.611365] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.611746] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612116] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612492] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612867] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.613244] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.613616] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.613992] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.844729] uvcvideo: Failed to set UVC commit control : -32 (exp. 26).
[365431.844735] ------------[ cut here ]------------
[365431.844743] WARNING: CPU: 4 PID: 20262 at
/build/linux-RGM_Ed/linux-3.16.7-ckt9/drivers/media/v4l2-core/videobuf2-core.c:2123
__vb2_queue_cancel+0x10b/0x170 [videobuf2_core]()
[365431.844899] CPU: 4 PID: 20262 Comm: guvcview Tainted: G W
3.16.0-4-amd64 #1 Debian 3.16.7-ckt9-3~deb8u1
[365431.844901] Hardware name: Dell Inc. Studio XPS 8100/0T568R, BIOS
A03 12/09/2009
[365431.844903] 0000000000000009 ffffffff8150ac96 0000000000000000
ffffffff81067747
[365431.844907] 0000000000000000 ffff8802f2f49af0 0000000000000000
ffff8802f2f498d8
[365431.844910] ffff8802ed4b5c00 ffffffffa0ca75fb ffff8802f2f498d8
ffff8802f2f49af0
[365431.844920] [<ffffffff8150ac96>] ? dump_stack+0x41/0x51
[365431.844924] [<ffffffff81067747>] ? warn_slowpath_common+0x77/0x90
[365431.844928] [<ffffffffa0ca75fb>] ? __vb2_queue_cancel+0x10b/0x170
[videobuf2_core]
[365431.844931] [<ffffffffa0ca8c45>] ? vb2_internal_streamoff+0x35/0xd0
[videobuf2_core]
[365431.844934] [<ffffffffa0ce71bd>] ? uvc_queue_enable+0x5d/0xa0
[uvcvideo]
[365431.844938] [<ffffffffa0cebfe5>] ? uvc_video_enable+0x135/0x1a0
[uvcvideo]
[365431.844941] [<ffffffffa0ce91f3>] ? uvc_v4l2_do_ioctl+0x1103/0x15f0
[uvcvideo]
[365431.844945] [<ffffffff81187c68>] ? alloc_pages_vma+0x98/0x160
[365431.844948] [<ffffffffa0ce80f0>] ? uvc_v4l2_open+0x140/0x140 [uvcvideo]
[365431.844953] [<ffffffffa0c8b16e>] ? video_usercopy+0x1fe/0x540
[videodev]
[365431.844957] [<ffffffff8116f79f>] ? mmap_region+0x15f/0x650
[365431.844961] [<ffffffff810572c1>] ? __do_page_fault+0x1d1/0x4f0
[365431.844966] [<ffffffffa0c8667b>] ? v4l2_ioctl+0x10b/0x150 [videodev]
[365431.844969] [<ffffffff811ba2ff>] ? do_vfs_ioctl+0x2cf/0x4b0
[365431.844971] [<ffffffff811ba561>] ? SyS_ioctl+0x81/0xa0
[365431.844974] [<ffffffff81512e68>] ? page_fault+0x28/0x30
[365431.844977] [<ffffffff81510e4d>] ?
system_call_fast_compare_end+0x10/0x15
[365431.844979] ---[ end trace c8f39f37a6fef801 ]---
[365431.845097] uvcvideo: Failed to query (GET_LEN) UVC control 9 on
unit 8: -32 (exp. 2).
[365431.845474] uvcvideo: Failed to query (GET_LEN) UVC control 9 on
unit 8: -32 (exp. 2).
[... repeats until guvcview is killed]
Is it worth trying newer versions of any of the involved software, or is
the behaviour likely to be the same?
http://buttersideup.com/files/hp-5210-lsusb.txt
Cheers,
Tim.
------------------------------------------------------------------------------
_______________________________________________
Linux-uvc-devel mailing list
https://lists.sourceforge.net/lists/listinfo/linux-uvc-devel
------------------------------------------------------------------------------
Tim Small
2015-06-03 11:46:28 UTC
Permalink
Post by Jayakrishnan M
Hi Tim,
Post by Tim Small
Hi,
I'm trying to use the hardware h264 encode on an HP Webcam HD 5210 (HP
LR374AA rev 1.0).
The camera does not advertise H.264 format explicitly. The descriptors in lsusb
output shows MJPEG and uncompressed formats.
It is possible that some XU controls are required to enable H.264 encoder.
Are you invoking these controls before trying to capture H.264 video?
I've just tried using 'usbview' on Windows 7, having installed the
drivers for the camera from HP. It looks like the camera will output
h264 using the Windows software, but usbview doesn't show it exposing
any h264 endpoints whilst that software is running, so perhaps it's
doing something non-standard to get the h264 video out of it?

The HP driver offered me a firmware update (a proper flash one by the
look of it - not DFU), which I thought sounded promising, but despite
quite a few changes to the lsusb output, no h264 endpoints have appeared.

I did a USB packet capture (viewable with wireshark on Linux) whilst
connecting to the camera using the Windows software, and then recording
(allegedly) raw h264 with the bundled HP software - if that's of any use
- but it's looking to me like getting h264 out of this camera is going
to require some heavy lifting, and I'm wondering if just selling the
device, and buying a different webcam (any suggestions?) which does h264
in a standards compliant way might be a better idea? Annoying - since
the actual video quality seems pretty good with this one. Ho-hum.

FWIW, new lspci output and pcap and usbview files here:

http://buttersideup.com/files/hp-5210-lsusb-newfirmware.txt

http://buttersideup.com/files/hp-webcam-5210-record-raw-h264-withUSBPcap.pcap

http://buttersideup.com/files/whilst-recording-h264-new-firmware-usbview.txt

Cheers,

Tim.

------------------------------------------------------------------------------
Jayakrishnan M
2015-06-05 05:31:47 UTC
Permalink
Hi Tim,
Post by Tim Small
Post by Jayakrishnan M
The camera does not advertise H.264 format explicitly. The descriptors in lsusb
output shows MJPEG and uncompressed formats.
It is possible that some XU controls are required to enable H.264 encoder.
Are you invoking these controls before trying to capture H.264 video?
I've just tried using 'usbview' on Windows 7, having installed the
drivers for the camera from HP. It looks like the camera will output
h264 using the Windows software, but usbview doesn't show it exposing
any h264 endpoints whilst that software is running, so perhaps it's
doing something non-standard to get the h264 video out of it?
This camera seems to be following Skype encoding camera specification to get
H.264 stream. The XU GUID bd5321b4-d635-ca45-b203-4e0149b301bc was defined
in that specification. Skype has removed the specification from their
website, but it
is still present in some other websites. You will have to write an
application that
follows Skype specification.

If your use case is not tied to this camera, it might be better to use
another one that
follows UVC1.5 specification.

Regards,
Jayakrishnan

------------------------------------------------------------------------------
Tim Small
2015-06-05 16:38:22 UTC
Permalink
Post by Jayakrishnan M
This camera seems to be following Skype encoding camera specification to get
H.264 stream. The XU GUID bd5321b4-d635-ca45-b203-4e0149b301bc was defined
in that specification. Skype has removed the specification from their
website, but it
is still present in some other websites. You will have to write an
application that
follows Skype specification.
Thanks that makes sense - and I was wondering how Skype would access the
h264 - handy to know they published a spec - The Way Back Machine has
the pdf here:

http://web.archive.org/web/20130205164703/http://developer.skype.com/resources/Skype_Encoding_Camera_Specification_v2.2.pdf

I assume these cameras are a bit of a historical curiosity now, and are
only supported by Skype - unless there is a lot of commonality between
the Skype encoding camera specification and the newer UVC standard?

Tim.

------------------------------------------------------------------------------
Paulo Assis
2015-06-05 08:45:11 UTC
Permalink
Hi, guvcview supports the H264 extension control, even if H264 is not
advertise, it will check for this, for enabling it on the GUI.
When you choose H264, guvcview will follow the definition in
USB_Video_Payload_H 264_1.0 doc for muxing H264 in the MJPG stream.

Now, I'm afraid I've only been able to test this on logitech cameras,
since they were kind enough to provide me with a couple of test units.
So other vendors, like HP, may have little differences in the firmware
that cause it to fail.

It's hard to say what's failing here without the guvcview console
output. if you care to post that just run:

guvcview --verbosity=3

Regards,
Paulo
Post by Tim Small
Hi,
I'm trying to use the hardware h264 encode on an HP Webcam HD 5210 (HP
LR374AA rev 1.0).
Not having any luck so far, using the 3.16 kernel on Debian Jessie
(uvcvideo 1.1.1) - guvcview (2.0.1) locks up when switching to h264
[365423.303745] usb 2-1.8: new high-speed USB device number 65 using
ehci-pci
[365423.589234] usb 2-1.8: New USB device found, idVendor=03f0,
idProduct=cf07
[365423.589239] usb 2-1.8: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[365423.589242] usb 2-1.8: Product: HP Webcam HD 5210
[365423.589243] usb 2-1.8: Manufacturer: HP
[365423.752118] uvcvideo: Found UVC 1.00 device HP Webcam HD 5210
(03f0:cf07)
[365423.763599] input: HP Webcam HD 5210 as
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8:1.0/input/input100
[365423.763779] usbcore: registered new interface driver uvcvideo
[365423.763783] USB Video Class driver (1.1.1)
[365423.862111] retire_capture_urb: 2494 callbacks suppressed
[365428.869135] retire_capture_urb: 2492 callbacks suppressed
[365431.283896] uvcvideo: Failed to query (SET_CUR) UVC control 11 on
unit 8: -110 (exp. 2).
[365431.284222] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.284577] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.284939] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.285313] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.285694] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.286085] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.286421] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.286794] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.296432] uvcvideo: Failed to set UVC probe control : -32 (exp. 26).
[365431.296794] uvcvideo: Failed to query (GET_LEN) UVC control 11 on
unit 8: -32 (exp. 2).
[365431.297168] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.297561] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.297927] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.298295] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.298675] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.299051] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.299503] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.299799] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.575213] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.575818] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.575954] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.576328] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.576702] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.577076] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.577454] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.577829] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.578207] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.578582] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.579460] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.579837] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580255] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580644] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.580968] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.581334] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.581723] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.582093] uvcvideo: Failed to query (GET_LEN) UVC control 3 on
unit 8: -32 (exp. 2).
[365431.610628] uvcvideo: Failed to set UVC probe control : -32 (exp. 26).
[365431.610992] uvcvideo: Failed to query (GET_LEN) UVC control 11 on
unit 8: -32 (exp. 2).
[365431.611365] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.611746] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612116] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612492] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.612867] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.613244] uvcvideo: Failed to query (GET_LEN) UVC control 1 on
unit 8: -32 (exp. 2).
[365431.613616] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.613992] uvcvideo: Failed to query (GET_LEN) UVC control 2 on
unit 8: -32 (exp. 2).
[365431.844729] uvcvideo: Failed to set UVC commit control : -32 (exp. 26).
[365431.844735] ------------[ cut here ]------------
[365431.844743] WARNING: CPU: 4 PID: 20262 at
/build/linux-RGM_Ed/linux-3.16.7-ckt9/drivers/media/v4l2-core/videobuf2-core.c:2123
__vb2_queue_cancel+0x10b/0x170 [videobuf2_core]()
[365431.844899] CPU: 4 PID: 20262 Comm: guvcview Tainted: G W
3.16.0-4-amd64 #1 Debian 3.16.7-ckt9-3~deb8u1
[365431.844901] Hardware name: Dell Inc. Studio XPS 8100/0T568R, BIOS
A03 12/09/2009
[365431.844903] 0000000000000009 ffffffff8150ac96 0000000000000000
ffffffff81067747
[365431.844907] 0000000000000000 ffff8802f2f49af0 0000000000000000
ffff8802f2f498d8
[365431.844910] ffff8802ed4b5c00 ffffffffa0ca75fb ffff8802f2f498d8
ffff8802f2f49af0
[365431.844920] [<ffffffff8150ac96>] ? dump_stack+0x41/0x51
[365431.844924] [<ffffffff81067747>] ? warn_slowpath_common+0x77/0x90
[365431.844928] [<ffffffffa0ca75fb>] ? __vb2_queue_cancel+0x10b/0x170
[videobuf2_core]
[365431.844931] [<ffffffffa0ca8c45>] ? vb2_internal_streamoff+0x35/0xd0
[videobuf2_core]
[365431.844934] [<ffffffffa0ce71bd>] ? uvc_queue_enable+0x5d/0xa0
[uvcvideo]
[365431.844938] [<ffffffffa0cebfe5>] ? uvc_video_enable+0x135/0x1a0
[uvcvideo]
[365431.844941] [<ffffffffa0ce91f3>] ? uvc_v4l2_do_ioctl+0x1103/0x15f0
[uvcvideo]
[365431.844945] [<ffffffff81187c68>] ? alloc_pages_vma+0x98/0x160
[365431.844948] [<ffffffffa0ce80f0>] ? uvc_v4l2_open+0x140/0x140 [uvcvideo]
[365431.844953] [<ffffffffa0c8b16e>] ? video_usercopy+0x1fe/0x540
[videodev]
[365431.844957] [<ffffffff8116f79f>] ? mmap_region+0x15f/0x650
[365431.844961] [<ffffffff810572c1>] ? __do_page_fault+0x1d1/0x4f0
[365431.844966] [<ffffffffa0c8667b>] ? v4l2_ioctl+0x10b/0x150 [videodev]
[365431.844969] [<ffffffff811ba2ff>] ? do_vfs_ioctl+0x2cf/0x4b0
[365431.844971] [<ffffffff811ba561>] ? SyS_ioctl+0x81/0xa0
[365431.844974] [<ffffffff81512e68>] ? page_fault+0x28/0x30
[365431.844977] [<ffffffff81510e4d>] ?
system_call_fast_compare_end+0x10/0x15
[365431.844979] ---[ end trace c8f39f37a6fef801 ]---
[365431.845097] uvcvideo: Failed to query (GET_LEN) UVC control 9 on
unit 8: -32 (exp. 2).
[365431.845474] uvcvideo: Failed to query (GET_LEN) UVC control 9 on
unit 8: -32 (exp. 2).
[... repeats until guvcview is killed]
Is it worth trying newer versions of any of the involved software, or is
the behaviour likely to be the same?
http://buttersideup.com/files/hp-5210-lsusb.txt
Cheers,
Tim.
------------------------------------------------------------------------------
_______________________________________________
Linux-uvc-devel mailing list
https://lists.sourceforge.net/lists/listinfo/linux-uvc-devel
------------------------------------------------------------------------------
Tim Small
2015-06-05 16:05:23 UTC
Permalink
Post by Paulo Assis
guvcview supports the H264 extension control, even if H264 is not
advertise, it will check for this
That would be A29E7641-DE04-47E3-8B2B-F4341AFF003B by the look of the
guvcview source? As per Jayakrishnan's email, that doesn't seem to be
present, but only the Skype one (which I assume pre-dates the official
h264 extension to uvc?) - the one with a GUID of
bd5321b4-d635-ca45-b203-4e0149b301bc as-per
http://web.archive.org/web/20130205164657/http://developer.skype.com/resources/Skype_Encoding_Camera_Specification.pdf
?

Having said that, guvcview still allows h264 to be selected on this
camera, but seems to trigger an error in the kernel driver when it does
so, so I'll include the verbosity=3 output below in case that's useful
anyway...
Post by Paulo Assis
It's hard to say what's failing here without the guvcview console
guvcview --verbosity=3
FWIW, here are 3 sets of output with guvcview --verbosity=3

1. guvcview --verbosity=3 -f mjpeg

http://buttersideup.com/files/guvcview-verbose3-format-mjpeg


2. guvcview --verbosity=3 -f h264

http://buttersideup.com/files/guvcview-verbose3-format-h264


3. a second invocation of guvcview --verbosity=3 -f mjpeg

http://buttersideup.com/files/guvcview-verbose3-format-mjpeg2


This second invocation pops up a window saying: "error could not start a
video stream in the device". After this the control window comes up,
but the quit button doesn't work - closing the window doesn't close the
program, and closing the window via the window manager leaves it still
running at the console - at which point Ctrl-C gives "Caught signal 2",
and SIGQUIT is necessary to exit.

HTH!

Tim.



------------------------------------------------------------------------------
Loading...