1/* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file expected in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include "camera_3a_test.h" 17 18constexpr int ITEM_CAPACITY_SIZE = 100; 19constexpr int DATA_CAPACITY_SIZE = 2000; 20 21void UtestCamera3ATest::SetUpTestCase(void) 22{} 23void UtestCamera3ATest::TearDownTestCase(void) 24{} 25void UtestCamera3ATest::SetUp(void) 26{ 27 if (cameraBase == nullptr) 28 cameraBase = std::make_shared<TestCameraBase>(); 29 cameraBase->FBInit(); 30 cameraBase->Init(); 31} 32void UtestCamera3ATest::TearDown(void) 33{ 34 cameraBase->Close(); 35} 36 37/** 38 * @tc.name: updateSettings AE 39 * @tc.desc: Preview,updateSettings OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, success. 40 * @tc.level: Level0 41 * @tc.size: MediumTest 42 * @tc.type: Function 43 */ 44TEST_F(UtestCamera3ATest, camera_3a_0001) 45{ 46 std::cout << "==========[test log] Preview,"; 47 std::cout << "then UpdateSettings OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, success." << std::endl; 48 EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 49 // Get the stream manager 50 cameraBase->AchieveStreamOperator(); 51 // Configure preview stream information 52 cameraBase->intents = {PREVIEW}; 53 cameraBase->StartStream(cameraBase->intents); 54 // Start capture 55 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 56 // Issue 3A parameters 57 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 58 int32_t expo = 0xa0; 59 meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1); 60 cameraBase->cameraDevice->UpdateSettings(meta); 61 std::cout << "==========[test log] UpdateSettings, exposure for 10s." << std::endl; 62 sleep(3); // update settings, exposure for 3s 63 64 // Post action of stream operation 65 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 66 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 67 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 68} 69 70/** 71 * @tc.name: updateSettings AWB 72 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_AUTO, success. 73 * @tc.level: Level1 74 * @tc.size: MediumTest 75 * @tc.type: Function 76 */ 77TEST_F(UtestCamera3ATest, camera_3a_0002) 78{ 79 std::cout << "==========[test log] Preview,"; 80 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_AUTO, success." << std::endl; 81 EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 82 // Get the stream manager 83 cameraBase->AchieveStreamOperator(); 84 // Configure stream information 85 // start stream 86 cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 87 cameraBase->StartStream(cameraBase->intents); 88 // Get preview 89 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 90 cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 91 92 // Issue 3A parameters 93 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 94 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_AUTO; 95 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 96 std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_AUTO." << std::endl; 97 cameraBase->cameraDevice->UpdateSettings(meta); 98 sleep(2); // update settings, AWB mode auto for 2s. 99 100 // release stream 101 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 102 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 103 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 104} 105 106/** 107 * @tc.name: updateSettings AWB 108 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_INCANDESCENT, success. 109 * @tc.level: Level1 110 * @tc.size: MediumTest 111 * @tc.type: Function 112 */ 113TEST_F(UtestCamera3ATest, camera_3a_0003) 114{ 115 std::cout << "==========[test log] Preview,"; 116 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_INCANDESCENT, success." << std::endl; 117 // Create and get streamOperator information 118 cameraBase->AchieveStreamOperator(); 119 // start stream 120 cameraBase->intents = {PREVIEW}; 121 cameraBase->StartStream(cameraBase->intents); 122 // Start capture 123 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 124 125 // Issue 3A parameters 126 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 127 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_INCANDESCENT; 128 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 129 std::cout << "==========[test log] UpdateSettings,"; 130 std::cout << "awb mode: OHOS_CAMERA_AWB_MODE_INCANDESCENT" << std::endl; 131 cameraBase->cameraDevice->UpdateSettings(meta); 132 133 // Post action of stream operation 134 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 135 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 136 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 137} 138 139/** 140 * @tc.name: updateSettings AWB 141 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_FLUORESCENT, success. 142 * @tc.level: Level1 143 * @tc.size: MediumTest 144 * @tc.type: Function 145 */ 146TEST_F(UtestCamera3ATest, camera_3a_0004) // 3A mode white balance blue scene 147{ 148 std::cout << "==========[test log] Preview,"; 149 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_FLUORESCENT, success." << std::endl; 150 EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 151 // Get the stream manager 152 cameraBase->AchieveStreamOperator(); 153 // Configure stream information 154 cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 155 cameraBase->StartStream(cameraBase->intents); 156 // Get preview 157 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 158 cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 159 160 // Issue 3A parameters 161 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 162 uint8_t awbMode = AWB_MODE_WARM_FLUORESCENT; 163 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 164 std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_AUTO." << std::endl; 165 cameraBase->cameraDevice->UpdateSettings(meta); 166 sleep(2); // update settings, AWB mode auto for 2s. 167 168 // release stream 169 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 170 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 171 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 172} 173 174/** 175 * @tc.name: updateSettings AWB 176 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, success. 177 * @tc.level: Level1 178 * @tc.size: MediumTest 179 * @tc.type: Function 180 */ 181TEST_F(UtestCamera3ATest, camera_3a_0005) 182{ 183 std::cout << "==========[test log] Preview,"; 184 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, "; 185 std::cout << "success." << std::endl; 186 // Create and get streamOperator information 187 cameraBase->AchieveStreamOperator(); 188 // Create data stream 189 cameraBase->intents = {PREVIEW}; 190 cameraBase->StartStream(cameraBase->intents); 191 // Start capture 192 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 193 194 // Issue 3A parameters 195 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 196 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT; 197 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 198 std::cout << "==========[test log] UpdateSettings, "; 199 std::cout << "awb mode: OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT" << std::endl; 200 cameraBase->cameraDevice->UpdateSettings(meta); 201 202 // Post action of stream operation 203 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 204 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 205 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 206} 207 208/** 209 * @tc.name: updateSettings AWB 210 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_DAYLIGHT, success. 211 * @tc.level: Level1 212 * @tc.size: MediumTest 213 * @tc.type: Function 214 */ 215TEST_F(UtestCamera3ATest, camera_3a_0006) 216{ 217 std::cout << "==========[test log] Preview, "; 218 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_DAYLIGHT, success." << std::endl; 219 // Create and get streamOperator information 220 cameraBase->AchieveStreamOperator(); 221 // Create data stream 222 cameraBase->intents = {PREVIEW}; 223 cameraBase->StartStream(cameraBase->intents); 224 // Start capture 225 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 226 227 // Issue 3A parameters 228 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 229 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_DAYLIGHT; 230 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 231 std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_DAYLIGHT" << std::endl; 232 cameraBase->cameraDevice->UpdateSettings(meta); 233 sleep(3); // update settings, AWB mode daylight for 3s. 234 235 // Post action of stream operation 236 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 237 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 238 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 239} 240 241/** 242 * @tc.name: updateSettings AWB 243 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT, success. 244 * @tc.level: Level1 245 * @tc.size: MediumTest 246 * @tc.type: Function 247 */ 248TEST_F(UtestCamera3ATest, camera_3a_0007) // 3A mode reset 249{ 250 std::cout << "==========[test log] Preview,"; 251 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT,"; 252 std::cout << "success." << std::endl; 253 // Create and get streamOperator information 254 cameraBase->AchieveStreamOperator(); 255 // Create data stream 256 cameraBase->intents = {PREVIEW}; 257 cameraBase->StartStream(cameraBase->intents); 258 // Start capture 259 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 260 261 // Issue 3A parameters 262 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 263 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT; 264 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 265 std::cout << "==========[test log] UpdateSettings, "; 266 std::cout << "awb mode: OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT" << std::endl; 267 cameraBase->cameraDevice->UpdateSettings(meta); 268 269 // Post action of stream operation 270 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 271 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 272 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 273} 274 275/** 276 * @tc.name: updateSettings AWB 277 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, success. 278 * @tc.level: Level1 279 * @tc.size: MediumTest 280 * @tc.type: Function 281 */ 282TEST_F(UtestCamera3ATest, camera_3a_0008) 283{ 284 std::cout << "==========[test log] Preview,"; 285 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_TWILIGHT, "; 286 std::cout << "success." << std::endl; 287 EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 288 // Get the stream manager 289 cameraBase->AchieveStreamOperator(); 290 // Configure stream information 291 // start stream 292 cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 293 cameraBase->StartStream(cameraBase->intents); 294 // Get preview 295 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 296 cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 297 298 // Issue 3A parameters 299 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 300 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_TWILIGHT; 301 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 302 std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_TWILIGHT" << std::endl; 303 cameraBase->cameraDevice->UpdateSettings(meta); 304 305 // release stream 306 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 307 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 308 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 309} 310 311/** 312 * @tc.name: updateSettings AWB 313 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT, success. 314 * @tc.level: Level1 315 * @tc.size: MediumTest 316 * @tc.type: Function 317 */ 318TEST_F(UtestCamera3ATest, camera_3a_0009) // 3A mode white balance yellow scene 319{ 320 std::cout << "==========[test log] Preview,"; 321 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_SHADE, success." << std::endl; 322 // Create and get streamOperator information 323 cameraBase->AchieveStreamOperator(); 324 // Create data stream 325 cameraBase->intents = {PREVIEW}; 326 cameraBase->StartStream(cameraBase->intents); 327 // Start capture 328 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 329 330 // Issue 3A parameters 331 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 332 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_SHADE; 333 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 334 std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_SHADE" << std::endl; 335 cameraBase->cameraDevice->UpdateSettings(meta); 336 337 // Post action of stream operation 338 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 339 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 340 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 341} 342 343/** 344 * @tc.name: updateSettings AWB 345 * @tc.desc: Preview,updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_OFF, success. 346 * @tc.level: Level1 347 * @tc.size: MediumTest 348 * @tc.type: Function 349 */ 350TEST_F(UtestCamera3ATest, camera_3a_0010) 351{ 352 std::cout << "==========[test log] Preview,"; 353 std::cout << "updateSettings OHOS_CAMERA_AWB_MODE-OHOS_CAMERA_AWB_MODE_OFF, success." << std::endl; 354 EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 355 // Get the stream manager 356 cameraBase->AchieveStreamOperator(); 357 // start stream 358 cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 359 cameraBase->StartStream(cameraBase->intents); 360 // Get preview 361 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 362 cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 363 364 // Issue 3A parameters 365 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 366 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_OFF; 367 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 368 std::cout << "==========[test log] UpdateSettings, awb mode: OHOS_CAMERA_AWB_MODE_OFF" << std::endl; 369 cameraBase->cameraDevice->UpdateSettings(meta); 370 371 // release stream 372 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 373 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 374 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 375} 376 377/** 378 * @tc.name: updateSettings reset 379 * @tc.desc: Preview set 3A, then close device, and preview, 3A is reset. 380 * @tc.level: Level1 381 * @tc.size: MediumTest 382 * @tc.type: Function 383 */ 384TEST_F(UtestCamera3ATest, camera_3a_0030) 385{ 386 std::cout << "==========[test log] Preview set 3A, then close device, and preview, 3A is reset." << std::endl; 387 std::cout << "==========[test log] The 1st time set 3A." << std::endl; 388 // Create and get streamOperator information 389 cameraBase->AchieveStreamOperator(); 390 // Create data stream 391 cameraBase->intents = {PREVIEW}; 392 cameraBase->StartStream(cameraBase->intents); 393 // Start capture 394 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 395 // Issue 3A parameters 396 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 397 int32_t expo = 0xa0; 398 meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1); 399 cameraBase->cameraDevice->UpdateSettings(meta); 400 std::cout << "==========[test log] UpdateSettings, exposure for 3s." << std::endl; 401 sleep(3); // update settings, exposure for 3s 402 // Post action of stream operation 403 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 404 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 405 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 406 407 // Turn off the device 408 cameraBase->Close(); 409 std::cout << "cameraDevice->Close" << std::endl; 410 std::cout << "==========[test log] Close device, and preview, 3A is reset." << std::endl; 411 cameraBase->Init(); 412 // Get the stream manager 413 cameraBase->AchieveStreamOperator(); 414 // start stream 415 cameraBase->intents = {PREVIEW}; 416 cameraBase->StartStream(cameraBase->intents); 417 // Get preview 418 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 419 // release stream 420 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW}; 421 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW}; 422 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 423} 424 425/** 426 * @tc.name: updateSettings different 3A params 427 * @tc.desc: Preview, updatesetting different 3A params together. 428 * @tc.level: Level1 429 * @tc.size: MediumTest 430 * @tc.type: Function 431 */ 432TEST_F(UtestCamera3ATest, camera_3a_0031) // 3A mode white balance green scene 433{ 434 std::cout << "==========[test log] Preview, updatesetting different 3A params together." << std::endl; 435 EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 436 // Get the stream manager 437 cameraBase->AchieveStreamOperator(); 438 // start stream 439 cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 440 cameraBase->StartStream(cameraBase->intents); 441 // Get preview 442 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 443 cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 444 // Issue 3A parameters 445 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 446 int32_t expo = 0xa0; 447 meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1); 448 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_TWILIGHT; 449 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 450 cameraBase->cameraDevice->UpdateSettings(meta); 451 std::cout << "==========[test log] UpdateSettings, exposure for 10s." << std::endl; 452 sleep(3); // update settings, exposure for 3s 453 // release stream 454 cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW, cameraBase->CAPTURE_ID_CAPTURE}; 455 cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW, cameraBase->STREAM_ID_CAPTURE}; 456 cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds); 457} 458 459/** 460 * @tc.name: updateSettings AE 461 * @tc.desc: UpdateSettings-OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, success. 462 * @tc.level: Level1 463 * @tc.size: MediumTest 464 * @tc.type: Function 465 */ 466TEST_F(UtestCamera3ATest, camera_3a_0040) 467{ 468 std::cout << "UpdateSettings-OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, success." << std::endl; 469 EXPECT_EQ(true, cameraBase->cameraDevice != nullptr); 470 // Get the stream manager 471 cameraBase->AchieveStreamOperator(); 472 // start stream 473 cameraBase->intents = {PREVIEW, STILL_CAPTURE}; 474 cameraBase->StartStream(cameraBase->intents); 475 // Get preview 476 cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true); 477 cameraBase->StartCapture(cameraBase->STREAM_ID_CAPTURE, cameraBase->CAPTURE_ID_CAPTURE, false, true); 478 479 // Issue 3A parameters 480 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 481 int32_t expo = 0xa0; 482 meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1); 483 cameraBase->cameraDevice->UpdateSettings(meta); 484 sleep(3); // waiting resource release for 3s. 485} 486 487/** 488 * @tc.name: updateSettings AWB without preview 489 * @tc.desc: UpdateSettings-OHOS_CAMERA_AWB_MODE, without preview, success. 490 * @tc.level: Level1 491 * @tc.size: MediumTest 492 * @tc.type: Function 493 */ 494TEST_F(UtestCamera3ATest, camera_3a_0041) 495{ 496 std::cout << "UpdateSettings-OHOS_CAMERA_AWB_MODE, success." << std::endl; 497 498 // Issue 3A parameters 499 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE); 500 uint8_t awbMode = OHOS_CAMERA_AWB_MODE_AUTO; 501 meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1); 502 cameraBase->cameraDevice->UpdateSettings(meta); 503}