There isn't any need to provide a custom DirectShow or WMF source for a native camera. Also Windows will automatically make those cameras available via the DirectShow API (both 32 and 64 bit) as well as Windows Media Foundation.
On the other hand native camera drivers have slightly better performance.
It provides a generic way for user space programs to communicate with the device.Īnother big advantage of a user space driver is it's much easier to directly make use of other libraries such as libusb and the github project that this driver is based on. The part that runs in kernel space is the WinUSB driver and it's a stable component provided by Microsoft. This means any flaws in this driver will only affect the program that's using the camera instead of crashing the entire operating system.
The biggest advantage is all of the code runs in user space instead of kernel space. This has several advantages and disadvantages compared to a native camera driver. This project makes use of the generic WinUSB driver to communicate with the camera. This code has only had limited testing so there may be compatibility issues with some apps. Any application that goes through the standard DirectShow API to connect to a webcam should (in theory) be able to use this driver. This project wraps that code into a DirectShow source filter so that it behaves like a USB camera with a native Windows driver. This package is an extension of, which is itself a port of the PS3 Eye Linux driver to Windows. I am currently running Vista and all the code is developed and tested under this particular OS.Windows DirectShow source filter for the PS3 Eye Camera via WinUSB (32 / 64 bit) I will be working on custom PS3EYE capture filter for use in TouchLib. My driver exposes a camera as a device with direct access, thus eliminating the complexities and the overhead of DirectShow system.
Most of the CPU overhead that I currently have is the color conversion code that is implemented in straight C/C++ without any SIMD optimizations.įor real (MT) applications this code will go away, since we will be extracting raw grayscale image (every second byte of YUYV). This is why it is recommended that the camera be the only device connected to the USB host controller. The camera currently streams video in YUYV format, therefore each frame is 640*480*2 bytes.Īt 30fps this amounts to about 17.5MB/s which is pretty low in comparison to the total USB 2.0 bandwidth.Īt 60fps the amount of data gets higher and it could be affected by other peripherals connected to the USB host controller. Low CPU overhead (since there is no decompression involved on the PC)
Full VGA (640x480) 60fps video capture test app that features uncompressed high quality raw video Initially, I started poking around with the USB trying to send some commands to the PS3Eye and see what happens?Īfter many long nights I?m bringing you the result: If we could just get it to work under Windows.? I started thinking to my self: ?This camera is awesome and it will be such a great and inexpensive replacement for Firefly MV and the like. The camera?s chipset info is virtually non-existent on the web.Īfter examining the camera internals (pictures here) I found that it features the OV534-LB50 camera USB 2.0 bridge and the OV7720 CMOS VGA sensor.
Now, the main problem with this camera is that there are no drivers for Windows.
The best part is the price $39.99! I found mine here. This makes the PS3Eye ideal for multitouch applications.
Uncompressed video or optional JPEG compression 2.1 F-stop, <1% distortion, fixed focus (25cm to 8 at 75? FOV) 4 channel audio input:16 bits/channel, 48kHz, SNR 90db Well boys and girls, I?ve been working hard last few weeks to make this great camera work under Windows.Īs you may seen it before, here are the specs: