mirror of
https://github.com/openharmony/distributed_camera.git
synced 2026-07-21 04:05:22 -04:00
@@ -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<DCameraCaptureInfo>& inf
|
||||
std::shared_ptr<CameraStandard::PhotoCaptureSetting> photoCaptureSettings =
|
||||
std::make_shared<CameraStandard::PhotoCaptureSetting>();
|
||||
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<CameraStandard::PhotoCaptureSetting::QualityLevel>(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<CameraStandard::PhotoOutput> &)photoOutput_)->Capture(photoCaptureSettings);
|
||||
if (ret != DCAMERA_OK) {
|
||||
DHLOGE("DCameraClient::StartPhotoOutput %s photoOutput capture failed, ret: %d",
|
||||
|
||||
Reference in New Issue
Block a user