1 /*
2 * Copyright (c) 2024-2025 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 #include "camera_stream_test_v1_2.h"
16
17 using namespace OHOS;
18 using namespace std;
19 using namespace testing::ext;
20 using namespace OHOS::Camera;
21
22 constexpr uint32_t ITEM_CAPACITY = 100;
23 constexpr uint32_t DATA_CAPACITY = 2000;
24 constexpr uint32_t DATA_COUNT = 1;
SetUpTestCase(void)25 void CameraStreamTestV1_2::SetUpTestCase(void) {}
TearDownTestCase(void)26 void CameraStreamTestV1_2::TearDownTestCase(void) {}
SetUp(void)27 void CameraStreamTestV1_2::SetUp(void)
28 {
29 cameraTest = std::make_shared<OHOS::Camera::Test>();
30 cameraTest->Init(); // assert inside
31 cameraTest->OpenCameraV1_2(DEVICE_0); // assert inside
32 }
33
TearDown(void)34 void CameraStreamTestV1_2::TearDown(void)
35 {
36 cameraTest->Close();
37 }
38
39 /**
40 * @tc.name:SUB_Driver_Camera_Colorspace_0300
41 * @tc.desc: updateColorSpace by updateStreams
42 * @tc.size:MediumTest
43 * @tc.type:Function
44 */
45 HWTEST_F(CameraStreamTestV1_2, SUB_Driver_Camera_Colorspace_0300, TestSize.Level1)
46 {
47 cameraTest->streamOperatorCallbackV1_2 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_2();
48 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStreamOperator_V1_2(cameraTest->streamOperatorCallbackV1_2,
49 cameraTest->streamOperator_V1_2);
50 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
51 cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
52 cameraTest->DefaultInfosPreview(cameraTest->streamInfoV1_1);
53 cameraTest->streamInfoV1_1->v1_0.dataspace_ = OHOS_CAMERA_SRGB_FULL;
54 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
55 // capture streamInfo
56 cameraTest->streamInfoCapture = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
57 cameraTest->DefaultInfosCapture(cameraTest->streamInfoCapture);
58 cameraTest->streamInfoCapture->v1_0.dataspace_ = OHOS_CAMERA_SRGB_FULL;
59 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoCapture);
60 cameraTest->rc = cameraTest->streamOperator_V1_2->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
61 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
62 cameraTest->rc = cameraTest->streamOperator_V1_2->CommitStreams(
63 OperationMode::NORMAL, cameraTest->abilityVec);
64 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
65 sleep(UT_SECOND_TIMES);
66 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
67 cameraTest->StartCapture(cameraTest->streamIdCapture, cameraTest->captureIdCapture, false, false);
68 cameraTest->streamOperator_V1_2->CancelCapture(cameraTest->captureIdPreview);
69 cameraTest->streamInfoV1_1->v1_0.dataspace_ = OHOS_CAMERA_P3_FULL;
70 cameraTest->streamInfoCapture->v1_0.dataspace_ = OHOS_CAMERA_P3_FULL;
71 cameraTest->rc = cameraTest->streamOperator_V1_2->UpdateStreams(cameraTest->streamInfosV1_1);
72 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
73 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
74 cameraTest->StartCapture(cameraTest->streamIdCapture, 2001, false, false);
75 cameraTest->captureIds = {cameraTest->captureIdPreview};
76 cameraTest->streamIds = {cameraTest->streamIdPreview};
77 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
78 }
79
80 /**
81 * @tc.name:SUB_Driver_Camera_HDRvivid_0100
82 * @tc.desc: updateColorSpace by updateStreams
83 * @tc.size:MediumTest
84 * @tc.type:Function
85 */
86 HWTEST_F(CameraStreamTestV1_2, SUB_Driver_Camera_HDRvivid_0100, TestSize.Level1)
87 {
88 cameraTest->streamOperatorCallbackV1_2 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_2();
89 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStreamOperator_V1_2(cameraTest->streamOperatorCallbackV1_2,
90 cameraTest->streamOperator_V1_2);
91 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
92
93 cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
94 cameraTest->DefaultInfosPreview(cameraTest->streamInfoV1_1);
95 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
96 // video streamInfo
97 cameraTest->streamInfoVideo = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
98 cameraTest->DefaultInfosVideo(cameraTest->streamInfoVideo);
99 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoVideo);
100 cameraTest->rc = cameraTest->streamOperator_V1_2->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
101 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
102 cameraTest->rc = cameraTest->streamOperator_V1_2->CommitStreams(
103 OperationMode::NORMAL, cameraTest->abilityVec);
104 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
105 sleep(UT_SECOND_TIMES);
106 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
107 cameraTest->StartCapture(cameraTest->streamIdVideo, cameraTest->captureIdVideo, false, true);
108 cameraTest->streamOperator_V1_2->CancelCapture(cameraTest->captureIdPreview);
109 cameraTest->streamOperator_V1_2->CancelCapture(cameraTest->captureIdVideo);
110 cameraTest->streamInfoV1_1->v1_0.dataspace_ = OHOS_CAMERA_BT2020_HLG_FULL;
111 cameraTest->streamInfoV1_1->v1_0.format_ = OHOS_CAMERA_FORMAT_YCBCR_P010;
112 cameraTest->streamInfoVideo->v1_0.dataspace_ = OHOS_CAMERA_BT2020_HLG_FULL;
113 cameraTest->streamInfoVideo->v1_0.format_ = OHOS_CAMERA_FORMAT_YCBCR_P010;
114 cameraTest->rc = cameraTest->streamOperator_V1_2->UpdateStreams(cameraTest->streamInfosV1_1);
115 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
116 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
117 cameraTest->StartCapture(cameraTest->streamIdVideo, cameraTest->captureIdVideo, false, true);
118 cameraTest->captureIds = {cameraTest->captureIdPreview, cameraTest->captureIdVideo};
119 cameraTest->streamIds = {cameraTest->streamIdPreview, cameraTest->streamIdVideo};
120 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
121 }
122
123 /**
124 * @tc.name:SUB_Driver_Camera_HDRvivid_0200
125 * @tc.desc: updateColorSpace by updateStreams
126 * @tc.size:MediumTest
127 * @tc.type:Function
128 */
129 HWTEST_F(CameraStreamTestV1_2, SUB_Driver_Camera_HDRvivid_0200, TestSize.Level1)
130 {
131 cameraTest->streamOperatorCallbackV1_2 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_2();
132 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStreamOperator_V1_2(cameraTest->streamOperatorCallbackV1_2,
133 cameraTest->streamOperator_V1_2);
134 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
135
136 cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
137 cameraTest->DefaultInfosPreview(cameraTest->streamInfoV1_1);
138 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
139 // video streamInfo
140 cameraTest->streamInfoVideo = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
141 cameraTest->DefaultInfosVideo(cameraTest->streamInfoVideo);
142 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoVideo);
143 cameraTest->rc = cameraTest->streamOperator_V1_2->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
144 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
145 cameraTest->rc = cameraTest->streamOperator_V1_2->CommitStreams(
146 OperationMode::NORMAL, cameraTest->abilityVec);
147 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
148 sleep(UT_SECOND_TIMES);
149 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
150 cameraTest->StartCapture(cameraTest->streamIdVideo, cameraTest->captureIdVideo, false, true);
151 cameraTest->streamOperator_V1_2->CancelCapture(cameraTest->captureIdPreview);
152 cameraTest->streamOperator_V1_2->CancelCapture(cameraTest->captureIdVideo);
153 cameraTest->streamInfoV1_1->v1_0.dataspace_ = OHOS_CAMERA_BT709_FULL;
154 cameraTest->streamInfoV1_1->v1_0.format_ = PIXEL_FMT_YCRCB_420_SP;
155 cameraTest->streamInfoVideo->v1_0.dataspace_ = OHOS_CAMERA_BT709_FULL;
156 cameraTest->streamInfoVideo->v1_0.format_ = PIXEL_FMT_YCRCB_420_SP;
157 cameraTest->rc = cameraTest->streamOperator_V1_2->UpdateStreams(cameraTest->streamInfosV1_1);
158 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
159 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
160 cameraTest->StartCapture(cameraTest->streamIdVideo, cameraTest->captureIdVideo, false, true);
161 cameraTest->captureIds = {cameraTest->captureIdPreview, cameraTest->captureIdVideo};
162 cameraTest->streamIds = {cameraTest->streamIdPreview, cameraTest->streamIdVideo};
163 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
164 }
165
166 /**
167 * @tc.name:SUB_Driver_Camera_NightMode_0200
168 * @tc.desc:auto exposure
169 * @tc.size:MediumTest
170 * @tc.type:Function
171 */
172 HWTEST_F(CameraStreamTestV1_2, SUB_Driver_Camera_NightMode_0200, TestSize.Level1)
173 {
174 //Get Stream Operator
175 cameraTest->streamOperatorCallbackV1_2 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_2();
176 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStreamOperator_V1_2(cameraTest->streamOperatorCallbackV1_2,
177 cameraTest->streamOperator_V1_2);
178 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
179 //preview streamInfo
180 cameraTest->streamInfoPre = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
181 cameraTest->DefaultInfosPreview(cameraTest->streamInfoPre);
182 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoPre);
183 //capture streamInfo
184 cameraTest->streamInfoCapture = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
185 cameraTest->DefaultInfosCapture(cameraTest->streamInfoCapture);
186 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoCapture);
187 //create and commit stream
188 cameraTest->rc = cameraTest->streamOperator_V1_2->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
189 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
190 cameraTest->rc = cameraTest->streamOperator_V1_2->CommitStreams_V1_1(
191 static_cast<OHOS::HDI::Camera::V1_1::OperationMode_V1_1>(OHOS::HDI::Camera::V1_2::NIGHT),
192 cameraTest->abilityVec);
193 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
194 //start capture
195 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
196 cameraTest->StartCapture(cameraTest->streamIdCapture, cameraTest->captureIdCapture, false, false);
197 //wait for auto exposuring end
198 sleep(10);
199 //stop stream
200 cameraTest->captureIds = {cameraTest->captureIdPreview};
201 cameraTest->streamIds = {cameraTest->streamIdPreview};
202 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
203 }
204
205 /**
206 * @tc.name:SUB_Driver_Camera_NightMode_0300
207 * @tc.desc:manual exposure
208 * @tc.size:MediumTest
209 * @tc.type:Function
210 */
211 HWTEST_F(CameraStreamTestV1_2, SUB_Driver_Camera_NightMode_0300, TestSize.Level1)
212 {
213 //update settings
214 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
215 int32_t manualExposureTime = 8000;
216 meta->addEntry(OHOS_CONTROL_MANUAL_EXPOSURE_TIME, &manualExposureTime, DATA_COUNT);
217 std::vector<uint8_t> setting;
218 MetadataUtils::ConvertMetadataToVec(meta, setting);
219 cameraTest->rc = (CamRetCode)cameraTest->cameraDevice->UpdateSettings(setting);
220 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
221 //Get Stream Operator
222 cameraTest->streamOperatorCallbackV1_2 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_2();
223 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStreamOperator_V1_2(cameraTest->streamOperatorCallbackV1_2,
224 cameraTest->streamOperator_V1_2);
225 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
226 //preview streamInfo
227 cameraTest->streamInfoPre = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
228 cameraTest->DefaultInfosPreview(cameraTest->streamInfoPre);
229 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoPre);
230 //capture streamInfo
231 cameraTest->streamInfoCapture = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
232 cameraTest->DefaultInfosCapture(cameraTest->streamInfoCapture);
233 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoCapture);
234 //create and commit stream
235 cameraTest->rc = cameraTest->streamOperator_V1_2->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
236 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
237 cameraTest->rc = cameraTest->streamOperator_V1_2->CommitStreams_V1_1(
238 static_cast<OHOS::HDI::Camera::V1_1::OperationMode_V1_1>(OHOS::HDI::Camera::V1_2::NIGHT),
239 cameraTest->abilityVec);
240 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
241 //start capture
242 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
243 cameraTest->StartCapture(cameraTest->streamIdCapture, cameraTest->captureIdCapture, false, false);
244 //wait for manual exposuring end
245 sleep(10);
246 //stop stream
247 cameraTest->captureIds = {cameraTest->captureIdPreview};
248 cameraTest->streamIds = {cameraTest->streamIdPreview};
249 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
250 }
251
252 /**
253 * @tc.name:SUB_Driver_Camera_NightMode_0400
254 * @tc.desc:manual exposure and then confirmCapture
255 * @tc.size:MediumTest
256 * @tc.type:Function
257 */
258 HWTEST_F(CameraStreamTestV1_2, SUB_Driver_Camera_NightMode_0400, TestSize.Level1)
259 {
260 //update settings
261 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
262 int32_t manualExposureTime = 8000;
263 meta->addEntry(OHOS_CONTROL_MANUAL_EXPOSURE_TIME, &manualExposureTime, DATA_COUNT);
264 std::vector<uint8_t> setting;
265 MetadataUtils::ConvertMetadataToVec(meta, setting);
266 cameraTest->rc = (CamRetCode)cameraTest->cameraDevice->UpdateSettings(setting);
267 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
268 //Get Stream Operator
269 cameraTest->streamOperatorCallbackV1_2 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_2();
270 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStreamOperator_V1_2(cameraTest->streamOperatorCallbackV1_2,
271 cameraTest->streamOperator_V1_2);
272 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
273 //preview streamInfo
274 cameraTest->streamInfoPre = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
275 cameraTest->DefaultInfosPreview(cameraTest->streamInfoPre);
276 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoPre);
277 //capture streamInfo
278 cameraTest->streamInfoCapture = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
279 cameraTest->DefaultInfosCapture(cameraTest->streamInfoCapture);
280 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoCapture);
281 //create and commit stream
282 cameraTest->rc = cameraTest->streamOperator_V1_2->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
283 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
284 cameraTest->rc = cameraTest->streamOperator_V1_2->CommitStreams_V1_1(
285 static_cast<OHOS::HDI::Camera::V1_1::OperationMode_V1_1>(OHOS::HDI::Camera::V1_2::NIGHT),
286 cameraTest->abilityVec);
287 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
288 //start capture
289 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
290 cameraTest->StartCapture(cameraTest->streamIdCapture, cameraTest->captureIdCapture, false, false);
291 //wait for manual exposuring end confirmCapture
292 sleep(UT_SLEEP_TIME);
293 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
294 cameraTest->streamOperator_V1_2->ConfirmCapture(cameraTest->streamIdCapture);
295 sleep(UT_SLEEP_TIME);
296 //stop stream
297 cameraTest->captureIds = {cameraTest->captureIdPreview};
298 cameraTest->streamIds = {cameraTest->streamIdPreview};
299 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
300 }
301
302 /**
303 * @tc.name: SUB_Driver_Camera_SmoothZoom_0200
304 * @tc.desc: SMOOTH ZOOM
305 * @tc.size: MediumTest
306 * @tc.type: Function
307 */
308 HWTEST_F(CameraStreamTestV1_2, SUB_Driver_Camera_SmoothZoom_0200, TestSize.Level1)
309 {
310 cameraTest->streamOperatorCallbackV1_2 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_2();
311 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStreamOperator_V1_2(cameraTest->streamOperatorCallbackV1_2,
312 cameraTest->streamOperator_V1_2);
313 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
314 cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
315 cameraTest->DefaultInfosPreview(cameraTest->streamInfoV1_1);
316 cameraTest->streamInfoV1_1->v1_0.dataspace_ = OHOS_CAMERA_SRGB_FULL;
317 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
318 // capture streamInfo
319 cameraTest->streamInfoCapture = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
320 cameraTest->DefaultInfosCapture(cameraTest->streamInfoCapture);
321 cameraTest->streamInfoCapture->v1_0.dataspace_ = OHOS_CAMERA_SRGB_FULL;
322 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoCapture);
323 // video streamInfo
324 cameraTest->streamInfoVideo = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
325 cameraTest->DefaultInfosVideo(cameraTest->streamInfoVideo);
326 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoVideo);
327 // start stream
328 cameraTest->rc = cameraTest->streamOperator_V1_2->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
329 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
330 cameraTest->rc = cameraTest->streamOperator_V1_2->CommitStreams(
331 OperationMode::NORMAL, cameraTest->abilityVec);
332 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
333 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
334 cameraTest->StartCapture(cameraTest->streamIdCapture, cameraTest->captureIdCapture, false, true);
335 cameraTest->StartCapture(cameraTest->streamIdVideo, cameraTest->captureIdVideo, false, true);
336 EXPECT_NE(cameraTest->ability, nullptr);
337 common_metadata_header_t* data = cameraTest->ability->get();
338 EXPECT_NE(data, nullptr);
339 camera_metadata_item_t entry;
340 // cover tag OHOS_ABILITY_CAMERA_ZOOM_PERFORMANCE
341 cameraTest->rc = FindCameraMetadataItem(data, OHOS_ABILITY_CAMERA_ZOOM_PERFORMANCE, &entry);
342 if (cameraTest->rc != 0) {
343 GTEST_SKIP() << "skip this test, because OHOS_ABILITY_CAMERA_ZOOM_PERFORMANCE not supported now" << std::endl;
344 return;
345 }
346 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
347 // cover OHOS_CONTROL_PREPARE_ZOOM and its values
348 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
349 // cover OHOS_CAMERA_ZOOMSMOOTH_PREPARE_ENABLE
350 uint8_t pre_zoom_value = OHOS_CAMERA_ZOOMSMOOTH_PREPARE_ENABLE;
351 meta->addEntry(OHOS_CONTROL_PREPARE_ZOOM, &pre_zoom_value, DATA_COUNT);
352 std::vector<uint8_t> setting;
353 MetadataUtils::ConvertMetadataToVec(meta, setting);
354 cameraTest->rc = (CamRetCode)cameraTest->cameraDevice->UpdateSettings(setting);
355 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
356 // cover OHOS_CONTROL_SMOOTH_ZOOM_RATIOS, values type: uint32_t array
357 uint32_t values[] = { 10, 300, 20, 400, 30, 500 };
358 meta = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
359 meta->addEntry(OHOS_CONTROL_SMOOTH_ZOOM_RATIOS, values, sizeof(values) / sizeof(uint32_t));
360 setting.clear();
361 MetadataUtils::ConvertMetadataToVec(meta, setting);
362 cameraTest->rc = (CamRetCode)cameraTest->cameraDevice->UpdateSettings(setting);
363 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
364 // cover GetStatus(), OHOS_STATUS_CAMERA_CURRENT_FPS and OHOS_STATUS_CAMERA_CURRENT_ZOOM_RATIO
365 std::shared_ptr<CameraSetting> metaIn = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
366 // no sense
367 uint32_t current_fps = 0;
368 uint32_t current_zoom_ratio = 0;
369 metaIn->addEntry(OHOS_STATUS_CAMERA_CURRENT_FPS, ¤t_fps, DATA_COUNT);
370 metaIn->addEntry(OHOS_STATUS_CAMERA_CURRENT_ZOOM_RATIO, ¤t_zoom_ratio, DATA_COUNT);
371 std::vector<uint8_t> settingIn, settingOut;
372 MetadataUtils::ConvertMetadataToVec(metaIn, settingIn);
373 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStatus(settingIn, settingOut);
374 if (HDI::Camera::V1_0::NO_ERROR == cameraTest->rc) {
375 std::cout << "GetStatus execute success." << std::endl;
376 }
377 meta = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
378 // cover OHOS_CAMERA_ZOOMSMOOTH_PREPARE_DISABLE
379 pre_zoom_value = OHOS_CAMERA_ZOOMSMOOTH_PREPARE_DISABLE ;
380 meta->addEntry(OHOS_CONTROL_PREPARE_ZOOM, &pre_zoom_value, DATA_COUNT);
381 setting.clear();
382 MetadataUtils::ConvertMetadataToVec(meta, setting);
383 cameraTest->rc = (CamRetCode)cameraTest->cameraDevice->UpdateSettings(setting);
384 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
385 cameraTest->captureIds = {cameraTest->captureIdPreview, cameraTest->captureIdCapture, cameraTest->captureIdVideo};
386 cameraTest->streamIds = {cameraTest->streamIdPreview, cameraTest->streamIdCapture, cameraTest->streamIdVideo};
387 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
388 }
389
390 /**
391 * @tc.name: SUB_Driver_Camera_SmoothZoom_0300
392 * @tc.desc: SMOOTH ZOOM
393 * @tc.size: MediumTest
394 * @tc.type: Function
395 */
396 HWTEST_F(CameraStreamTestV1_2, SUB_Driver_Camera_SmoothZoom_0300, TestSize.Level1)
397 {
398 cameraTest->streamOperatorCallbackV1_2 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_2();
399 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStreamOperator_V1_2(cameraTest->streamOperatorCallbackV1_2,
400 cameraTest->streamOperator_V1_2);
401 EXPECT_NE(cameraTest->streamOperator_V1_2, nullptr);
402 cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
403 cameraTest->DefaultInfosPreview(cameraTest->streamInfoV1_1);
404 cameraTest->streamInfoV1_1->v1_0.dataspace_ = OHOS_CAMERA_SRGB_FULL;
405 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
406 // capture streamInfo
407 cameraTest->streamInfoCapture = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
408 cameraTest->DefaultInfosCapture(cameraTest->streamInfoCapture);
409 cameraTest->streamInfoCapture->v1_0.dataspace_ = OHOS_CAMERA_SRGB_FULL;
410 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoCapture);
411 // video streamInfo
412 cameraTest->streamInfoVideo = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
413 cameraTest->DefaultInfosVideo(cameraTest->streamInfoVideo);
414 cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoVideo);
415 // start stream
416 cameraTest->rc = cameraTest->streamOperator_V1_2->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
417 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
418 cameraTest->rc = cameraTest->streamOperator_V1_2->CommitStreams(
419 OperationMode::NORMAL, cameraTest->abilityVec);
420 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
421 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
422 cameraTest->StartCapture(cameraTest->streamIdCapture, cameraTest->captureIdCapture, false, true);
423 cameraTest->StartCapture(cameraTest->streamIdVideo, cameraTest->captureIdVideo, false, true);
424 std::shared_ptr<CameraSetting> metaIn = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
425 std::shared_ptr<CameraSetting> metaOut = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
426 uint8_t aperture_range = 1;
427 metaIn->addEntry(OHOS_ABILITY_CAMERA_VIRTUAL_APERTURE_RANGE, &aperture_range, DATA_COUNT);
428 std::vector<uint8_t> settingIn, settingOut;
429 MetadataUtils::ConvertMetadataToVec(metaIn, settingIn);
430 cameraTest->rc = cameraTest->cameraDeviceV1_2->GetStatus(settingIn, settingOut);
431 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::INVALID_ARGUMENT);
432 cameraTest->captureIds = {cameraTest->captureIdPreview, cameraTest->captureIdCapture, cameraTest->captureIdVideo};
433 cameraTest->streamIds = {cameraTest->streamIdPreview, cameraTest->streamIdCapture, cameraTest->streamIdVideo};
434 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
435 }
436