From 52f741cca5ebdb8bc246a2e9bc0967cf613dae0b Mon Sep 17 00:00:00 2001 From: zhanglei Date: Tue, 2 Sep 2025 00:26:20 -0700 Subject: [PATCH 1/2] add camera hdi xts Signed-off-by: zhanglei --- .../v1_3/src/camera_hdi_test_v1_3.cpp | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) diff --git a/hdf/camera/cameraMg/v1_3/src/camera_hdi_test_v1_3.cpp b/hdf/camera/cameraMg/v1_3/src/camera_hdi_test_v1_3.cpp index 9a90eabe..8d691485 100644 --- a/hdf/camera/cameraMg/v1_3/src/camera_hdi_test_v1_3.cpp +++ b/hdf/camera/cameraMg/v1_3/src/camera_hdi_test_v1_3.cpp @@ -24,6 +24,11 @@ constexpr uint32_t DATA_CAPACITY = 2000; constexpr uint32_t DATA_COUNT = 1; constexpr uint32_t FPS_COUNT = 2; constexpr uint32_t EXPOSURE_COUNT = 4; +constexpr uint32_t STEP_ONE = 1; +constexpr uint32_t STEP_TWO = 2; +constexpr uint32_t MODE_END = -1; +constexpr uint32_t TAG_END = -1; +constexpr uint32_t NORMAL_PHOTO = 1; int64_t OHOS::Camera::Test::StreamConsumer::g_timestamp[2] = {0}; void CameraHdiTestV1_3::SetUpTestCase(void) {} void CameraHdiTestV1_3::TearDownTestCase(void) {} @@ -57,6 +62,47 @@ bool g_IsTagValueExistsU8(std::shared_ptr ability, uint32_t tag, return false; } +bool ParseMetadataItem(int32_t* originInfo, uint32_t count) +{ + uint32_t i = 0; + uint32_t j = i + STEP_ONE; + bool flag1 = false; + bool flag2 = false; + while (j < count) { + if (originInfo[j] != MODE_END) { + j = j + STEP_TWO; + continue; + } + if (originInfo[j - 1] == TAG_END) { + if (originInfo[i] == NORMAL_PHOTO) { + for (uint32_t z = i + 1; z < j - 1; z++) { + if (originInfo[z] == OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY) { + std::cout<<"OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY is supported"<ability, nullptr); + common_metadata_header_t* data = cameraTest->ability->get(); + ASSERT_NE(data, nullptr); + camera_metadata_item_t entry; + cameraTest->rc = FindCameraMetadataItem(data, OHOS_ABILITY_PHOTO_QUALITY_PRIORITIZATION , &entry); + if (cameraTest->rc != CAM_META_SUCCESS || entry.count == 0) { + std::cout<<"OHOS_ABILITY_COLOR_RESERVATION_TYPES is not supported"<(OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY); + int ret = FindCameraMetadataItem(data, OHOS_CONTROL_PHOTO_QUALITY_PRIORITIZATION, &item); + if (ret == CAM_META_ITEM_NOT_FOUND) { + status = cameraTest->ability->addEntry(OHOS_CONTROL_PHOTO_QUALITY_PRIORITIZATION, + &metaPhotoQualityPrioritization, DATA_COUNT); + std::cout<<"add OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY to ability"<ability->updateEntry(OHOS_CONTROL_PHOTO_QUALITY_PRIORITIZATION, + &metaPhotoQualityPrioritization, DATA_COUNT); + std::cout<<"update OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY to ability"< meta = std::make_shared(ITEM_CAPACITY, DATA_CAPACITY); + std::vector setting; + uint8_t noneType = 0; + meta->addEntry(OHOS_CONTROL_PHOTO_QUALITY_PRIORITIZATION, &noneType, DATA_COUNT); + MetadataUtils::ConvertMetadataToVec(meta, setting); + cameraTest->rc = (OHOS::HDI::Camera::V1_0::CamRetCode)cameraTest->cameraDeviceV1_3->UpdateSettings(setting); + EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc); + std::cout<<"update settings success"<ability, nullptr); + common_metadata_header_t* data = cameraTest->ability->get(); + ASSERT_NE(data, nullptr); + camera_metadata_item_t entry; + cameraTest->rc = FindCameraMetadataItem(data, OHOS_ABILITY_PHOTO_QUALITY_PRIORITIZATION , &entry); + if (cameraTest->rc != CAM_META_SUCCESS || entry.count == 0) { + std::cout<<"OHOS_ABILITY_COLOR_RESERVATION_TYPES is not supported"<(OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_SPEED); + int ret = FindCameraMetadataItem(data, OHOS_CONTROL_PHOTO_QUALITY_PRIORITIZATION, &item); + if (ret == CAM_META_ITEM_NOT_FOUND) { + status = cameraTest->ability->addEntry(OHOS_CONTROL_PHOTO_QUALITY_PRIORITIZATION, + &metaPhotoQualityPrioritization, DATA_COUNT); + std::cout<<"add OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_SPEED to ability"<ability->updateEntry(OHOS_CONTROL_PHOTO_QUALITY_PRIORITIZATION, + &metaPhotoQualityPrioritization, DATA_COUNT); + std::cout<<"update OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_SPEED to ability"< meta = std::make_shared(ITEM_CAPACITY, DATA_CAPACITY); + std::vector setting; + uint8_t noneType = 0; + meta->addEntry(OHOS_CONTROL_PHOTO_QUALITY_PRIORITIZATION, &noneType, DATA_COUNT); + MetadataUtils::ConvertMetadataToVec(meta, setting); + cameraTest->rc = (OHOS::HDI::Camera::V1_0::CamRetCode)cameraTest->cameraDeviceV1_3->UpdateSettings(setting); + EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc); + std::cout<<"second: update settings success"< Date: Tue, 2 Sep 2025 20:32:40 -0700 Subject: [PATCH 2/2] modify Signed-off-by: zhanglei --- .../v1_3/src/camera_hdi_test_v1_3.cpp | 59 +++++++++++-------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/hdf/camera/cameraMg/v1_3/src/camera_hdi_test_v1_3.cpp b/hdf/camera/cameraMg/v1_3/src/camera_hdi_test_v1_3.cpp index 8d691485..b2acf298 100644 --- a/hdf/camera/cameraMg/v1_3/src/camera_hdi_test_v1_3.cpp +++ b/hdf/camera/cameraMg/v1_3/src/camera_hdi_test_v1_3.cpp @@ -62,12 +62,34 @@ bool g_IsTagValueExistsU8(std::shared_ptr ability, uint32_t tag, return false; } +bool IsQualityPrioritizationTypeSupported(int32_t* originInfo, uint32_t start, uint32_t end) +{ + bool flag1 = false; + bool flag2 = false; + for (uint32_t i = start; i < end; i++) { + if (originInfo[i] == OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY) { + std::cout<<"OHOS_CAMERA_PHOTO_QUALITY_PRIORITIZATION_HIGH_QUALITY is supported"<ability->get(); ASSERT_NE(data, nullptr); camera_metadata_item_t entry; - cameraTest->rc = FindCameraMetadataItem(data, OHOS_ABILITY_PHOTO_QUALITY_PRIORITIZATION , &entry); + cameraTest->rc = FindCameraMetadataItem(data, OHOS_ABILITY_PHOTO_QUALITY_PRIORITIZATION, &entry); if (cameraTest->rc != CAM_META_SUCCESS || entry.count == 0) { - std::cout<<"OHOS_ABILITY_COLOR_RESERVATION_TYPES is not supported"<ability->get(); ASSERT_NE(data, nullptr); camera_metadata_item_t entry; - cameraTest->rc = FindCameraMetadataItem(data, OHOS_ABILITY_PHOTO_QUALITY_PRIORITIZATION , &entry); + cameraTest->rc = FindCameraMetadataItem(data, OHOS_ABILITY_PHOTO_QUALITY_PRIORITIZATION, &entry); if (cameraTest->rc != CAM_META_SUCCESS || entry.count == 0) { - std::cout<<"OHOS_ABILITY_COLOR_RESERVATION_TYPES is not supported"<rc = (OHOS::HDI::Camera::V1_0::CamRetCode)cameraTest->cameraDeviceV1_3->UpdateSettings(setting); EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc); - std::cout<<"second: update settings success"<