Re: [Qemu-devel] [RFC PATCH 0/2] Add USB Video Class device emulation.

2010-06-10 Thread Natalia Portillo
Hi,

> Trying to guess the relevant descriptors:
> 
>VideoStreaming Interface Descriptor:
>bLength50
>bDescriptorType36
>bDescriptorSubtype  5 (FRAME_UNCOMPRESSED)
>bFrameIndex 3
>bmCapabilities   0x00
>  Still image unsupported
>wWidth320
>wHeight   240
>dwMinBitRate   768000
>dwMaxBitRate  4608000
>dwMaxVideoFrameBufferSize  153600
>dwDefaultFrameInterval 33
>bFrameIntervalType  6
>dwFrameInterval( 0)33
>dwFrameInterval( 1)40
>dwFrameInterval( 2)50
>dwFrameInterval( 3)66
>dwFrameInterval( 4)   100
>dwFrameInterval( 5)   200
> 
>  VideoStreaming Interface Descriptor:
>bLength 6
>bDescriptorType36
>bDescriptorSubtype 13 (COLORFORMAT)
>bColorPrimaries 1 (BT.709,sRGB)
>bTransferCharacteristics1 (BT.709)
>bMatrixCoefficients 4 (SMPTE 170M (BT.601))
Unless there is any FRAME_MJPEG in the descriptor, the camera is as now, 
unsupported yet.
I'm working on supported cameras FRAME_UNCOMPRESSED.

>> 
>>> 
>>> Also, I tried a PWC camera which is not a V4L2_INPUT_TYPE_CAMERA and
>>> noticed that video_input_index is used uninitialized in usb_uvc_initfn
>> It's a webcam?
>> Could you give me more information?
>> Manufacturer, model, linux's module name.
> 
> usb 7-1: new full speed USB device using uhci_hcd and address 3
> usb 7-1: New USB device found, idVendor=046d, idProduct=08b6
> usb 7-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
> pwc: Logitech/Cisco VT Camera webcam detected.
The only thing I'm able to found about it is that the driver is Video4Linux 1.0 
not 2.0.
Do you have manufacturer and model?
Do you have idea of that input type v4l2 defines for it?
May you give me SSH access to a machine with that cam installed to test and 
implement?

Regards,
Natalia Portillo


Re: [Qemu-devel] [RFC PATCH 0/2] Add USB Video Class device emulation.

2010-06-10 Thread David S. Ahern


On 06/10/10 12:26, Natalia Portillo wrote:
> Hi David,
> 
>> Attempting to try out your patches, but it's failing with the following:
>>
>> usb-uvc: Init called
>> usb-uvc: Trying to open /dev/video0
>> .usb-uvc: Device opened correctly.
>> usb-uvc: Querying capabilities.
>> usb-uvc: Device driver: uvcvideo
>> usb-uvc: Device name: Laptop_Integrated_Webcam_0.3M
>> usb-uvc: Device bus: usb-:00:1a.7-6
>> usb-uvc: Driver version: 0.1.0
>> usb-uvc: Device capabilities: 0x0401
>> usb-uvc: Enumerating video inputs.
>> usb-uvc: Setting video input to index 0
>> usb-uvc: Video input correctly set.
>> usb-uvc: Trying to set 320x240 MJPEG.
>> qemu-system-x86_64: -device usb-uvc-webcam,device=/dev/video0: Invalid
>> format.
> 
> As for now only cameras that allow MJPEG format will work.
> Check your camera specifications (lsusb -v works if your real camera is UVC, 
> check driver's source otherwise).
> Cameras with RAW frames (YUYV and NV12 formats) do not work, yet. I'm on it.

Trying to guess the relevant descriptors:

VideoStreaming Interface Descriptor:
bLength50
bDescriptorType36
bDescriptorSubtype  5 (FRAME_UNCOMPRESSED)
bFrameIndex 3
bmCapabilities   0x00
  Still image unsupported
wWidth320
wHeight   240
dwMinBitRate   768000
dwMaxBitRate  4608000
dwMaxVideoFrameBufferSize  153600
dwDefaultFrameInterval 33
bFrameIntervalType  6
dwFrameInterval( 0)33
dwFrameInterval( 1)40
dwFrameInterval( 2)50
dwFrameInterval( 3)66
dwFrameInterval( 4)   100
dwFrameInterval( 5)   200

  VideoStreaming Interface Descriptor:
bLength 6
bDescriptorType36
bDescriptorSubtype 13 (COLORFORMAT)
bColorPrimaries 1 (BT.709,sRGB)
bTransferCharacteristics1 (BT.709)
bMatrixCoefficients 4 (SMPTE 170M (BT.601))

> 
>>
>> Also, I tried a PWC camera which is not a V4L2_INPUT_TYPE_CAMERA and
>> noticed that video_input_index is used uninitialized in usb_uvc_initfn
> It's a webcam?
> Could you give me more information?
> Manufacturer, model, linux's module name.

usb 7-1: new full speed USB device using uhci_hcd and address 3
usb 7-1: New USB device found, idVendor=046d, idProduct=08b6
usb 7-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
pwc: Logitech/Cisco VT Camera webcam detected.

David


> 
> All webcams SHOULD (and MUST) implement V4L2_INPUT_TYPE_CAMERA.
> Not the same for video cameras or capture devices (PAL/NTSC, DVB/ATSC).
> 
> Regards,
> Natalia Portillo



Re: [Qemu-devel] [RFC PATCH 0/2] Add USB Video Class device emulation.

2010-06-10 Thread Natalia Portillo
Hi David,

> Attempting to try out your patches, but it's failing with the following:
> 
> usb-uvc: Init called
> usb-uvc: Trying to open /dev/video0
> .usb-uvc: Device opened correctly.
> usb-uvc: Querying capabilities.
> usb-uvc: Device driver: uvcvideo
> usb-uvc: Device name: Laptop_Integrated_Webcam_0.3M
> usb-uvc: Device bus: usb-:00:1a.7-6
> usb-uvc: Driver version: 0.1.0
> usb-uvc: Device capabilities: 0x0401
> usb-uvc: Enumerating video inputs.
> usb-uvc: Setting video input to index 0
> usb-uvc: Video input correctly set.
> usb-uvc: Trying to set 320x240 MJPEG.
> qemu-system-x86_64: -device usb-uvc-webcam,device=/dev/video0: Invalid
> format.

As for now only cameras that allow MJPEG format will work.
Check your camera specifications (lsusb -v works if your real camera is UVC, 
check driver's source otherwise).
Cameras with RAW frames (YUYV and NV12 formats) do not work, yet. I'm on it.

> 
> Also, I tried a PWC camera which is not a V4L2_INPUT_TYPE_CAMERA and
> noticed that video_input_index is used uninitialized in usb_uvc_initfn
It's a webcam?
Could you give me more information?
Manufacturer, model, linux's module name.

All webcams SHOULD (and MUST) implement V4L2_INPUT_TYPE_CAMERA.
Not the same for video cameras or capture devices (PAL/NTSC, DVB/ATSC).

Regards,
Natalia Portillo


Re: [Qemu-devel] [RFC PATCH 0/2] Add USB Video Class device emulation.

2010-06-10 Thread David S. Ahern


On 06/08/10 09:34, Natalia Portillo wrote:
> Hi,
> 
> This currently adds an emulated USB webcam compliant with USB Video Class 
> Specification 1.0a.
> 
> It only works on Linux guests and feeds the emulated device using a 
> Video4Linux 2 host device, as long as it supports 320x240 MJPEG format.
> 
> This is a Request for Comments as surely code needs some cleaning or style.
> 
> You can see it working here:
> http://www.youtube.com/watch?v=fzGYvjZzx6E with Linux guest
> http://www.youtube.com/watch?v=_Yo9TWPDXCo with Windows XP Home guest
> 
> To add the device use -device usb-uvc-webcam,device=
> 
> Regards,
> Natalia Portillo
> 

Attempting to try out your patches, but it's failing with the following:

usb-uvc: Init called
usb-uvc: Trying to open /dev/video0
.usb-uvc: Device opened correctly.
usb-uvc: Querying capabilities.
usb-uvc: Device driver: uvcvideo
usb-uvc: Device name: Laptop_Integrated_Webcam_0.3M
usb-uvc: Device bus: usb-:00:1a.7-6
usb-uvc: Driver version: 0.1.0
usb-uvc: Device capabilities: 0x0401
usb-uvc: Enumerating video inputs.
usb-uvc: Setting video input to index 0
usb-uvc: Video input correctly set.
usb-uvc: Trying to set 320x240 MJPEG.
qemu-system-x86_64: -device usb-uvc-webcam,device=/dev/video0: Invalid
format.


Using ekiga for example I know that 320x240 is ok. I know very little
about the v4l (or video in general). Can you provide some pointers?


Also, I tried a PWC camera which is not a V4L2_INPUT_TYPE_CAMERA and
noticed that video_input_index is used uninitialized in usb_uvc_initfn

David



[Qemu-devel] [RFC PATCH 0/2] Add USB Video Class device emulation.

2010-06-08 Thread Natalia Portillo
Hi,

This currently adds an emulated USB webcam compliant with USB Video Class 
Specification 1.0a.

It only works on Linux guests and feeds the emulated device using a Video4Linux 
2 host device, as long as it supports 320x240 MJPEG format.

This is a Request for Comments as surely code needs some cleaning or style.

You can see it working here:
http://www.youtube.com/watch?v=fzGYvjZzx6E with Linux guest
http://www.youtube.com/watch?v=_Yo9TWPDXCo with Windows XP Home guest

To add the device use -device usb-uvc-webcam,device=

Regards,
Natalia Portillo