Change flash sequence to use one bit longer flash.
authorMarko Ollonen <marko.ollonen@ixonos.com>
Wed, 10 Apr 2013 09:52:51 +0000 (12:52 +0300)
committerTelle-Tiia Pitkänen <telle-tiia.pitkanen@ixonos.com>
Fri, 12 Apr 2013 09:16:03 +0000 (12:16 +0300)
Previously used two shot flashes.

Change-Id: Ib36fca3d9e20a5cdbbee6aaa9abab65c948d6f9d

gst-libs/atomisphal/mfld_cam.c
gst-libs/atomisphal/mfld_driver.c
gst-libs/atomisphal/mfld_driver.h

index 69b48cf..51d07e3 100644 (file)
@@ -1551,9 +1551,9 @@ run_flash_sequence (int fd, struct v4l2_buffer *buffer)
       cam_driver_dbg ("%s: Error dqbuf %d\n", __func__, 0);
       return CAM_ERR_SYS;
     }
-       // pre flash
-       mfldadvci->process_flash (advci_flash_stage_pre);
-       led_flash_trigger (fd, 0, 0);
+       // main flash
+       mfldadvci->process_flash (advci_flash_stage_main);
+    cam_driver_request_flash(fd, 1);
     if (-1 == ioctl (fd, VIDIOC_QBUF, buffer)) {
       cam_driver_dbg ("%s: Error qbuf %d\n", __func__, 1);
       return CAM_ERR_SYS;
@@ -1562,9 +1562,7 @@ run_flash_sequence (int fd, struct v4l2_buffer *buffer)
       cam_driver_dbg ("%s: Error dqbuf %d\n", __func__, 1);
       return CAM_ERR_SYS;
     }
-       // main flash
-       mfldadvci->process_flash (advci_flash_stage_main);
-       led_flash_trigger (fd, 0, 15);
+
     if (-1 == ioctl (fd, VIDIOC_QBUF, buffer)) {
       cam_driver_dbg ("%s: Error qbuf %d\n", __func__, 2);
       return CAM_ERR_SYS;
index bbffd18..546e907 100644 (file)
@@ -719,6 +719,12 @@ led_flash_trigger (int fd, int duration, int intensity)
 
     cam_driver_dbg("%s\n",__func__);
 
+       ret = cam_driver_set_led_flash (fd, V4L2_CID_FLASH_TIMEOUT, duration);
+       if (ret != CAM_ERR_NONE)
+       {
+               cam_driver_dbg ("%s: Error flash ioctl %d\n", __func__, 3);
+       }
+
        ret = cam_driver_set_led_flash (fd, V4L2_CID_FLASH_STROBE, 0);
        if (ret != CAM_ERR_NONE)
        {
@@ -734,11 +740,12 @@ led_flash_trigger (int fd, int duration, int intensity)
        {
                cam_driver_dbg ("%s: Error flash ioctl %d\n", __func__, 2);
        }
-       ret = cam_driver_set_led_flash (fd, V4L2_CID_FLASH_TIMEOUT, duration);
-       if (ret != CAM_ERR_NONE)
-       {
-               cam_driver_dbg ("%s: Error flash ioctl %d\n", __func__, 3);
-       }
+
+}
+
+void cam_driver_request_flash(int fd, int numFrames)
+{
+       cam_driver_set_attribute(fd, V4L2_CID_REQUEST_FLASH, numFrames, "request flash");
 }
 
 void
index 7264f8e..1e1cd42 100644 (file)
@@ -118,5 +118,7 @@ cam_err_t cam_driver_set_mipi_interrupt(int fd, int enable);
 cam_err_t cam_driver_set_indication_intensity (int fd,int intensity);
 cam_err_t cam_driver_set_torch(int fd, int on);
 
+void cam_driver_request_flash(int fd, int numFrames);
+
 
 #endif /* _MFLD_DRIVER_H */