From 4cd9aa12be918e1f27f06496706ecf05f4607dc8 Mon Sep 17 00:00:00 2001 From: chen0088 Date: Tue, 29 Mar 2022 11:09:46 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=85=A7=E7=89=87=E8=B4=A8=E9=87=8F=E5=92=8CGPS=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chen0088 --- .../client/src/dcamera_client.cpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp index 462b99a..e5e25cc 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp @@ -16,6 +16,7 @@ #include "dcamera_client.h" #include "anonymous_string.h" +#include "camera_metadata_operator.h" #include "dcamera_input_callback.h" #include "dcamera_manager_callback.h" #include "dcamera_photo_callback.h" @@ -26,6 +27,7 @@ #include "distributed_camera_errno.h" #include "distributed_hardware_log.h" #include "metadata_utils.h" +#include "metadata_utils.h" namespace OHOS { namespace DistributedHardware { @@ -409,6 +411,27 @@ int32_t DCameraClient::StartPhotoOutput(std::shared_ptr& inf std::shared_ptr photoCaptureSettings = std::make_shared(); photoCaptureSettings->SetRotation(rotation); + ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_QUALITY, &item); + if (ret == CAM_META_SUCCESS) { + DHLOGI("DCameraClient::StartPhotoOutput %s find camera quality item", GetAnonyString(cameraId_).c_str()); + CameraStandard::PhotoCaptureSetting::QualityLevel quality = + static_cast(item.data.i8[0]); + DHLOGI("DCameraClient::StartPhotoOutput %s photo capture settings set quality: %d", + GetAnonyString(cameraId_).c_str(), quality); + photoCaptureSettings->SetQuality(quality); + } + ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_GPS_COORDINATES, &item); + if (ret == CAM_META_SUCCESS) { + DHLOGI("DCameraClient::StartPhotoOutput %s find camera gpsCoordinates item", GetAnonyString(cameraId_).c_str()); + double gpsCoordinates[2] = {-1.0, -1.0}; + if (memcpy_s(gpsCoordinates, sizeof(gpsCoordinates), item.data.d, sizeof(gpsCoordinates)) != EOK) { + DHLOGE("DCameraClient::memcpy_s gpsCoordinates failed"); + return DCAMERA_BAD_VALUE; + } + DHLOGI("DCameraClient::StartPhotoOutput %s photo capture settings set gpsCoordinates[0]: %f, gpsCoordinates[1]: %f", + GetAnonyString(cameraId_).c_str(), gpsCoordinates[0], gpsCoordinates[1]); + photoCaptureSettings->SetGpsLocation(gpsCoordinates[0], gpsCoordinates[1]); + } ret = ((sptr &)photoOutput_)->Capture(photoCaptureSettings); if (ret != DCAMERA_OK) { DHLOGE("DCameraClient::StartPhotoOutput %s photoOutput capture failed, ret: %d", From 6944e0aa7c8dc3c834cf47494e7997fecbcd1017 Mon Sep 17 00:00:00 2001 From: chen0088 Date: Tue, 29 Mar 2022 11:18:23 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=85=A7=E7=89=87=E8=B4=A8=E9=87=8F=E5=92=8CGPS=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chen0088 --- .../cameraservice/cameraoperator/client/src/dcamera_client.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp index e5e25cc..fc072a2 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp @@ -15,6 +15,7 @@ #include "dcamera_client.h" +#include #include "anonymous_string.h" #include "camera_metadata_operator.h" #include "dcamera_input_callback.h" @@ -27,7 +28,6 @@ #include "distributed_camera_errno.h" #include "distributed_hardware_log.h" #include "metadata_utils.h" -#include "metadata_utils.h" namespace OHOS { namespace DistributedHardware { From c762c6674c778f3f0b06a0869a550ef0bbeff7cf Mon Sep 17 00:00:00 2001 From: chen0088 Date: Tue, 29 Mar 2022 15:43:07 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=85=A7=E7=89=87=E8=B4=A8=E9=87=8F=E5=92=8CGPS=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chen0088 --- .../client/include/dcamera_client.h | 2 + .../client/src/dcamera_client.cpp | 53 ++++++++++++------- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/services/cameraservice/cameraoperator/client/include/dcamera_client.h b/services/cameraservice/cameraoperator/client/include/dcamera_client.h index f355d2f..27f375e 100644 --- a/services/cameraservice/cameraoperator/client/include/dcamera_client.h +++ b/services/cameraservice/cameraoperator/client/include/dcamera_client.h @@ -55,6 +55,8 @@ private: int32_t StartCaptureInner(std::shared_ptr& info); int32_t StartPhotoOutput(std::shared_ptr& info); int32_t StartVideoOutput(); + int32_t SetQualityAndGpsLocation(const std::shared_ptr &cameraMetadata, + std::shared_ptr &photoCaptureSettings); 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 fc072a2..6fcfa6d 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp @@ -411,26 +411,8 @@ int32_t DCameraClient::StartPhotoOutput(std::shared_ptr& inf std::shared_ptr photoCaptureSettings = std::make_shared(); photoCaptureSettings->SetRotation(rotation); - ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_QUALITY, &item); - if (ret == CAM_META_SUCCESS) { - DHLOGI("DCameraClient::StartPhotoOutput %s find camera quality item", GetAnonyString(cameraId_).c_str()); - CameraStandard::PhotoCaptureSetting::QualityLevel quality = - static_cast(item.data.i8[0]); - DHLOGI("DCameraClient::StartPhotoOutput %s photo capture settings set quality: %d", - GetAnonyString(cameraId_).c_str(), quality); - photoCaptureSettings->SetQuality(quality); - } - ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_GPS_COORDINATES, &item); - if (ret == CAM_META_SUCCESS) { - DHLOGI("DCameraClient::StartPhotoOutput %s find camera gpsCoordinates item", GetAnonyString(cameraId_).c_str()); - double gpsCoordinates[2] = {-1.0, -1.0}; - if (memcpy_s(gpsCoordinates, sizeof(gpsCoordinates), item.data.d, sizeof(gpsCoordinates)) != EOK) { - DHLOGE("DCameraClient::memcpy_s gpsCoordinates failed"); - return DCAMERA_BAD_VALUE; - } - DHLOGI("DCameraClient::StartPhotoOutput %s photo capture settings set gpsCoordinates[0]: %f, gpsCoordinates[1]: %f", - GetAnonyString(cameraId_).c_str(), gpsCoordinates[0], gpsCoordinates[1]); - photoCaptureSettings->SetGpsLocation(gpsCoordinates[0], gpsCoordinates[1]); + if (SetQualityAndGpsLocation(cameraMetadata, photoCaptureSettings) != DCAMERA_OK) { + return DCAMERA_BAD_VALUE; } ret = ((sptr &)photoOutput_)->Capture(photoCaptureSettings); if (ret != DCAMERA_OK) { @@ -441,6 +423,37 @@ int32_t DCameraClient::StartPhotoOutput(std::shared_ptr& inf return DCAMERA_OK; } +int32_t DCameraClient::SetQualityAndGpsLocation(const std::shared_ptr &cameraMetadata, + std::shared_ptr &photoCaptureSettings) +{ + camera_metadata_item_t item; + ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_QUALITY, &item); + if (ret == CAM_META_SUCCESS) { + DHLOGI("DCameraClient::SetQualityAndGpsLocation %s find camera quality item", + GetAnonyString(cameraId_).c_str()); + CameraStandard::PhotoCaptureSetting::QualityLevel quality = + static_cast(item.data.i8[0]); + DHLOGI("DCameraClient::SetQualityAndGpsLocation %s photo capture settings set quality: %d", + GetAnonyString(cameraId_).c_str(), quality); + photoCaptureSettings->SetQuality(quality); + } + ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_GPS_COORDINATES, &item); + if (ret == CAM_META_SUCCESS) { + DHLOGI("DCameraClient::SetQualityAndGpsLocation %s find camera gpsCoordinates item", + GetAnonyString(cameraId_).c_str()); + double gpsCoordinates[2] = {-1.0, -1.0}; + if (memcpy_s(gpsCoordinates, sizeof(gpsCoordinates), item.data.d, sizeof(gpsCoordinates)) != EOK) { + DHLOGE("DCameraClient::memcpy_s gpsCoordinates failed"); + return DCAMERA_BAD_VALUE; + } + DHLOGI("DCameraClient::SetQualityAndGpsLocation %s photo capture settings set " + "gpsCoordinates[0]: %f, gpsCoordinates[1]: %f", + GetAnonyString(cameraId_).c_str(), gpsCoordinates[0], gpsCoordinates[1]); + photoCaptureSettings->SetGpsLocation(gpsCoordinates[0], gpsCoordinates[1]); + } + return DCAMERA_OK; +} + int32_t DCameraClient::StartVideoOutput() { DHLOGI("DCameraClient::StartVideoOutput cameraId: %s", GetAnonyString(cameraId_).c_str()); From aa46b7f26e332af88e6c32a71803b1ceb2517d32 Mon Sep 17 00:00:00 2001 From: chen0088 Date: Wed, 30 Mar 2022 09:46:02 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=85=A7=E7=89=87=E8=B4=A8=E9=87=8F=E5=92=8CGPS=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chen0088 --- .../cameraoperator/client/include/dcamera_client.h | 2 +- .../cameraoperator/client/src/dcamera_client.cpp | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/services/cameraservice/cameraoperator/client/include/dcamera_client.h b/services/cameraservice/cameraoperator/client/include/dcamera_client.h index 27f375e..b7e4738 100644 --- a/services/cameraservice/cameraoperator/client/include/dcamera_client.h +++ b/services/cameraservice/cameraoperator/client/include/dcamera_client.h @@ -55,7 +55,7 @@ private: int32_t StartCaptureInner(std::shared_ptr& info); int32_t StartPhotoOutput(std::shared_ptr& info); int32_t StartVideoOutput(); - int32_t SetQualityAndGpsLocation(const std::shared_ptr &cameraMetadata, + void SetQualityAndGpsLocation(const std::shared_ptr &cameraMetadata, std::shared_ptr &photoCaptureSettings); bool isInit_; diff --git a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp index 6fcfa6d..0a9f9f8 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp @@ -411,9 +411,7 @@ int32_t DCameraClient::StartPhotoOutput(std::shared_ptr& inf std::shared_ptr photoCaptureSettings = std::make_shared(); photoCaptureSettings->SetRotation(rotation); - if (SetQualityAndGpsLocation(cameraMetadata, photoCaptureSettings) != DCAMERA_OK) { - return DCAMERA_BAD_VALUE; - } + SetQualityAndGpsLocation(cameraMetadata, photoCaptureSettings); ret = ((sptr &)photoOutput_)->Capture(photoCaptureSettings); if (ret != DCAMERA_OK) { DHLOGE("DCameraClient::StartPhotoOutput %s photoOutput capture failed, ret: %d", @@ -423,16 +421,16 @@ int32_t DCameraClient::StartPhotoOutput(std::shared_ptr& inf return DCAMERA_OK; } -int32_t DCameraClient::SetQualityAndGpsLocation(const std::shared_ptr &cameraMetadata, +void DCameraClient::SetQualityAndGpsLocation(const std::shared_ptr &cameraMetadata, std::shared_ptr &photoCaptureSettings) { camera_metadata_item_t item; - ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_QUALITY, &item); + int32_t ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_QUALITY, &item); if (ret == CAM_META_SUCCESS) { DHLOGI("DCameraClient::SetQualityAndGpsLocation %s find camera quality item", GetAnonyString(cameraId_).c_str()); CameraStandard::PhotoCaptureSetting::QualityLevel quality = - static_cast(item.data.i8[0]); + static_cast(item.data.u8[0]); DHLOGI("DCameraClient::SetQualityAndGpsLocation %s photo capture settings set quality: %d", GetAnonyString(cameraId_).c_str(), quality); photoCaptureSettings->SetQuality(quality); @@ -444,14 +442,14 @@ int32_t DCameraClient::SetQualityAndGpsLocation(const std::shared_ptrSetGpsLocation(gpsCoordinates[0], gpsCoordinates[1]); } - return DCAMERA_OK; + return; } int32_t DCameraClient::StartVideoOutput() From 07458e936c1790d9db42702b4726d2b2296b8b9a Mon Sep 17 00:00:00 2001 From: chen0088 Date: Wed, 30 Mar 2022 09:58:40 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=85=A7=E7=89=87=E8=B4=A8=E9=87=8F=E5=92=8CGPS=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chen0088 --- .../cameraservice/cameraoperator/client/src/dcamera_client.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp index 0a9f9f8..7e6f4bd 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp @@ -441,7 +441,7 @@ void DCameraClient::SetQualityAndGpsLocation(const std::shared_ptr Date: Fri, 1 Apr 2022 15:41:49 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=85=A7=E7=89=87=E8=B4=A8=E9=87=8F=E5=92=8CGPS=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chen0088 --- .../cameraoperator/client/include/dcamera_client.h | 4 ++-- .../cameraoperator/client/src/dcamera_client.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/services/cameraservice/cameraoperator/client/include/dcamera_client.h b/services/cameraservice/cameraoperator/client/include/dcamera_client.h index b7e4738..f97d2ee 100644 --- a/services/cameraservice/cameraoperator/client/include/dcamera_client.h +++ b/services/cameraservice/cameraoperator/client/include/dcamera_client.h @@ -55,8 +55,8 @@ private: int32_t StartCaptureInner(std::shared_ptr& info); int32_t StartPhotoOutput(std::shared_ptr& info); int32_t StartVideoOutput(); - void SetQualityAndGpsLocation(const std::shared_ptr &cameraMetadata, - std::shared_ptr &photoCaptureSettings); + void SetQualityAndGpsLocation(const std::shared_ptr& cameraMetadata, + std::shared_ptr& photoCaptureSettings); 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 7e6f4bd..5f50dc9 100644 --- a/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp +++ b/services/cameraservice/cameraoperator/client/src/dcamera_client.cpp @@ -421,8 +421,8 @@ int32_t DCameraClient::StartPhotoOutput(std::shared_ptr& inf return DCAMERA_OK; } -void DCameraClient::SetQualityAndGpsLocation(const std::shared_ptr &cameraMetadata, - std::shared_ptr &photoCaptureSettings) +void DCameraClient::SetQualityAndGpsLocation(const std::shared_ptr& cameraMetadata, + std::shared_ptr& photoCaptureSettings) { camera_metadata_item_t item; int32_t ret = CameraStandard::FindCameraMetadataItem(cameraMetadata->get(), OHOS_JPEG_QUALITY, &item);