[media] gspca: Add high-speed modes for PS3 Eye camera
authorJoe Howse <josephhowse@nummist.com>
Mon, 29 Dec 2014 15:00:03 +0000 (12:00 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 29 Jan 2015 20:27:49 +0000 (18:27 -0200)
Add support in the PS3 Eye driver for QVGA capture at higher
frame rates: 187, 150, and 137 FPS. This functionality is valuable
because the PS3 Eye is popular for computer vision projects and no
other camera in its price range supports such high frame rates.

Correct a QVGA mode that was listed as 40 FPS. It is really 37 FPS
(half of 75 FPS).

Tests confirm that the nominal frame rates are achieved.

Signed-off-by: Joe Howse <josephhowse@nummist.com>
Tested-by: Antonio Ospite <ao2@ao2.it>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/usb/gspca/ov534.c

index 90f0d637cd9d05f66450ef645859cf7f5f7fb381..a9c866d6d82ddda715f4275937572847e8bbb4be 100644 (file)
@@ -12,6 +12,8 @@
  * PS3 Eye camera enhanced by Richard Kaswy http://kaswy.free.fr
  * PS3 Eye camera - brightness, contrast, awb, agc, aec controls
  *                  added by Max Thrun <bear24rw@gmail.com>
+ * PS3 Eye camera - FPS range extended by Joseph Howse
+ *                  <josephhowse@nummist.com> http://nummist.com
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -116,7 +118,7 @@ static const struct v4l2_pix_format ov767x_mode[] = {
                .colorspace = V4L2_COLORSPACE_JPEG},
 };
 
-static const u8 qvga_rates[] = {125, 100, 75, 60, 50, 40, 30};
+static const u8 qvga_rates[] = {187, 150, 137, 125, 100, 75, 60, 50, 37, 30};
 static const u8 vga_rates[] = {60, 50, 40, 30, 15};
 
 static const struct framerates ov772x_framerates[] = {
@@ -769,12 +771,16 @@ static void set_frame_rate(struct gspca_dev *gspca_dev)
                {15, 0x03, 0x41, 0x04},
        };
        static const struct rate_s rate_1[] = { /* 320x240 */
+/*             {205, 0x01, 0xc1, 0x02},  * 205 FPS: video is partly corrupt */
+               {187, 0x01, 0x81, 0x02}, /* 187 FPS or below: video is valid */
+               {150, 0x01, 0xc1, 0x04},
+               {137, 0x02, 0xc1, 0x02},
                {125, 0x02, 0x81, 0x02},
                {100, 0x02, 0xc1, 0x04},
                {75, 0x03, 0xc1, 0x04},
                {60, 0x04, 0xc1, 0x04},
                {50, 0x02, 0x41, 0x04},
-               {40, 0x03, 0x41, 0x04},
+               {37, 0x03, 0x41, 0x04},
                {30, 0x04, 0x41, 0x04},
        };