hardware: samsung_slsi: libcamera2: Supports VDIS static metadata
To make this patch take effect, VDIS_ENABLE should be defined.
VDIS parameters are defined within static information and
default request template.
Change-Id: I7cab259c00268278b0100aba30439e3a957dc6a7
Signed-off-by: Sungjoong Kang <sj3.kang@samsung.com>
diff --git a/libcamera2/ExynosCamera2.cpp b/libcamera2/ExynosCamera2.cpp
index 15722fa..1184abf 100644
--- a/libcamera2/ExynosCamera2.cpp
+++ b/libcamera2/ExynosCamera2.cpp
@@ -657,6 +657,8 @@
uint8_t colorMode = 0;
uint8_t tonemapMode = 0;
uint8_t edgeMode = 0;
+ uint8_t vstabMode = 0;
+
switch (request_template) {
case CAMERA2_TEMPLATE_PREVIEW:
hotPixelMode = ANDROID_PROCESSING_FAST;
@@ -667,6 +669,7 @@
colorMode = ANDROID_PROCESSING_FAST;
tonemapMode = ANDROID_PROCESSING_FAST;
edgeMode = ANDROID_PROCESSING_FAST;
+ vstabMode = ANDROID_CONTROL_VIDEO_STABILIZATION_OFF;
break;
case CAMERA2_TEMPLATE_STILL_CAPTURE:
hotPixelMode = ANDROID_PROCESSING_HIGH_QUALITY;
@@ -677,6 +680,7 @@
colorMode = ANDROID_PROCESSING_HIGH_QUALITY;
tonemapMode = ANDROID_PROCESSING_HIGH_QUALITY;
edgeMode = ANDROID_PROCESSING_HIGH_QUALITY;
+ vstabMode = ANDROID_CONTROL_VIDEO_STABILIZATION_OFF;
break;
case CAMERA2_TEMPLATE_VIDEO_RECORD:
hotPixelMode = ANDROID_PROCESSING_FAST;
@@ -687,6 +691,7 @@
colorMode = ANDROID_PROCESSING_FAST;
tonemapMode = ANDROID_PROCESSING_FAST;
edgeMode = ANDROID_PROCESSING_FAST;
+ vstabMode = ANDROID_CONTROL_VIDEO_STABILIZATION_ON;
break;
case CAMERA2_TEMPLATE_VIDEO_SNAPSHOT:
hotPixelMode = ANDROID_PROCESSING_HIGH_QUALITY;
@@ -697,6 +702,7 @@
colorMode = ANDROID_PROCESSING_HIGH_QUALITY;
tonemapMode = ANDROID_PROCESSING_HIGH_QUALITY;
edgeMode = ANDROID_PROCESSING_HIGH_QUALITY;
+ vstabMode = ANDROID_CONTROL_VIDEO_STABILIZATION_ON;
break;
case CAMERA2_TEMPLATE_ZERO_SHUTTER_LAG:
hotPixelMode = ANDROID_PROCESSING_HIGH_QUALITY;
@@ -707,6 +713,7 @@
colorMode = ANDROID_PROCESSING_HIGH_QUALITY;
tonemapMode = ANDROID_PROCESSING_HIGH_QUALITY;
edgeMode = ANDROID_PROCESSING_HIGH_QUALITY;
+ vstabMode = ANDROID_CONTROL_VIDEO_STABILIZATION_OFF;
break;
default:
hotPixelMode = ANDROID_PROCESSING_FAST;
@@ -717,6 +724,7 @@
colorMode = ANDROID_PROCESSING_FAST;
tonemapMode = ANDROID_PROCESSING_FAST;
edgeMode = ANDROID_PROCESSING_FAST;
+ vstabMode = ANDROID_CONTROL_VIDEO_STABILIZATION_OFF;
break;
}
ADD_OR_SIZE(ANDROID_HOT_PIXEL_MODE, &hotPixelMode, 1);
@@ -727,6 +735,10 @@
ADD_OR_SIZE(ANDROID_COLOR_MODE, &colorMode, 1);
ADD_OR_SIZE(ANDROID_TONEMAP_MODE, &tonemapMode, 1);
ADD_OR_SIZE(ANDROID_EDGE_MODE, &edgeMode, 1);
+#ifndef VDIS_ENABLE
+ vstabMode = ANDROID_CONTROL_VIDEO_STABILIZATION_OFF;
+#endif
+ ADD_OR_SIZE(ANDROID_CONTROL_VIDEO_STABILIZATION_MODE, &vstabMode, 1);
/** android.noise */
static const uint8_t noiseStrength = 5;
@@ -882,9 +894,6 @@
ADD_OR_SIZE(ANDROID_CONTROL_AF_REGIONS, controlRegions, 5);
- static const uint8_t vstabMode = ANDROID_CONTROL_VIDEO_STABILIZATION_OFF;
- ADD_OR_SIZE(ANDROID_CONTROL_VIDEO_STABILIZATION_MODE, &vstabMode, 1);
-
if (sizeRequest) {
ALOGV("Allocating %d entries, %d extra bytes for "
"request template type %d",