1094332d3Sopenharmony_ci/* 2094332d3Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4094332d3Sopenharmony_ci * you may not use this file expected in compliance with the License. 5094332d3Sopenharmony_ci * You may obtain a copy of the License at 6094332d3Sopenharmony_ci * 7094332d3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8094332d3Sopenharmony_ci * 9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and 13094332d3Sopenharmony_ci * limitations under the License. 14094332d3Sopenharmony_ci */ 15094332d3Sopenharmony_ci 16094332d3Sopenharmony_ci#include "camera_3a_test.h" 17094332d3Sopenharmony_ci 18094332d3Sopenharmony_ciconstexpr int ITEM_CAPACITY_SIZE = 100; 19094332d3Sopenharmony_ciconstexpr int DATA_CAPACITY_SIZE = 2000; 20094332d3Sopenharmony_ci 21094332d3Sopenharmony_civoid UtestCamera3ATest::SetUpTestCase(void) 22094332d3Sopenharmony_ci{} 23094332d3Sopenharmony_civoid UtestCamera3ATest::TearDownTestCase(void) 24094332d3Sopenharmony_ci{} 25094332d3Sopenharmony_civoid UtestCamera3ATest::SetUp(void) 26094332d3Sopenharmony_ci{ 27094332d3Sopenharmony_ci if (cameraBase == nullptr) 28094332d3Sopenharmony_ci cameraBase = std::make_shared<TestCameraBase>(); 29094332d3Sopenharmony_ci cameraBase->FBInit(); 30094332d3Sopenharmony_ci cameraBase->Init(); 31094332d3Sopenharmony_ci} 32094332d3Sopenharmony_civoid UtestCamera3ATest::TearDown(void) 33094332d3Sopenharmony_ci{ 34094332d3Sopenharmony_ci cameraBase->Close(); 35094332d3Sopenharmony_ci} 36094332d3Sopenharmony_ci 37094332d3Sopenharmony_ci/** 38094332d3Sopenharmony_ci * @tc.name: updateSettings AE 39094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, success. 40094332d3Sopenharmony_ci * @tc.level: Level0 41094332d3Sopenharmony_ci * @tc.size: MediumTest 42094332d3Sopenharmony_ci * @tc.type: Function 43094332d3Sopenharmony_ci */ 44094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0001) 45094332d3Sopenharmony_ci{ 46094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 47094332d3Sopenharmony_ci std::cout << "then UpdateSettings OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, success." << std::endl; 48094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 49094332d3Sopenharmony_ci // Get the stream manager 50094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 51094332d3Sopenharmony_ci // Configure preview stream information 52094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW}; 53094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 54094332d3Sopenharmony_ci // Start capture 55094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 56094332d3Sopenharmony_ci // Issue 3A parameters 57094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 58094332d3Sopenharmony_ci int32_t expo = 0xa0; 59094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1); 60094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 61094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, exposure for 10s." << std::endl; 62094332d3Sopenharmony_ci sleep(3); // update settings, exposure for 3s 63094332d3Sopenharmony_ci 64094332d3Sopenharmony_ci // Post action of stream operation 65094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 66094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 67094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 68094332d3Sopenharmony_ci} 69094332d3Sopenharmony_ci 70094332d3Sopenharmony_ci/** 71094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 72094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_AUTO, success. 73094332d3Sopenharmony_ci * @tc.level: Level1 74094332d3Sopenharmony_ci * @tc.size: MediumTest 75094332d3Sopenharmony_ci * @tc.type: Function 76094332d3Sopenharmony_ci */ 77094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0002) 78094332d3Sopenharmony_ci{ 79094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 80094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_AUTO, success." << std::endl; 81094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 82094332d3Sopenharmony_ci // Get the stream manager 83094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 84094332d3Sopenharmony_ci // Configure stream information 85094332d3Sopenharmony_ci // start stream 86094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 87094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 88094332d3Sopenharmony_ci // Get preview 89094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 90094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 91094332d3Sopenharmony_ci 92094332d3Sopenharmony_ci // Issue 3A parameters 93094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 94094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_AUTO; 95094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 96094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_AUTO." << std::endl; 97094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 98094332d3Sopenharmony_ci sleep(2); // update settings, AWB mode auto for 2s. 99094332d3Sopenharmony_ci 100094332d3Sopenharmony_ci // release stream 101094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 102094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 103094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 104094332d3Sopenharmony_ci} 105094332d3Sopenharmony_ci 106094332d3Sopenharmony_ci/** 107094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 108094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_INCANDESCENT, success. 109094332d3Sopenharmony_ci * @tc.level: Level1 110094332d3Sopenharmony_ci * @tc.size: MediumTest 111094332d3Sopenharmony_ci * @tc.type: Function 112094332d3Sopenharmony_ci */ 113094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0003) 114094332d3Sopenharmony_ci{ 115094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 116094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_INCANDESCENT, success." << std::endl; 117094332d3Sopenharmony_ci // Create and get streamOperator information 118094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 119094332d3Sopenharmony_ci // start stream 120094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW}; 121094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 122094332d3Sopenharmony_ci // Start capture 123094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 124094332d3Sopenharmony_ci 125094332d3Sopenharmony_ci // Issue 3A parameters 126094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 127094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_INCANDESCENT; 128094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 129094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings,"; 130094332d3Sopenharmony_ci std::cout << "awb mode: OHOS_CAMERA_AWB_MODE_INCANDESCENT" << std::endl; 131094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 132094332d3Sopenharmony_ci 133094332d3Sopenharmony_ci // Post action of stream operation 134094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 135094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 136094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 137094332d3Sopenharmony_ci} 138094332d3Sopenharmony_ci 139094332d3Sopenharmony_ci/** 140094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 141094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_FLUORESCENT, success. 142094332d3Sopenharmony_ci * @tc.level: Level1 143094332d3Sopenharmony_ci * @tc.size: MediumTest 144094332d3Sopenharmony_ci * @tc.type: Function 145094332d3Sopenharmony_ci */ 146094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0004) // 3A mode white balance blue scene 147094332d3Sopenharmony_ci{ 148094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 149094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_FLUORESCENT, success." << std::endl; 150094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 151094332d3Sopenharmony_ci // Get the stream manager 152094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 153094332d3Sopenharmony_ci // Configure stream information 154094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 155094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 156094332d3Sopenharmony_ci // Get preview 157094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 158094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 159094332d3Sopenharmony_ci 160094332d3Sopenharmony_ci // Issue 3A parameters 161094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 162094332d3Sopenharmony_ci uint8_t awbMode = AWB_MODE_WARM_FLUORESCENT; 163094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 164094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_AUTO." << std::endl; 165094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 166094332d3Sopenharmony_ci sleep(2); // update settings, AWB mode auto for 2s. 167094332d3Sopenharmony_ci 168094332d3Sopenharmony_ci // release stream 169094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 170094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 171094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 172094332d3Sopenharmony_ci} 173094332d3Sopenharmony_ci 174094332d3Sopenharmony_ci/** 175094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 176094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, success. 177094332d3Sopenharmony_ci * @tc.level: Level1 178094332d3Sopenharmony_ci * @tc.size: MediumTest 179094332d3Sopenharmony_ci * @tc.type: Function 180094332d3Sopenharmony_ci */ 181094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0005) 182094332d3Sopenharmony_ci{ 183094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 184094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, "; 185094332d3Sopenharmony_ci std::cout << "success." << std::endl; 186094332d3Sopenharmony_ci // Create and get streamOperator information 187094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 188094332d3Sopenharmony_ci // Create data stream 189094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW}; 190094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 191094332d3Sopenharmony_ci // Start capture 192094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 193094332d3Sopenharmony_ci 194094332d3Sopenharmony_ci // Issue 3A parameters 195094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 196094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT; 197094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 198094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, "; 199094332d3Sopenharmony_ci std::cout << "awb mode: OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT" << std::endl; 200094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 201094332d3Sopenharmony_ci 202094332d3Sopenharmony_ci // Post action of stream operation 203094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 204094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 205094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 206094332d3Sopenharmony_ci} 207094332d3Sopenharmony_ci 208094332d3Sopenharmony_ci/** 209094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 210094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_DAYLIGHT, success. 211094332d3Sopenharmony_ci * @tc.level: Level1 212094332d3Sopenharmony_ci * @tc.size: MediumTest 213094332d3Sopenharmony_ci * @tc.type: Function 214094332d3Sopenharmony_ci */ 215094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0006) 216094332d3Sopenharmony_ci{ 217094332d3Sopenharmony_ci std::cout << "==========[test log] Preview, "; 218094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_DAYLIGHT, success." << std::endl; 219094332d3Sopenharmony_ci // Create and get streamOperator information 220094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 221094332d3Sopenharmony_ci // Create data stream 222094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW}; 223094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 224094332d3Sopenharmony_ci // Start capture 225094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 226094332d3Sopenharmony_ci 227094332d3Sopenharmony_ci // Issue 3A parameters 228094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 229094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_DAYLIGHT; 230094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 231094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_DAYLIGHT" << std::endl; 232094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 233094332d3Sopenharmony_ci sleep(3); // update settings, AWB mode daylight for 3s. 234094332d3Sopenharmony_ci 235094332d3Sopenharmony_ci // Post action of stream operation 236094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 237094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 238094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 239094332d3Sopenharmony_ci} 240094332d3Sopenharmony_ci 241094332d3Sopenharmony_ci/** 242094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 243094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT, success. 244094332d3Sopenharmony_ci * @tc.level: Level1 245094332d3Sopenharmony_ci * @tc.size: MediumTest 246094332d3Sopenharmony_ci * @tc.type: Function 247094332d3Sopenharmony_ci */ 248094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0007) // 3A mode reset 249094332d3Sopenharmony_ci{ 250094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 251094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT,"; 252094332d3Sopenharmony_ci std::cout << "success." << std::endl; 253094332d3Sopenharmony_ci // Create and get streamOperator information 254094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 255094332d3Sopenharmony_ci // Create data stream 256094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW}; 257094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 258094332d3Sopenharmony_ci // Start capture 259094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 260094332d3Sopenharmony_ci 261094332d3Sopenharmony_ci // Issue 3A parameters 262094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 263094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT; 264094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 265094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, "; 266094332d3Sopenharmony_ci std::cout << "awb mode: OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT" << std::endl; 267094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 268094332d3Sopenharmony_ci 269094332d3Sopenharmony_ci // Post action of stream operation 270094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 271094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 272094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 273094332d3Sopenharmony_ci} 274094332d3Sopenharmony_ci 275094332d3Sopenharmony_ci/** 276094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 277094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, success. 278094332d3Sopenharmony_ci * @tc.level: Level1 279094332d3Sopenharmony_ci * @tc.size: MediumTest 280094332d3Sopenharmony_ci * @tc.type: Function 281094332d3Sopenharmony_ci */ 282094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0008) 283094332d3Sopenharmony_ci{ 284094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 285094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_TWILIGHT, "; 286094332d3Sopenharmony_ci std::cout << "success." << std::endl; 287094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 288094332d3Sopenharmony_ci // Get the stream manager 289094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 290094332d3Sopenharmony_ci // Configure stream information 291094332d3Sopenharmony_ci // start stream 292094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 293094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 294094332d3Sopenharmony_ci // Get preview 295094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 296094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 297094332d3Sopenharmony_ci 298094332d3Sopenharmony_ci // Issue 3A parameters 299094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 300094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_TWILIGHT; 301094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 302094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_TWILIGHT" << std::endl; 303094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 304094332d3Sopenharmony_ci 305094332d3Sopenharmony_ci // release stream 306094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 307094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 308094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 309094332d3Sopenharmony_ci} 310094332d3Sopenharmony_ci 311094332d3Sopenharmony_ci/** 312094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 313094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, success. 314094332d3Sopenharmony_ci * @tc.level: Level1 315094332d3Sopenharmony_ci * @tc.size: MediumTest 316094332d3Sopenharmony_ci * @tc.type: Function 317094332d3Sopenharmony_ci */ 318094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0009) // 3A mode white balance yellow scene 319094332d3Sopenharmony_ci{ 320094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 321094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_SHADE, success." << std::endl; 322094332d3Sopenharmony_ci // Create and get streamOperator information 323094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 324094332d3Sopenharmony_ci // Create data stream 325094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW}; 326094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 327094332d3Sopenharmony_ci // Start capture 328094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 329094332d3Sopenharmony_ci 330094332d3Sopenharmony_ci // Issue 3A parameters 331094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 332094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_SHADE; 333094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 334094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_SHADE" << std::endl; 335094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 336094332d3Sopenharmony_ci 337094332d3Sopenharmony_ci // Post action of stream operation 338094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 339094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 340094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 341094332d3Sopenharmony_ci} 342094332d3Sopenharmony_ci 343094332d3Sopenharmony_ci/** 344094332d3Sopenharmony_ci * @tc.name: updateSettings AWB 345094332d3Sopenharmony_ci * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_OFF, success. 346094332d3Sopenharmony_ci * @tc.level: Level1 347094332d3Sopenharmony_ci * @tc.size: MediumTest 348094332d3Sopenharmony_ci * @tc.type: Function 349094332d3Sopenharmony_ci */ 350094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0010) 351094332d3Sopenharmony_ci{ 352094332d3Sopenharmony_ci std::cout << "==========[test log] Preview,"; 353094332d3Sopenharmony_ci std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_OFF, success." << std::endl; 354094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 355094332d3Sopenharmony_ci // Get the stream manager 356094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 357094332d3Sopenharmony_ci // start stream 358094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 359094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 360094332d3Sopenharmony_ci // Get preview 361094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 362094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 363094332d3Sopenharmony_ci 364094332d3Sopenharmony_ci // Issue 3A parameters 365094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 366094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_OFF; 367094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 368094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_OFF" << std::endl; 369094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 370094332d3Sopenharmony_ci 371094332d3Sopenharmony_ci // release stream 372094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 373094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 374094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 375094332d3Sopenharmony_ci} 376094332d3Sopenharmony_ci 377094332d3Sopenharmony_ci/** 378094332d3Sopenharmony_ci * @tc.name: updateSettings reset 379094332d3Sopenharmony_ci * @tc.desc: Preview set 3A, then close device, and preview, 3A is reset. 380094332d3Sopenharmony_ci * @tc.level: Level1 381094332d3Sopenharmony_ci * @tc.size: MediumTest 382094332d3Sopenharmony_ci * @tc.type: Function 383094332d3Sopenharmony_ci */ 384094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0030) 385094332d3Sopenharmony_ci{ 386094332d3Sopenharmony_ci std::cout << "==========[test log] Preview set 3A, then close device, and preview, 3A is reset." << std::endl; 387094332d3Sopenharmony_ci std::cout << "==========[test log] The 1st time set 3A." << std::endl; 388094332d3Sopenharmony_ci // Create and get streamOperator information 389094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 390094332d3Sopenharmony_ci // Create data stream 391094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW}; 392094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 393094332d3Sopenharmony_ci // Start capture 394094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 395094332d3Sopenharmony_ci // Issue 3A parameters 396094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 397094332d3Sopenharmony_ci int32_t expo = 0xa0; 398094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1); 399094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 400094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, exposure for 3s." << std::endl; 401094332d3Sopenharmony_ci sleep(3); // update settings, exposure for 3s 402094332d3Sopenharmony_ci // Post action of stream operation 403094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 404094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 405094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 406094332d3Sopenharmony_ci 407094332d3Sopenharmony_ci // Turn off the device 408094332d3Sopenharmony_ci cameraBase->Close(); 409094332d3Sopenharmony_ci std::cout << "cameraDevice->Close" << std::endl; 410094332d3Sopenharmony_ci std::cout << "==========[test log] Close device, and preview, 3A is reset." << std::endl; 411094332d3Sopenharmony_ci cameraBase->Init(); 412094332d3Sopenharmony_ci // Get the stream manager 413094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 414094332d3Sopenharmony_ci // start stream 415094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW}; 416094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 417094332d3Sopenharmony_ci // Get preview 418094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 419094332d3Sopenharmony_ci // release stream 420094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 421094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 422094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 423094332d3Sopenharmony_ci} 424094332d3Sopenharmony_ci 425094332d3Sopenharmony_ci/** 426094332d3Sopenharmony_ci * @tc.name: updateSettings different 3A params 427094332d3Sopenharmony_ci * @tc.desc: Preview, updatesetting different 3A params together. 428094332d3Sopenharmony_ci * @tc.level: Level1 429094332d3Sopenharmony_ci * @tc.size: MediumTest 430094332d3Sopenharmony_ci * @tc.type: Function 431094332d3Sopenharmony_ci */ 432094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0031) // 3A mode white balance green scene 433094332d3Sopenharmony_ci{ 434094332d3Sopenharmony_ci std::cout << "==========[test log] Preview, updatesetting different 3A params together." << std::endl; 435094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 436094332d3Sopenharmony_ci // Get the stream manager 437094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 438094332d3Sopenharmony_ci // start stream 439094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 440094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 441094332d3Sopenharmony_ci // Get preview 442094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 443094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 444094332d3Sopenharmony_ci // Issue 3A parameters 445094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 446094332d3Sopenharmony_ci int32_t expo = 0xa0; 447094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1); 448094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_TWILIGHT; 449094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 450094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 451094332d3Sopenharmony_ci std::cout << "==========[test log] UpdateSettings, exposure for 10s." << std::endl; 452094332d3Sopenharmony_ci sleep(3); // update settings, exposure for 3s 453094332d3Sopenharmony_ci // release stream 454094332d3Sopenharmony_ci cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 455094332d3Sopenharmony_ci cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 456094332d3Sopenharmony_ci cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 457094332d3Sopenharmony_ci} 458094332d3Sopenharmony_ci 459094332d3Sopenharmony_ci/** 460094332d3Sopenharmony_ci * @tc.name: updateSettings AE 461094332d3Sopenharmony_ci * @tc.desc: UpdateSettings-OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, success. 462094332d3Sopenharmony_ci * @tc.level: Level1 463094332d3Sopenharmony_ci * @tc.size: MediumTest 464094332d3Sopenharmony_ci * @tc.type: Function 465094332d3Sopenharmony_ci */ 466094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0040) 467094332d3Sopenharmony_ci{ 468094332d3Sopenharmony_ci std::cout << "UpdateSettings-OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, success." << std::endl; 469094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 470094332d3Sopenharmony_ci // Get the stream manager 471094332d3Sopenharmony_ci cameraBase->AchieveStreamOperator(); 472094332d3Sopenharmony_ci // start stream 473094332d3Sopenharmony_ci cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 474094332d3Sopenharmony_ci cameraBase->StartStream(cameraBase->intents); 475094332d3Sopenharmony_ci // Get preview 476094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 477094332d3Sopenharmony_ci cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 478094332d3Sopenharmony_ci 479094332d3Sopenharmony_ci // Issue 3A parameters 480094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 481094332d3Sopenharmony_ci int32_t expo = 0xa0; 482094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1); 483094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 484094332d3Sopenharmony_ci sleep(3); // waiting resource release for 3s. 485094332d3Sopenharmony_ci} 486094332d3Sopenharmony_ci 487094332d3Sopenharmony_ci/** 488094332d3Sopenharmony_ci * @tc.name: updateSettings AWB without preview 489094332d3Sopenharmony_ci * @tc.desc: UpdateSettings-OHOS_CAMERA_AWB_MODE, without preview, success. 490094332d3Sopenharmony_ci * @tc.level: Level1 491094332d3Sopenharmony_ci * @tc.size: MediumTest 492094332d3Sopenharmony_ci * @tc.type: Function 493094332d3Sopenharmony_ci */ 494094332d3Sopenharmony_ciTEST_F(UtestCamera3ATest, camera_3a_0041) 495094332d3Sopenharmony_ci{ 496094332d3Sopenharmony_ci std::cout << "UpdateSettings-OHOS_CAMERA_AWB_MODE, success." << std::endl; 497094332d3Sopenharmony_ci 498094332d3Sopenharmony_ci // Issue 3A parameters 499094332d3Sopenharmony_ci std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 500094332d3Sopenharmony_ci uint8_t awbMode = OHOS_CAMERA_AWB_MODE_AUTO; 501094332d3Sopenharmony_ci meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 502094332d3Sopenharmony_ci cameraBase->cameraDevice->UpdateSettings(meta); 503094332d3Sopenharmony_ci}