添加自定义水印开关为例:
底层添加
diff --git a/vendor/sprd/modules/libcamera/common/inc/cmr_common.h b/vendor/sprd/modules/libcamera/common/inc/cmr_common.h
index a83a90eb89d..ef6a1bedf47 100755
--- a/vendor/sprd/modules/libcamera/common/inc/cmr_common.h
+++ b/vendor/sprd/modules/libcamera/common/inc/cmr_common.h
@@ -2067,6 +2067,7 @@ enum camera_param_type {
CAMERA_PARAM_SPRD_CALLBACK_EXPO_TIME,
CAMERA_PARAM_SPRD_CALLBACK_SENSITIVITY,
CAMERA_PARAM_SPRD_CALLBACK_AE_MODE,
+ CAMERA_PARAM_SPRD_CUSTOMIZE_WATERMARK_ENABLED, //bv zhoudengfu add for customize water mark 20230627
CAMERA_PARAM_TYPE_MAX
};
diff --git a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Channel.cpp b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Channel.cpp
index 3e1ca323490..b8cb7891f55 100755
--- a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Channel.cpp
+++ b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Channel.cpp
@@ -1944,6 +1944,12 @@ int SprdCamera3MetadataChannel::start(uint32_t frame_number) {
HAL_LOGV("ANDROID_SPRD_TIMEWATERMARK_ENABLED");
mOEMIf->SetCameraParaTag(ANDROID_SPRD_TIMEWATERMARK_ENABLED);
break;
+ //bv zhoudengfu add for customize water mark start 20230627
+ case ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED:
+ HAL_LOGV("ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED");
+ mOEMIf->SetCameraParaTag(ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED);
+ break;
+ //bv zhoudengfu add for customize water mark end 20230627
case ANDROID_SPRD_ADJUST_FLASH_LEVEL:
HAL_LOGV("ANDROID_SPRD_ADJUST_FLASH_LEVEL");
mOEMIf->SetCameraParaTag(ANDROID_SPRD_ADJUST_FLASH_LEVEL);
diff --git a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3OEMIf.cpp b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3OEMIf.cpp
index c2148c7e52e..1bb0346bed9 100755
--- a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3OEMIf.cpp
+++ b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3OEMIf.cpp
@@ -10201,6 +10201,16 @@ int SprdCamera3OEMIf::SetCameraParaTag(cmr_int cameraParaTag) {
CAMERA_PARAM_SPRD_TIME_WATERMARK_ENABLED,
sprdInfo->sprd_is_time_watermark);
} break;
+ //bv zhoudengfu add for customize water mark start 20230627
+ case ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED: {
+ SPRD_DEF_Tag *sprdInfo;
+ sprdInfo = mSetting->getSPRDDEFTagPTR();
+ SET_PARM(mHalOem, mCameraHandle,
+ CAMERA_PARAM_SPRD_CUSTOMIZE_WATERMARK_ENABLED,
+ sprdInfo->sprd_is_customize_watermark);
+ } break;
+ //bv zhoudengfu add for customize water mark end 20230627
+
case ANDROID_SPRD_SUPER_MACROPHOTO_ENABLE: {
SPRD_DEF_Tag *sprdInfo;
sprdInfo = mSetting->getSPRDDEFTagPTR();
diff --git a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Setting.cpp b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Setting.cpp
index e949bd968d8..c39fcbebdd3 100755
--- a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Setting.cpp
+++ b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Setting.cpp
@@ -4972,6 +4972,10 @@ int SprdCamera3Setting::constructDefaultMetadata(int type,
&sprdWaterMarkEnabled, 1);
requestInfo.update(ANDROID_SPRD_TIMEWATERMARK_ENABLED,
&sprdWaterMarkEnabled, 1);
+ //bv zhoudengfu add for customize water mark start 20230627
+ requestInfo.update(ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED,
+ &sprdWaterMarkEnabled, 1);
+ //bv zhoudengfu add for customize water mark end 20230627
uint8_t sprd_calibration_otp_result = 0;
requestInfo.update(ANDROID_SPRD_CALIBRATION_OTP_RESULT,
@@ -6240,6 +6244,16 @@ int SprdCamera3Setting::updateWorkParameters(
ANDROID_SPRD_TIMEWATERMARK_ENABLED, 1);
}
+ //bv zhoudengfu add for customize water mark start 20230627
+ if (frame_settings.exists(ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED)) {
+ valueU8 =
+ frame_settings.find(ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED).data.u8[0];
+ GET_VALUE_IF_DIF(
+ s_setting[mCameraId].sprddefInfo.sprd_is_customize_watermark, valueU8,
+ ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED, 1);
+ }
+ //bv zhoudengfu add for customize water mark end 20230627
+
if (frame_settings.exists(ANDROID_SPRD_ULTRA_DISTORTION_CORRECT_ENABLE)) {
valueU8 =
frame_settings.find(ANDROID_SPRD_ULTRA_DISTORTION_CORRECT_ENABLE).data.u8[0];
diff --git a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Setting.h b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Setting.h
index c0757acd812..b1ae6b1ada3 100755
--- a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Setting.h
+++ b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3Setting.h
@@ -494,6 +494,7 @@ typedef struct {
uint8_t gesture_detect_enable;
uint8_t gesture_detect_current;
uint8_t is_first_request;
+ uint8_t sprd_is_customize_watermark; //bv zhoudengfu add for customize water mark 20230627
} SPRD_DEF_Tag;
typedef struct {
diff --git a/vendor/sprd/modules/libcamera/include/SprdCamera3.h b/vendor/sprd/modules/libcamera/include/SprdCamera3.h
index fad7ae58802..d91779d781f 100755
--- a/vendor/sprd/modules/libcamera/include/SprdCamera3.h
+++ b/vendor/sprd/modules/libcamera/include/SprdCamera3.h
@@ -276,6 +276,7 @@ static tags_info_t
{"sprdGesturedetectEnabled", TYPE_BYTE},
{"sprdGesturedetectCurrent", TYPE_BYTE},
{"sprdBypassBlcEnable", TYPE_BYTE},
+ {"sprdCustomizeWatermarkEnabled", TYPE_BYTE}, //bv zhoudengfu add for customize water mark 20230627
};
tags_info_t *cam_tag_info[ANDROID_VENDOR_SECTION_COUNT] = {
diff --git a/vendor/sprd/modules/libcamera/include/SprdCamera3Tags.h b/vendor/sprd/modules/libcamera/include/SprdCamera3Tags.h
index 5dc6feed997..c7c436b1062 100755
--- a/vendor/sprd/modules/libcamera/include/SprdCamera3Tags.h
+++ b/vendor/sprd/modules/libcamera/include/SprdCamera3Tags.h
@@ -137,6 +137,9 @@ typedef enum sprd_camera_ext_tags {
ANDROID_SPRD_GESTUREDETECT_ENABLED,
ANDROID_SPRD_GESTUREDETECT_CURRENT,
ANDROID_SPRD_BYPASS_BLC_ENABLE,
+ //bv zhoudengfu add for customize water mark start 20230627
+ ANDROID_SPRD_CUSTOMIZE_WATERMARK_ENABLED,
+ //bv zhoudengfu add for customize water mark end 20230627
VENDOR_SECTION_END,
/*not parameter but only flag between framework and hal*/
/*sprd add flag end*/
diff --git a/vendor/sprd/modules/libcamera/oem2v6/inc/cmr_setting.h b/vendor/sprd/modules/libcamera/oem2v6/inc/cmr_setting.h
index d68aa9db907..32292ea0a49 100755
--- a/vendor/sprd/modules/libcamera/oem2v6/inc/cmr_setting.h
+++ b/vendor/sprd/modules/libcamera/oem2v6/inc/cmr_setting.h
@@ -124,6 +124,7 @@ enum setting_cmd_type {
SETTING_RESET_CALLBACK_STREAM_INFO,
SETTING_CTRL_AE_CAP_PARAM,
SETTING_CLEAR_AE_CAP_PARAM,
+ SETTING_GET_SPRD_CUSTOMIZE_WATERMARK, //bv zhoudengfu add for customize water mark 20230627
SETTING_TYPE_MAX
};
diff --git a/vendor/sprd/modules/libcamera/oem2v6/inc/cmr_watermark.h b/vendor/sprd/modules/libcamera/oem2v6/inc/cmr_watermark.h
index 88f0f2b033b..65335468570 100644
--- a/vendor/sprd/modules/libcamera/oem2v6/inc/cmr_watermark.h
+++ b/vendor/sprd/modules/libcamera/oem2v6/inc/cmr_watermark.h
@@ -5,6 +5,8 @@
#define WATERMARK_LOGO (1 << 0)
#define WATERMARK_TIME (1 << 1)
+#define WATERMARK_CUSTOMIZE (1 << 2) //bv zhoudengfu add for customize water mark 20230627
+
typedef struct {
int imgW;
diff --git a/vendor/sprd/modules/libcamera/oem2v6/src/cmr_oem.c b/vendor/sprd/modules/libcamera/oem2v6/src/cmr_oem.c
index 74b14a61d67..50f5888d136 100755
--- a/vendor/sprd/modules/libcamera/oem2v6/src/cmr_oem.c
+++ b/vendor/sprd/modules/libcamera/oem2v6/src/cmr_oem.c
@@ -5748,6 +5748,13 @@ cmr_u32 camera_get_watermark_flag(cmr_handle oem_handle) {
if (setting_param.cmd_type_value)
watermark_flag |= WATERMARK_TIME;
+ //bv zhoudengfu add for customize water mark start 20230627
+ ret = cmr_setting_ioctl(setting_cxt->setting_handle,
+ SETTING_GET_SPRD_CUSTOMIZE_WATERMARK, &setting_param);
+ if (setting_param.cmd_type_value)
+ watermark_flag |= WATERMARK_CUSTOMIZE;
+ //bv zhoudengfu add for customize water mark end 20230627
+
return watermark_flag;
}
@@ -15541,6 +15548,13 @@ cmr_int camera_set_setting(cmr_handle oem_handle, enum camera_param_type id,
ret = cmr_setting_ioctl(cxt->setting_cxt.setting_handle, id,
&setting_param);
break;
+ //bv zhoudengfu add for customize water mark start 20230627
+ case CAMERA_PARAM_SPRD_CUSTOMIZE_WATERMARK_ENABLED:
+ setting_param.cmd_type_value = param;
+ ret = cmr_setting_ioctl(cxt->setting_cxt.setting_handle, id,
+ &setting_param);
+ break;
+ //bv zhoudengfu add for customize water mark end 20230627
case CAMERA_PARAM_SPRD_AUTOCHASING_REGION_ENABLE:
setting_param.cmd_type_value = param;
ret = cmr_setting_ioctl(cxt->setting_cxt.setting_handle, id,
diff --git a/vendor/sprd/modules/libcamera/oem2v6/src/cmr_setting.c b/vendor/sprd/modules/libcamera/oem2v6/src/cmr_setting.c
index 655c03e9758..005f610bb3e 100755
--- a/vendor/sprd/modules/libcamera/oem2v6/src/cmr_setting.c
+++ b/vendor/sprd/modules/libcamera/oem2v6/src/cmr_setting.c
@@ -195,6 +195,7 @@ struct setting_hal_param {
cmr_uint p2p_enable;//picture in picture
cmr_uint sprd_logo_watermark;
cmr_uint sprd_time_watermark;
+ cmr_uint sprd_customize_watermark; //bv zhoudengfu add 20230627
struct img_size originalPictureSize;
cmr_uint is_super_macrophoto;
cmr_uint is_enable_flash_cali;
@@ -2892,6 +2893,31 @@ static cmr_int setting_get_time_watermark(struct setting_component *cpt,
return ret;
}
+//bv zhoudengfu add for customize water mark start 20230627
+static cmr_int setting_set_customize_watermark(struct setting_component *cpt,
+ struct setting_cmd_parameter *parm) {
+ cmr_int ret = 0;
+ struct setting_hal_param *hal_param = get_hal_param(cpt, parm->camera_id);
+
+ hal_param->sprd_customize_watermark = parm->cmd_type_value;
+ CMR_LOGD("customize watermark=%d", hal_param->sprd_customize_watermark);
+
+ return ret;
+}
+
+static cmr_int setting_get_customize_watermark(struct setting_component *cpt,
+ struct setting_cmd_parameter *parm) {
+ cmr_int ret = 0;
+ struct setting_hal_param *hal_param = get_hal_param(cpt, parm->camera_id);
+
+ parm->cmd_type_value = hal_param->sprd_customize_watermark;
+ CMR_LOGD("customize watermark=%d", hal_param->sprd_customize_watermark);
+
+ return ret;
+}
+//bv zhoudengfu add for customize water mark end 20230627
+
+
static cmr_int setting_set_environment(struct setting_component *cpt,
struct setting_cmd_parameter *parm) {
ATRACE_BEGIN(__FUNCTION__);
@@ -4584,10 +4610,18 @@ static setting_ioctl_fun_ptr setting_list[SETTING_TYPE_MAX] = {
setting_set_logo_watermark,
[CAMERA_PARAM_SPRD_TIME_WATERMARK_ENABLED] =
setting_set_time_watermark,
+ //bv zhoudengfu add for customize water mark start 20230627
+ [CAMERA_PARAM_SPRD_CUSTOMIZE_WATERMARK_ENABLED] =
+ setting_set_customize_watermark,
+ //bv zhoudengfu add for customize water mark end 20230627
[SETTING_GET_SPRD_LOGO_WATERMARK] =
setting_get_logo_watermark,
[SETTING_GET_SPRD_TIME_WATERMARK] =
setting_get_time_watermark,
+ //bv zhoudengfu add for customize water mark start 20230627
+ [SETTING_GET_SPRD_CUSTOMIZE_WATERMARK] =
+ setting_get_customize_watermark,
+ //bv zhoudengfu add for customize water mark end 20230627
[SETTING_CTRL_AE_NOTIFY] =
setting_ctrl_ae_adjust,
[SETTING_CLEAR_AE_NOTIFY] =
diff --git a/vendor/sprd/modules/libcamera/oem2v6/src/cmr_watermark.c b/vendor/sprd/modules/libcamera/oem2v6/src/cmr_watermark.c
index 86fc2f6f37d..f9142563d8f 100755
--- a/vendor/sprd/modules/libcamera/oem2v6/src/cmr_watermark.c
+++ b/vendor/sprd/modules/libcamera/oem2v6/src/cmr_watermark.c
@@ -11,12 +11,18 @@
#include "cmr_watermark.h"
#include "math.h"
-
+#include "errno.h"
+#include "string.h"
/* max number of char for time watermark */
#define TIMESTAMP_CHAR_MAX (20)
/* watermark source file path, attention: total(PATH+NAME) should < 256 */
#define CAMERA_LOGO_PATH "/vendor/logo/"
+//#define CAMERA_CUSTOMIZE_LOGO_PATH "/data/data/com.android.camera2/files/watermark.rgba" //bv zhoudengfu add for customize water mark 20230627
+
+//#define CAMERA_CUSTOMIZE_LOGO_PATH "/storage/emulated/0/Documents/watermark.rgba"
+#define CAMERA_CUSTOMIZE_LOGO_PATH "/data/data/com.android.camera2/files/watermark.rgba"
+
/* local function */
static int camera_select_time_file(sizeParam_t *pt);
@@ -498,7 +504,8 @@ static int camera_get_logo_data(unsigned char *logo, sizeParam_t *size) {
CMR_LOGE("file name too long");
return -1;
}
- strcat(tmp_name, size->filename);
+ strcat(tmp_name, "watermark.rgba");
+ CMR_LOGW("open watermark path = %s",tmp_name);
FILE *fp = fopen(tmp_name, "rb");
if (fp) {
len = (unsigned int)fread(logo, 1, size->logoW * size->logoH * 4, fp);
@@ -510,6 +517,33 @@ static int camera_get_logo_data(unsigned char *logo, sizeParam_t *size) {
return -ENOENT;
}
+
+//bv zhoudengfu add for customize water mark start 20230627
+static int camera_get_customize_logo_data(unsigned char *logo, sizeParam_t *size) {
+ char tmp_name[256];
+ unsigned int len = 0;
+
+ strcpy(tmp_name, CAMERA_CUSTOMIZE_LOGO_PATH);
+ if (strlen(tmp_name) + strlen(size->filename) > sizeof(tmp_name)) {
+ CMR_LOGE("file name too long");
+ return -1;
+ }
+ CMR_LOGW("open customize watermark path = %s",tmp_name);
+ FILE *fp = fopen(tmp_name, "rb");
+ if (fp) {
+ len = (unsigned int)fread(logo, 1, size->logoW * size->logoH * 4, fp);
+ fclose(fp);
+ if (len == size->logoW * size->logoH * 4)
+ return 0;
+ }
+
+ CMR_LOGW("open customize watermark fail errno = %d reason = %s", errno, strerror(errno));
+ CMR_LOGW("open customize watermark src file failed");
+
+ return -ENOENT;
+}
+//bv zhoudengfu add for customize water mark end 20230627
+
/* combine image as:2019-10-10 10:37:45 with src
* input: time source(rgba)
* output: timestamp image as 2019-10-10 10:37:45, vertical
@@ -836,6 +870,38 @@ int watermark_add_yuv(int flag, unsigned char *pyuv, sizeParam_t *sizeparam,
}
_END_LOGO:
+//bv zhoudengfu add for customize water mark start 20230627
+ // customize watermark
+ if (flag & WATERMARK_CUSTOMIZE) {
+ flag &= (~WATERMARK_CUSTOMIZE);
+ ret = camera_select_logo(sizeparam);
+ if (ret) {
+ CMR_LOGW("Get logo src fail %d", ret);
+ goto _END_LOGO_CUSTOMIZE;
+ }
+ pwmark = (unsigned char *)malloc(sizeparam->logoW * sizeparam->logoH * 4);
+ if (NULL == pwmark) {
+ CMR_LOGE("Alloc mem for logo fail");
+ goto _END_LOGO_CUSTOMIZE;
+ }
+ /* If get pos from camera_select_logo, remove the code below
+ * pos: need align 2
+ */
+ sizeparam->posX = 0;
+ sizeparam->posY = 0;
+ ret = camera_get_customize_logo_data(pwmark, sizeparam);
+ if (ret) {
+ free(pwmark);
+ goto _END_LOGO_CUSTOMIZE;
+ }
+ ret = sprd_fusion_yuv420_rgba(pyuv, pwmark, sizeparam);
+ if (ret == 0)
+ flag |= WATERMARK_CUSTOMIZE;
+ free(pwmark);
+ }
+_END_LOGO_CUSTOMIZE:
+//bv zhoudengfu add for customize water mark end 20230627
+
// time watermark
if (flag & WATERMARK_TIME) {
flag &= (~WATERMARK_TIME);
上层添加
```java
diff --git a/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdAndroidCamera2Settings.java b/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdAndroidCamera2Settings.java
index 9b73ead..c5975a7 100644
--- a/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdAndroidCamera2Settings.java
+++ b/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdAndroidCamera2Settings.java
@@ -246,6 +246,15 @@ public class SprdAndroidCamera2Settings extends AndroidCamera2Settings {
Log.i(TAG, " set CONTROL_SPRD_FAST_THUMB: mFastThumbEnable = " + mFastThumbEnable);
requestSettings.set(CONTROL_SPRD_FAST_THUMB, mFastThumbEnable);
}
+
+ //bv zhoudengfu add for bv customize water mark start 20230609
+ if(mCurrentEnableCustomizeWatermark!= -1){
+ Log.i(TAG, " set ANDROID_SPRD_ENABLED: mCurrentEnableCustomizeWatermark = "
+ + mCurrentEnableCustomizeWatermark);
+ requestSettings.set(ANDROID_SPRD_CUSTOMIZEWATERMARK_ENABLED, mCurrentEnableCustomizeWatermark);
+ }
+ //bv zhoudengfu add for bv customize water mark end 20230609
+
}
protected MeteringRectangle[] legacyAreasToMeteringRectanglesOnlyPreview(
diff --git a/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdCameraSettings.java b/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdCameraSettings.java
index b31474d..33b4937 100644
--- a/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdCameraSettings.java
+++ b/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdCameraSettings.java
@@ -82,6 +82,10 @@ public abstract class SprdCameraSettings {
protected int mCurrentEnableFaceAttributes= -1;
protected int mCurrentEnableSmileShutter= -1;
protected boolean mCurrentGestureCapture = false;
+ //bv zhoudengfu add for bv customize water mark start 20230609
+ protected int mCurrentEnableCustomizeWatermark = -1;
+ //bv zhoudengfu add for bv customize water mark end 20230609
+
protected static final int[] MAKE_UP_DEFAULT_VALUE = new int[]{0,0,0,0,0,0,0,0,0};
protected boolean mCurrentNeedThumb = false;
@@ -163,6 +167,9 @@ public abstract class SprdCameraSettings {
mCurrentSlidePosition = src.mCurrentSlidePosition;
mSuperMacroPhotoEnable = src.mSuperMacroPhotoEnable;
mCurrentGestureCapture = src.mCurrentGestureCapture;
+ //bv zhoudengfu add for bv customize water mark start 20230609
+ mCurrentEnableCustomizeWatermark = src.mCurrentEnableCustomizeWatermark;
+ //bv zhoudengfu add for bv customize water mark end 20230609
}
public void setAntibanding(CameraCapabilities.Antibanding antibanding) {
@@ -221,6 +228,11 @@ public abstract class SprdCameraSettings {
}
public int getLogoWatermarkEnable() { return mCurrentEnableLogoWatermark; }
public int getTimeWatermarkEnable() { return mCurrentEnableTimeWatermark; }
+ //bv zhoudengfu add for bv customize water mark start 20230609
+ public void setCustomizeWatermarkEnable(int enable) { mCurrentEnableCustomizeWatermark = enable; }
+ public int getCustomizeWatermarkEnable() { return mCurrentEnableCustomizeWatermark; }
+ //bv zhoudengfu add for bv customize water mark end 20230609
+
/*
* SPRD Bug:474721 Feature:Contrast. @{
*/
diff --git a/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdCaptureRequest.java b/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdCaptureRequest.java
index 42ae68b..87a7cee 100644
--- a/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdCaptureRequest.java
+++ b/DK_AWCamera/portability/src/com/android/ex/camera2/portability/SprdCaptureRequest.java
@@ -150,4 +150,10 @@ public class SprdCaptureRequest {
public static final Key<Integer> CONTROL_SPRD_AWB_CT_VALUE = new Key<Integer>(
"com.addParameters.sprdAwbCtValue", int.class);
+
+ //bv zhoudengfu add for bv customize water mark start 20230609
+ public static final Key<Integer> ANDROID_SPRD_CUSTOMIZEWATERMARK_ENABLED = new Key<Integer>(
+ "com.addParameters.sprdCustomizeWatermarkEnabled", int.class);
+ //bv zhoudengfu add for bv customize water mark end 20230609
+
}
在适当地方设置其值
```java
mCameraSettings.setCustomizeWatermarkEnable(1);
if(mCameraDevice != null) {
mCameraDevice.applySettings(mCameraSettings);
}