From aa6acb2a437becb71047101d838d84ff0a0d2199 Mon Sep 17 00:00:00 2001 From: chen0088 Date: Thu, 22 Feb 2024 11:31:12 +0800 Subject: [PATCH] fix:take photo rotate Signed-off-by: chen0088 --- .../client/include/dcamera_client.h | 1 - .../client/src/dcamera_client.cpp | 24 +++---------------- .../cameraoperator/dcamera_client_test.cpp | 4 +++- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/services/cameraservice/cameraoperator/client/include/dcamera_client.h b/services/cameraservice/cameraoperator/client/include/dcamera_client.h index e52799fb..164d43f4 100644 --- a/services/cameraservice/cameraoperator/client/include/dcamera_client.h +++ b/services/cameraservice/cameraoperator/client/include/dcamera_client.h @@ -73,7 +73,6 @@ private: private: constexpr static uint32_t DCAMERA_MAX_METADATA_SIZE = 20; - constexpr static int32_t DCAMERA_CAPTURE_ROTATE_360 = 360; bool isInit_; std::string cameraId_; diff --git a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp index dbb77a26..e9d2d17a 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp @@ -584,29 +584,11 @@ void DCameraClient::SetPhotoCaptureRotation(const std::shared_ptrget(), OHOS_JPEG_ORIENTATION, &item); if ((ret == CAM_META_SUCCESS) && (rotationCount == item.count)) { - int32_t oriSetRotate = item.data.i32[0]; - int32_t setRotate = oriSetRotate; - int32_t sensorRotate = 0; - std::string abilityString = ((sptr &)cameraInput_)->GetCameraSettings(); - std::shared_ptr cameraAbility = Camera::MetadataUtils::DecodeFromString(abilityString); - if (cameraAbility != nullptr) { - camera_metadata_item_t itemSensor; - ret = Camera::FindCameraMetadataItem(cameraAbility->get(), OHOS_SENSOR_ORIENTATION, &itemSensor); - if ((ret == CAM_META_SUCCESS) && (rotationCount == itemSensor.count)) { - sensorRotate = itemSensor.data.i32[0]; - setRotate = setRotate - sensorRotate; - } - } - - if (setRotate < 0) { - setRotate += DCAMERA_CAPTURE_ROTATE_360; - } - CameraStandard::PhotoCaptureSetting::RotationConfig rotation = - static_cast(setRotate); + static_cast(item.data.i32[0]); photoCaptureSetting->SetRotation(rotation); - DHLOGI("SetPhotoCaptureRotation %s photo set %d rotation: %d setRotate: %d sensorRotate: %d oriSetRotate: %d", - GetAnonyString(cameraId_).c_str(), item.count, rotation, setRotate, sensorRotate, oriSetRotate); + DHLOGI("SetPhotoCaptureRotation %s photo capture settings set %d rotation: %d", + GetAnonyString(cameraId_).c_str(), item.count, rotation); } } diff --git a/services/cameraservice/cameraoperator/client/test/unittest/common/cameraoperator/dcamera_client_test.cpp b/services/cameraservice/cameraoperator/client/test/unittest/common/cameraoperator/dcamera_client_test.cpp index 83ca1e01..7f42eef2 100644 --- a/services/cameraservice/cameraoperator/client/test/unittest/common/cameraoperator/dcamera_client_test.cpp +++ b/services/cameraservice/cameraoperator/client/test/unittest/common/cameraoperator/dcamera_client_test.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2023 Huawei Device Co., Ltd. + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -476,6 +476,8 @@ HWTEST_F(DCameraClientTest, dcamera_client_test_007, TestSize.Level1) uint8_t afMode = OHOS_CAMERA_FOCUS_MODE_AUTO; uint8_t aeMode = OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO; uint8_t stabilizationMode = OHOS_CAMERA_VIDEO_STABILIZATION_OFF; + int32_t orientation = OHOS_CAMERA_JPEG_ROTATION_0; + metaData->addEntry(OHOS_JPEG_ORIENTATION, &orientation, sizeof(int32_t)); metaData->addEntry(OHOS_CONTROL_FOCUS_MODE, &afMode, sizeof(afMode)); metaData->addEntry(OHOS_CONTROL_EXPOSURE_MODE, &aeMode, sizeof(aeMode)); metaData->addEntry(OHOS_CONTROL_VIDEO_STABILIZATION_MODE, &stabilizationMode, sizeof(stabilizationMode)); -- Gitee