Loading services/camera/libcameraservice/CameraService.cpp +55 −29 Original line number Original line Diff line number Diff line Loading @@ -2256,6 +2256,22 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const std::str // Enable/disable camera service watchdog // Enable/disable camera service watchdog client->setCameraServiceWatchdog(mCameraServiceWatchdogEnabled); client->setCameraServiceWatchdog(mCameraServiceWatchdogEnabled); CameraMetadata chars; bool rotateAndCropSupported = true; err = mCameraProviderManager->getCameraCharacteristics(cameraId, overrideForPerfClass, &chars, overrideToPortrait); if (err == OK) { auto availableRotateCropEntry = chars.find( ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES); if (availableRotateCropEntry.count <= 1) { rotateAndCropSupported = false; } } else { ALOGE("%s: Unable to query static metadata for camera %s: %s (%d)", __FUNCTION__, cameraId.c_str(), strerror(-err), err); } if (rotateAndCropSupported) { // Set rotate-and-crop override behavior // Set rotate-and-crop override behavior if (mOverrideRotateAndCropMode != ANDROID_SCALER_ROTATE_AND_CROP_AUTO) { if (mOverrideRotateAndCropMode != ANDROID_SCALER_ROTATE_AND_CROP_AUTO) { client->setRotateAndCropOverride(mOverrideRotateAndCropMode); client->setRotateAndCropOverride(mOverrideRotateAndCropMode); Loading @@ -2281,7 +2297,16 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const std::str mCameraServiceProxyWrapper->getRotateAndCropOverride( mCameraServiceProxyWrapper->getRotateAndCropOverride( clientPackageName, facing, multiuser_get_user_id(clientUid))); clientPackageName, facing, multiuser_get_user_id(clientUid))); } } } bool autoframingSupported = true; auto availableAutoframingEntry = chars.find(ANDROID_CONTROL_AUTOFRAMING_AVAILABLE); if ((availableAutoframingEntry.count == 1) && (availableAutoframingEntry.data.u8[0] == ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE)) { autoframingSupported = false; } if (autoframingSupported) { // Set autoframing override behaviour // Set autoframing override behaviour if (mOverrideAutoframingMode != ANDROID_CONTROL_AUTOFRAMING_AUTO) { if (mOverrideAutoframingMode != ANDROID_CONTROL_AUTOFRAMING_AUTO) { client->setAutoframingOverride(mOverrideAutoframingMode); client->setAutoframingOverride(mOverrideAutoframingMode); Loading @@ -2290,6 +2315,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const std::str mCameraServiceProxyWrapper->getAutoframingOverride( mCameraServiceProxyWrapper->getAutoframingOverride( clientPackageName)); clientPackageName)); } } } // Set camera muting behavior // Set camera muting behavior bool isCameraPrivacyEnabled = bool isCameraPrivacyEnabled = Loading Loading
services/camera/libcameraservice/CameraService.cpp +55 −29 Original line number Original line Diff line number Diff line Loading @@ -2256,6 +2256,22 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const std::str // Enable/disable camera service watchdog // Enable/disable camera service watchdog client->setCameraServiceWatchdog(mCameraServiceWatchdogEnabled); client->setCameraServiceWatchdog(mCameraServiceWatchdogEnabled); CameraMetadata chars; bool rotateAndCropSupported = true; err = mCameraProviderManager->getCameraCharacteristics(cameraId, overrideForPerfClass, &chars, overrideToPortrait); if (err == OK) { auto availableRotateCropEntry = chars.find( ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES); if (availableRotateCropEntry.count <= 1) { rotateAndCropSupported = false; } } else { ALOGE("%s: Unable to query static metadata for camera %s: %s (%d)", __FUNCTION__, cameraId.c_str(), strerror(-err), err); } if (rotateAndCropSupported) { // Set rotate-and-crop override behavior // Set rotate-and-crop override behavior if (mOverrideRotateAndCropMode != ANDROID_SCALER_ROTATE_AND_CROP_AUTO) { if (mOverrideRotateAndCropMode != ANDROID_SCALER_ROTATE_AND_CROP_AUTO) { client->setRotateAndCropOverride(mOverrideRotateAndCropMode); client->setRotateAndCropOverride(mOverrideRotateAndCropMode); Loading @@ -2281,7 +2297,16 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const std::str mCameraServiceProxyWrapper->getRotateAndCropOverride( mCameraServiceProxyWrapper->getRotateAndCropOverride( clientPackageName, facing, multiuser_get_user_id(clientUid))); clientPackageName, facing, multiuser_get_user_id(clientUid))); } } } bool autoframingSupported = true; auto availableAutoframingEntry = chars.find(ANDROID_CONTROL_AUTOFRAMING_AVAILABLE); if ((availableAutoframingEntry.count == 1) && (availableAutoframingEntry.data.u8[0] == ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE)) { autoframingSupported = false; } if (autoframingSupported) { // Set autoframing override behaviour // Set autoframing override behaviour if (mOverrideAutoframingMode != ANDROID_CONTROL_AUTOFRAMING_AUTO) { if (mOverrideAutoframingMode != ANDROID_CONTROL_AUTOFRAMING_AUTO) { client->setAutoframingOverride(mOverrideAutoframingMode); client->setAutoframingOverride(mOverrideAutoframingMode); Loading @@ -2290,6 +2315,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const std::str mCameraServiceProxyWrapper->getAutoframingOverride( mCameraServiceProxyWrapper->getAutoframingOverride( clientPackageName)); clientPackageName)); } } } // Set camera muting behavior // Set camera muting behavior bool isCameraPrivacyEnabled = bool isCameraPrivacyEnabled = Loading