Loading services/camera/libcameraservice/api1/Camera2Client.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,20 @@ status_t Camera2Client::initialize(sp<CameraProviderManager> manager) { return initializeImpl(manager); } bool Camera2Client::isZslEnabledInStillTemplate() { bool zslEnabled = false; CameraMetadata stillTemplate; status_t res = mDevice->createDefaultRequest(CAMERA2_TEMPLATE_STILL_CAPTURE, &stillTemplate); if (res == OK) { camera_metadata_entry_t enableZsl = stillTemplate.find(ANDROID_CONTROL_ENABLE_ZSL); if (enableZsl.count == 1) { zslEnabled = (enableZsl.data.u8[0] == ANDROID_CONTROL_ENABLE_ZSL_TRUE); } } return zslEnabled; } template<typename TProviderPtr> status_t Camera2Client::initializeImpl(TProviderPtr providerPtr) { Loading @@ -93,6 +107,8 @@ status_t Camera2Client::initializeImpl(TProviderPtr providerPtr) __FUNCTION__, mCameraId, strerror(-res), res); return NO_INIT; } l.mParameters.isDeviceZslSupported = isZslEnabledInStillTemplate(); } String8 threadName; Loading services/camera/libcameraservice/api1/Camera2Client.h +2 −0 Original line number Diff line number Diff line Loading @@ -224,6 +224,8 @@ private: template<typename TProviderPtr> status_t initializeImpl(TProviderPtr providerPtr); bool isZslEnabledInStillTemplate(); }; }; // namespace android Loading services/camera/libcameraservice/api1/client2/Parameters.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -954,7 +954,8 @@ status_t Parameters::initialize(const CameraMetadata *info, int deviceVersion) { } } if (slowJpegMode || property_get_bool("camera.disable_zsl_mode", false)) { if (isDeviceZslSupported || slowJpegMode || property_get_bool("camera.disable_zsl_mode", false)) { ALOGI("Camera %d: Disabling ZSL mode", cameraId); allowZslMode = false; } else { Loading Loading @@ -1997,7 +1998,8 @@ status_t Parameters::set(const String8& paramString) { if (previewFpsRange[1] > 1e9/minFrameDurationNs + FPS_MARGIN) { slowJpegMode = true; } if (slowJpegMode || property_get_bool("camera.disable_zsl_mode", false)) { if (isDeviceZslSupported || slowJpegMode || property_get_bool("camera.disable_zsl_mode", false)) { allowZslMode = false; } else { allowZslMode = isZslReprocessPresent; Loading services/camera/libcameraservice/api1/client2/Parameters.h +2 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,8 @@ struct Parameters { bool slowJpegMode; // Whether ZSL reprocess is supported by the device. bool isZslReprocessPresent; // Whether the device supports enableZsl. bool isDeviceZslSupported; // Overall camera state enum State { Loading Loading
services/camera/libcameraservice/api1/Camera2Client.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,20 @@ status_t Camera2Client::initialize(sp<CameraProviderManager> manager) { return initializeImpl(manager); } bool Camera2Client::isZslEnabledInStillTemplate() { bool zslEnabled = false; CameraMetadata stillTemplate; status_t res = mDevice->createDefaultRequest(CAMERA2_TEMPLATE_STILL_CAPTURE, &stillTemplate); if (res == OK) { camera_metadata_entry_t enableZsl = stillTemplate.find(ANDROID_CONTROL_ENABLE_ZSL); if (enableZsl.count == 1) { zslEnabled = (enableZsl.data.u8[0] == ANDROID_CONTROL_ENABLE_ZSL_TRUE); } } return zslEnabled; } template<typename TProviderPtr> status_t Camera2Client::initializeImpl(TProviderPtr providerPtr) { Loading @@ -93,6 +107,8 @@ status_t Camera2Client::initializeImpl(TProviderPtr providerPtr) __FUNCTION__, mCameraId, strerror(-res), res); return NO_INIT; } l.mParameters.isDeviceZslSupported = isZslEnabledInStillTemplate(); } String8 threadName; Loading
services/camera/libcameraservice/api1/Camera2Client.h +2 −0 Original line number Diff line number Diff line Loading @@ -224,6 +224,8 @@ private: template<typename TProviderPtr> status_t initializeImpl(TProviderPtr providerPtr); bool isZslEnabledInStillTemplate(); }; }; // namespace android Loading
services/camera/libcameraservice/api1/client2/Parameters.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -954,7 +954,8 @@ status_t Parameters::initialize(const CameraMetadata *info, int deviceVersion) { } } if (slowJpegMode || property_get_bool("camera.disable_zsl_mode", false)) { if (isDeviceZslSupported || slowJpegMode || property_get_bool("camera.disable_zsl_mode", false)) { ALOGI("Camera %d: Disabling ZSL mode", cameraId); allowZslMode = false; } else { Loading Loading @@ -1997,7 +1998,8 @@ status_t Parameters::set(const String8& paramString) { if (previewFpsRange[1] > 1e9/minFrameDurationNs + FPS_MARGIN) { slowJpegMode = true; } if (slowJpegMode || property_get_bool("camera.disable_zsl_mode", false)) { if (isDeviceZslSupported || slowJpegMode || property_get_bool("camera.disable_zsl_mode", false)) { allowZslMode = false; } else { allowZslMode = isZslReprocessPresent; Loading
services/camera/libcameraservice/api1/client2/Parameters.h +2 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,8 @@ struct Parameters { bool slowJpegMode; // Whether ZSL reprocess is supported by the device. bool isZslReprocessPresent; // Whether the device supports enableZsl. bool isDeviceZslSupported; // Overall camera state enum State { Loading