hardware: samsung_slsi: libcamera2: Fix for supporting various FPS modes
authorSungjoong Kang <sj3.kang@samsung.com>
Mon, 22 Oct 2012 21:39:49 +0000 (14:39 -0700)
committerAlex Ray <aray@google.com>
Mon, 22 Oct 2012 23:24:11 +0000 (16:24 -0700)
Add support for 24 and 25 fps modes.
Fix bug on applying maximum fps parameter.

BUG : 7385305
Signed-off-by: Sungjoong Kang <sj3.kang@samsung.com>
Change-Id: I005f87da69ca12d408b51d46f1fbd75d1a1a6cc5

libcamera2/ExynosCamera2.cpp
libcamera2/ExynosCameraHWInterface2.cpp

index 0f2e82ffc76fd4c16f82a55275a6e7adbbd6efa8..100f0a8226a1c4fba78ab8db9bb11cfed6df775e 100644 (file)
@@ -595,7 +595,7 @@ status_t ExynosCamera2::constructStaticInfo(camera_metadata_t **info,
             sizeof(exposureCompensationRange)/sizeof(int32_t));
 
     static const int32_t availableTargetFpsRanges[] = {
-            15, 15, 15, 30, 30, 30
+            15, 15, 24, 24, 25, 25, 15, 30, 30, 30
     };
     ADD_OR_SIZE(ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
             availableTargetFpsRanges,
index eca1a3a88504e2636d0bff5003faf5a6aa01d68f..9ca9109f51cc9f7c8a4d9520bbc2befd31a07843 100644 (file)
@@ -3313,6 +3313,26 @@ void ExynosCameraHWInterface2::m_sensorThreadFunc(SignalDrivenThread * self)
                 shot_ext->request_scc = 0;
             }
 
+            switch (shot_ext->shot.ctl.aa.aeTargetFpsRange[1]) {
+            case 15:
+                shot_ext->shot.ctl.sensor.frameDuration = (66666 * 1000);
+                break;
+
+            case 24:
+                shot_ext->shot.ctl.sensor.frameDuration = (41666 * 1000);
+                break;
+
+            case 25:
+                shot_ext->shot.ctl.sensor.frameDuration = (40000 * 1000);
+                break;
+
+            case 30:
+            default:
+                shot_ext->shot.ctl.sensor.frameDuration = (33333 * 1000);
+                break;
+            }
+            shot_ext->shot.ctl.aa.aeTargetFpsRange[1] = 30;
+
             // Flash mode
             // Keep and Skip request_scc = 1 at flash enable mode to operate flash sequence
             if ((m_ctlInfo.flash.i_flashMode >= AA_AEMODE_ON_AUTO_FLASH)