1094332d3Sopenharmony_ci/*
2094332d3Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4094332d3Sopenharmony_ci * you may not use this file except 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#include "hdi_func_test.h"
16094332d3Sopenharmony_ci
17094332d3Sopenharmony_civoid UtestHdiFuncTest::SetUpTestCase(void)
18094332d3Sopenharmony_ci{}
19094332d3Sopenharmony_civoid UtestHdiFuncTest::TearDownTestCase(void)
20094332d3Sopenharmony_ci{}
21094332d3Sopenharmony_civoid UtestHdiFuncTest::SetUp(void)
22094332d3Sopenharmony_ci{
23094332d3Sopenharmony_ci    if (cameraBase == nullptr)
24094332d3Sopenharmony_ci    cameraBase = std::make_shared<TestCameraBase>();
25094332d3Sopenharmony_ci    cameraBase->FBInit();
26094332d3Sopenharmony_ci    cameraBase->Init();
27094332d3Sopenharmony_ci}
28094332d3Sopenharmony_civoid UtestHdiFuncTest::TearDown(void)
29094332d3Sopenharmony_ci{
30094332d3Sopenharmony_ci    cameraBase->Close();
31094332d3Sopenharmony_ci}
32094332d3Sopenharmony_ci
33094332d3Sopenharmony_ci/**
34094332d3Sopenharmony_ci  * @tc.name: Capture
35094332d3Sopenharmony_ci  * @tc.desc: Capture, input normal.
36094332d3Sopenharmony_ci  * @tc.level: Level1
37094332d3Sopenharmony_ci  * @tc.size: MediumTest
38094332d3Sopenharmony_ci  * @tc.type: Function
39094332d3Sopenharmony_ci  */
40094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0190)
41094332d3Sopenharmony_ci{
42094332d3Sopenharmony_ci    std::cout << "==========[test log] Capture, input normal." << std::endl;
43094332d3Sopenharmony_ci    // Create and get streamOperator information
44094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
45094332d3Sopenharmony_ci    // Create data stream
46094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
47094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
48094332d3Sopenharmony_ci    // Get preview
49094332d3Sopenharmony_ci    cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true);
50094332d3Sopenharmony_ci    // release stream
51094332d3Sopenharmony_ci    cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW};
52094332d3Sopenharmony_ci    cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW};
53094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
54094332d3Sopenharmony_ci}
55094332d3Sopenharmony_ci
56094332d3Sopenharmony_ci/**
57094332d3Sopenharmony_ci  * @tc.name: Capture
58094332d3Sopenharmony_ci  * @tc.desc: Preview, Capture->captureInfo->streamID = -1 ,return error.
59094332d3Sopenharmony_ci  * @tc.level: Level2
60094332d3Sopenharmony_ci  * @tc.size: MediumTest
61094332d3Sopenharmony_ci  * @tc.type: Function
62094332d3Sopenharmony_ci  */
63094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0191)
64094332d3Sopenharmony_ci{
65094332d3Sopenharmony_ci    std::cout << "==========[test log] Preview, Capture->captureInfo->streamID = -1 ,return error." << std::endl;
66094332d3Sopenharmony_ci    cameraBase->OpenCamera();
67094332d3Sopenharmony_ci    // Create and get streamOperator information
68094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
69094332d3Sopenharmony_ci    // start stream
70094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
71094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
72094332d3Sopenharmony_ci    // Get preview
73094332d3Sopenharmony_ci    int captureId = 2001;
74094332d3Sopenharmony_ci    std::shared_ptr<CaptureInfo> captureInfo = std::make_shared<CaptureInfo>();
75094332d3Sopenharmony_ci    captureInfo->streamIds_ = {-1};
76094332d3Sopenharmony_ci    captureInfo->enableShutterCallback_ = true;
77094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->Capture(captureId, captureInfo, true);
78094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
79094332d3Sopenharmony_ci    if (cameraBase->rc == INVALID_ARGUMENT) {
80094332d3Sopenharmony_ci        std::cout << "==========[test log] Capture fail." << std::endl;
81094332d3Sopenharmony_ci    } else {
82094332d3Sopenharmony_ci        std::cout << "==========[test log] Capture success." << std::endl;
83094332d3Sopenharmony_ci    }
84094332d3Sopenharmony_ci    sleep(3); // waiting resource release for 3s.
85094332d3Sopenharmony_ci}
86094332d3Sopenharmony_ci
87094332d3Sopenharmony_ci/**
88094332d3Sopenharmony_ci  * @tc.name: Capture
89094332d3Sopenharmony_ci  * @tc.desc: Preview, Capture->captureInfo->streamID = 2147483647 ,return success.
90094332d3Sopenharmony_ci  * @tc.level: Level2
91094332d3Sopenharmony_ci  * @tc.size: MediumTest
92094332d3Sopenharmony_ci  * @tc.type: Function
93094332d3Sopenharmony_ci  */
94094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0192)
95094332d3Sopenharmony_ci{
96094332d3Sopenharmony_ci    std::cout << "==========[test log] Preview,";
97094332d3Sopenharmony_ci    std::cout << "Capture->captureInfo->streamID = 2147483647 ,return success." << std::endl;
98094332d3Sopenharmony_ci    // Create and get streamOperator information
99094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
100094332d3Sopenharmony_ci    // start stream
101094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
102094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
103094332d3Sopenharmony_ci    // Get preview
104094332d3Sopenharmony_ci    int captureId = 2001;
105094332d3Sopenharmony_ci    std::shared_ptr<CaptureInfo> captureInfo = std::make_shared<CaptureInfo>();
106094332d3Sopenharmony_ci    captureInfo->streamIds_ = {2147483647};
107094332d3Sopenharmony_ci    captureInfo->enableShutterCallback_ = true;
108094332d3Sopenharmony_ci    bool isStreaming = true;
109094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->Capture(captureId, captureInfo, isStreaming);
110094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
111094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
112094332d3Sopenharmony_ci        std::cout << "==========[test log] Capture success." << std::endl;
113094332d3Sopenharmony_ci    } else {
114094332d3Sopenharmony_ci        std::cout << "==========[test log] Capture fail, rc = " << cameraBase->rc << std::endl;
115094332d3Sopenharmony_ci    }
116094332d3Sopenharmony_ci    sleep(3); // waiting function Capture execute for 3s.
117094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CancelCapture(captureId);
118094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
119094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
120094332d3Sopenharmony_ci        std::cout << "==========[test log] CancelCapture success." << std::endl;
121094332d3Sopenharmony_ci    } else {
122094332d3Sopenharmony_ci        std::cout << "==========[test log] CancelCapture fail, rc = " << cameraBase->rc << std::endl;
123094332d3Sopenharmony_ci    }
124094332d3Sopenharmony_ci    cameraBase->cameraDevice->Close();
125094332d3Sopenharmony_ci    std::cout << "cameraDevice->Close" << std::endl;
126094332d3Sopenharmony_ci}
127094332d3Sopenharmony_ci
128094332d3Sopenharmony_ci/**
129094332d3Sopenharmony_ci  * @tc.name: Capture
130094332d3Sopenharmony_ci  * @tc.desc: Preview, Capture->captureInfo->enableShutterCallback = false ,return success.
131094332d3Sopenharmony_ci  * @tc.level: Level2
132094332d3Sopenharmony_ci  * @tc.size: MediumTest
133094332d3Sopenharmony_ci  * @tc.type: Function
134094332d3Sopenharmony_ci  */
135094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0193)
136094332d3Sopenharmony_ci{
137094332d3Sopenharmony_ci    std::cout << "==========[test log] Preview,";
138094332d3Sopenharmony_ci    std::cout << "Capture->captureInfo->enableShutterCallback = false ,return success." << std::endl;
139094332d3Sopenharmony_ci    // Create and get streamOperator information
140094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
141094332d3Sopenharmony_ci    // start stream
142094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
143094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
144094332d3Sopenharmony_ci    // Get preview
145094332d3Sopenharmony_ci    cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true);
146094332d3Sopenharmony_ci    // release stream
147094332d3Sopenharmony_ci    cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW};
148094332d3Sopenharmony_ci    cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW};
149094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
150094332d3Sopenharmony_ci}
151094332d3Sopenharmony_ci
152094332d3Sopenharmony_ci/**
153094332d3Sopenharmony_ci  * @tc.name: Capture
154094332d3Sopenharmony_ci  * @tc.desc: Preview, Capture->isStreaming = false ,expected success.
155094332d3Sopenharmony_ci  * @tc.level: Level2
156094332d3Sopenharmony_ci  * @tc.size: MediumTest
157094332d3Sopenharmony_ci  * @tc.type: Function
158094332d3Sopenharmony_ci  */
159094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0194)
160094332d3Sopenharmony_ci{
161094332d3Sopenharmony_ci    std::cout << "==========[test log] Preview, Capture->isStreaming = false ,expected success." << std::endl;
162094332d3Sopenharmony_ci    std::cout << "==========[test log] Preview, Capture->isStreaming = false ,expected success." << std::endl;
163094332d3Sopenharmony_ci    // Create and get streamOperator information
164094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
165094332d3Sopenharmony_ci    // start stream
166094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
167094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
168094332d3Sopenharmony_ci    // Get preview
169094332d3Sopenharmony_ci    int captureId = 2001;
170094332d3Sopenharmony_ci    std::shared_ptr<CaptureInfo> captureInfo = std::make_shared<CaptureInfo>();
171094332d3Sopenharmony_ci    captureInfo->streamIds_ = {cameraBase->STREAM_ID_PREVIEW};
172094332d3Sopenharmony_ci    captureInfo->enableShutterCallback_ = true;
173094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->Capture(captureId, captureInfo, false);
174094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
175094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute function CancelCapture
176094332d3Sopenharmony_ci    cameraBase->streamOperator->CancelCapture(captureId);
177094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
178094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
179094332d3Sopenharmony_ci        std::cout << "==========[test log] CancelCapture success." << std::endl;
180094332d3Sopenharmony_ci    } else {
181094332d3Sopenharmony_ci        std::cout << "==========[test log] CancelCapture fail, rc = " << cameraBase->rc << std::endl;
182094332d3Sopenharmony_ci    }
183094332d3Sopenharmony_ci    // release stream
184094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(captureInfo->streamIds_);
185094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
186094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
187094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
188094332d3Sopenharmony_ci    } else {
189094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
190094332d3Sopenharmony_ci    }
191094332d3Sopenharmony_ci}
192094332d3Sopenharmony_ci
193094332d3Sopenharmony_ci/**
194094332d3Sopenharmony_ci  * @tc.name: Capture
195094332d3Sopenharmony_ci  * @tc.desc: Preview, Capture->captureId = -1 ,return error.
196094332d3Sopenharmony_ci  * @tc.level: Level2
197094332d3Sopenharmony_ci  * @tc.size: MediumTest
198094332d3Sopenharmony_ci  * @tc.type: Function
199094332d3Sopenharmony_ci  */
200094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0195)
201094332d3Sopenharmony_ci{
202094332d3Sopenharmony_ci    std::cout << "==========[test log] Preview, Capture->captureId = -1 ,return error." << std::endl;
203094332d3Sopenharmony_ci    cameraBase->OpenCamera();
204094332d3Sopenharmony_ci    // Create and get streamOperator information
205094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
206094332d3Sopenharmony_ci    // start stream
207094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
208094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
209094332d3Sopenharmony_ci    // Get preview
210094332d3Sopenharmony_ci    int captureId = -1;
211094332d3Sopenharmony_ci    std::shared_ptr<CaptureInfo> captureInfo = std::make_shared<CaptureInfo>();
212094332d3Sopenharmony_ci    captureInfo->streamIds_ = {cameraBase->STREAM_ID_PREVIEW};
213094332d3Sopenharmony_ci    captureInfo->enableShutterCallback_ = false;
214094332d3Sopenharmony_ci    bool isStreaming = true;
215094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->Capture(captureId, captureInfo, isStreaming);
216094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
217094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
218094332d3Sopenharmony_ci        std::cout << "==========[test log] Capture success." << std::endl;
219094332d3Sopenharmony_ci    } else {
220094332d3Sopenharmony_ci        std::cout << "==========[test log] Capture fail, rc = " << cameraBase->rc << std::endl;
221094332d3Sopenharmony_ci    }
222094332d3Sopenharmony_ci    sleep(3); // waiting resource release for 3s.
223094332d3Sopenharmony_ci}
224094332d3Sopenharmony_ci
225094332d3Sopenharmony_ci/**
226094332d3Sopenharmony_ci  * @tc.name: Capture
227094332d3Sopenharmony_ci  * @tc.desc: Preview, Capture->captureInfo->enableShutterCallback = true ,return success.
228094332d3Sopenharmony_ci  * @tc.level: Level2
229094332d3Sopenharmony_ci  * @tc.size: MediumTest
230094332d3Sopenharmony_ci  * @tc.type: Function
231094332d3Sopenharmony_ci  */
232094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0196)
233094332d3Sopenharmony_ci{
234094332d3Sopenharmony_ci    std::cout << "==========[test log] Preview,";
235094332d3Sopenharmony_ci    std::cout << "Capture->captureInfo->enableShutterCallback = true ,return success." << std::endl;
236094332d3Sopenharmony_ci    // Create and get streamOperator information
237094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
238094332d3Sopenharmony_ci    // start stream
239094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
240094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
241094332d3Sopenharmony_ci    // Get preview
242094332d3Sopenharmony_ci    cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, true, true);
243094332d3Sopenharmony_ci    // release stream
244094332d3Sopenharmony_ci    cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW};
245094332d3Sopenharmony_ci    cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW};
246094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
247094332d3Sopenharmony_ci}
248094332d3Sopenharmony_ci
249094332d3Sopenharmony_ci/**
250094332d3Sopenharmony_ci  * @tc.name: CancelCapture
251094332d3Sopenharmony_ci  * @tc.desc: CancelCapture, success.
252094332d3Sopenharmony_ci  * @tc.level: Level2
253094332d3Sopenharmony_ci  * @tc.size: MediumTest
254094332d3Sopenharmony_ci  * @tc.type: Function
255094332d3Sopenharmony_ci  */
256094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0200)
257094332d3Sopenharmony_ci{
258094332d3Sopenharmony_ci    std::cout << "==========[test log] CancelCapture, success." << std::endl;
259094332d3Sopenharmony_ci    // Create and get streamOperator information
260094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
261094332d3Sopenharmony_ci    // start stream
262094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
263094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
264094332d3Sopenharmony_ci    // Get preview
265094332d3Sopenharmony_ci    cameraBase->StartCapture(cameraBase->STREAM_ID_PREVIEW, cameraBase->CAPTURE_ID_PREVIEW, false, true);
266094332d3Sopenharmony_ci    // release stream
267094332d3Sopenharmony_ci    cameraBase->captureIds = {cameraBase->CAPTURE_ID_PREVIEW};
268094332d3Sopenharmony_ci    cameraBase->streamIds = {cameraBase->STREAM_ID_PREVIEW};
269094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
270094332d3Sopenharmony_ci}
271094332d3Sopenharmony_ci
272094332d3Sopenharmony_ci/**
273094332d3Sopenharmony_ci  * @tc.name: CancelCapture
274094332d3Sopenharmony_ci  * @tc.desc: CancelCapture captureID = -1.
275094332d3Sopenharmony_ci  * @tc.level: Level2
276094332d3Sopenharmony_ci  * @tc.size: MediumTest
277094332d3Sopenharmony_ci  * @tc.type: Function
278094332d3Sopenharmony_ci  */
279094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0201)
280094332d3Sopenharmony_ci{
281094332d3Sopenharmony_ci    std::cout << "==========[test log] CancelCapture captureID = -1, expected fail." << std::endl;
282094332d3Sopenharmony_ci    // Create and get streamOperator information
283094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
284094332d3Sopenharmony_ci    // start stream
285094332d3Sopenharmony_ci    cameraBase->intents = {PREVIEW};
286094332d3Sopenharmony_ci    cameraBase->StartStream(cameraBase->intents);
287094332d3Sopenharmony_ci    // Get preview
288094332d3Sopenharmony_ci    int captureId = 100;
289094332d3Sopenharmony_ci    std::shared_ptr<CaptureInfo> captureInfo = std::make_shared<CaptureInfo>();
290094332d3Sopenharmony_ci    captureInfo->streamIds_ = {cameraBase->STREAM_ID_PREVIEW};
291094332d3Sopenharmony_ci    captureInfo->enableShutterCallback_ = false;
292094332d3Sopenharmony_ci    bool isStreaming = true;
293094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->Capture(captureId, captureInfo, isStreaming);
294094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
295094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute function CancelCapture
296094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CancelCapture(-1);
297094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
298094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CancelCapture(captureId);
299094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
300094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
301094332d3Sopenharmony_ci        std::cout << "==========[test log] CancelCapture success." << std::endl;
302094332d3Sopenharmony_ci    } else {
303094332d3Sopenharmony_ci        std::cout << "==========[test log] CancelCapture fail, rc = " << cameraBase->rc << std::endl;
304094332d3Sopenharmony_ci    }
305094332d3Sopenharmony_ci    // release stream
306094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(captureInfo->streamIds_);
307094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
308094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
309094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
310094332d3Sopenharmony_ci    } else {
311094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
312094332d3Sopenharmony_ci    }
313094332d3Sopenharmony_ci}
314094332d3Sopenharmony_ci
315094332d3Sopenharmony_ci/**
316094332d3Sopenharmony_ci  * @tc.name: AttachBufferQueue
317094332d3Sopenharmony_ci  * @tc.desc: AttachBufferQueue, normal input.
318094332d3Sopenharmony_ci  * @tc.level: Level1
319094332d3Sopenharmony_ci  * @tc.size: MediumTest
320094332d3Sopenharmony_ci  * @tc.type: Function
321094332d3Sopenharmony_ci  // */
322094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0210)
323094332d3Sopenharmony_ci{
324094332d3Sopenharmony_ci    std::cout << "==========[test log] AttachBufferQueue, normal input." << std::endl;
325094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
326094332d3Sopenharmony_ci    // Create data stream
327094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
328094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
329094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
330094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
331094332d3Sopenharmony_ci    }
332094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
333094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
334094332d3Sopenharmony_ci        return;
335094332d3Sopenharmony_ci    };
336094332d3Sopenharmony_ci    producer->SetCallback(callback);
337094332d3Sopenharmony_ci
338094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
339094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
340094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
341094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
342094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
343094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
344094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
345094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
346094332d3Sopenharmony_ci    cameraBase->streamInfos.push_back(cameraBase->streamInfo);
347094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(cameraBase->streamInfos);
348094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
349094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
350094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
351094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
352094332d3Sopenharmony_ci    } else {
353094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
354094332d3Sopenharmony_ci    }
355094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->AttachBufferQueue(cameraBase->streamInfo->streamId_, producer);
356094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
357094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
358094332d3Sopenharmony_ci        std::cout << "==========[test log] AttachBufferQueue success. " << std::endl;
359094332d3Sopenharmony_ci    } else {
360094332d3Sopenharmony_ci        std::cout << "==========[test log] AttachBufferQueue fail, rc = " << cameraBase->rc << std::endl;
361094332d3Sopenharmony_ci    }
362094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for release stream.
363094332d3Sopenharmony_ci    // release stream
364094332d3Sopenharmony_ci    cameraBase->streamIds = {DEFAULT_STREAM_ID};
365094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
366094332d3Sopenharmony_ci}
367094332d3Sopenharmony_ci
368094332d3Sopenharmony_ci/**
369094332d3Sopenharmony_ci  * @tc.name: AttachBufferQueue
370094332d3Sopenharmony_ci  * @tc.desc: AttachBufferQueue, streamID is not exist.
371094332d3Sopenharmony_ci  * @tc.level: Level2
372094332d3Sopenharmony_ci  * @tc.size: MediumTest
373094332d3Sopenharmony_ci  * @tc.type: Function
374094332d3Sopenharmony_ci  */
375094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0211)
376094332d3Sopenharmony_ci{
377094332d3Sopenharmony_ci    std::cout << "==========[test log] AttachBufferQueue, streamID is not exist.." << std::endl;
378094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
379094332d3Sopenharmony_ci    // Create data stream
380094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
381094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
382094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
383094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
384094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
385094332d3Sopenharmony_ci    }
386094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
387094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
388094332d3Sopenharmony_ci        return;
389094332d3Sopenharmony_ci    };
390094332d3Sopenharmony_ci    producer->SetCallback(callback);
391094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
392094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
393094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
394094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
395094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
396094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
397094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
398094332d3Sopenharmony_ci    cameraBase->streamInfos.push_back(cameraBase->streamInfo);
399094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(cameraBase->streamInfos);
400094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
401094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
402094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
403094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
404094332d3Sopenharmony_ci    } else {
405094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
406094332d3Sopenharmony_ci    }
407094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->AttachBufferQueue(0, producer);
408094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc != NO_ERROR);
409094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
410094332d3Sopenharmony_ci        std::cout << "==========[test log] AttachBufferQueue success. " << std::endl;
411094332d3Sopenharmony_ci    } else {
412094332d3Sopenharmony_ci        std::cout << "==========[test log] AttachBufferQueue fail, rc = " << cameraBase->rc << std::endl;
413094332d3Sopenharmony_ci    }
414094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for release stream.
415094332d3Sopenharmony_ci    // Release the stream
416094332d3Sopenharmony_ci    cameraBase->streamIds = {DEFAULT_STREAM_ID};
417094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
418094332d3Sopenharmony_ci}
419094332d3Sopenharmony_ci
420094332d3Sopenharmony_ci/**
421094332d3Sopenharmony_ci  * @tc.name: AttachBufferQueue
422094332d3Sopenharmony_ci  * @tc.desc: AttachBufferQueue, producer is nullptr.
423094332d3Sopenharmony_ci  * @tc.level: Level2
424094332d3Sopenharmony_ci  * @tc.size: MediumTest
425094332d3Sopenharmony_ci  * @tc.type: Function
426094332d3Sopenharmony_ci  */
427094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0212)
428094332d3Sopenharmony_ci{
429094332d3Sopenharmony_ci    std::cout << "==========[test log] AttachBufferQueue, producer is nullptr." << std::endl;
430094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
431094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
432094332d3Sopenharmony_ci        std::cout << "==========[test log] GetStreamOperator success. " << std::endl;
433094332d3Sopenharmony_ci    } else {
434094332d3Sopenharmony_ci        std::cout << "==========[test log] GetStreamOperator fail, rc = " << cameraBase->rc << std::endl;
435094332d3Sopenharmony_ci    }
436094332d3Sopenharmony_ci    // Create data stream
437094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
438094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
439094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
440094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
441094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
442094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
443094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
444094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
445094332d3Sopenharmony_ci    cameraBase->streamInfos.push_back(cameraBase->streamInfo);
446094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(cameraBase->streamInfos);
447094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->CreateStreams's RetCode = ";
448094332d3Sopenharmony_ci    std::cout << cameraBase->rc << std::endl;
449094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
450094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
451094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success. " << std::endl;
452094332d3Sopenharmony_ci    } else {
453094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
454094332d3Sopenharmony_ci    }
455094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->AttachBufferQueue(cameraBase->streamInfo->streamId_, nullptr);
456094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc != NO_ERROR);
457094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
458094332d3Sopenharmony_ci        std::cout << "==========[test log] AttachBufferQueue success. " << std::endl;
459094332d3Sopenharmony_ci    } else {
460094332d3Sopenharmony_ci        std::cout << "==========[test log] AttachBufferQueue fail, rc = " << cameraBase->rc << std::endl;
461094332d3Sopenharmony_ci    }
462094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for release stream.
463094332d3Sopenharmony_ci    // release stream
464094332d3Sopenharmony_ci    cameraBase->streamIds = {DEFAULT_STREAM_ID};
465094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
466094332d3Sopenharmony_ci}
467094332d3Sopenharmony_ci
468094332d3Sopenharmony_ci/**
469094332d3Sopenharmony_ci  * @tc.name: DetachBufferQueue
470094332d3Sopenharmony_ci  * @tc.desc: DetachBufferQueue, normal input.
471094332d3Sopenharmony_ci  * @tc.level: Level1
472094332d3Sopenharmony_ci  * @tc.size: MediumTest
473094332d3Sopenharmony_ci  * @tc.type: Function
474094332d3Sopenharmony_ci  */
475094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0220)
476094332d3Sopenharmony_ci{
477094332d3Sopenharmony_ci    std::cout << "==========[test log] DetachBufferQueue, normal input." << std::endl;
478094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
479094332d3Sopenharmony_ci    // Create data stream
480094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
481094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
482094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
483094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
484094332d3Sopenharmony_ci    }
485094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
486094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
487094332d3Sopenharmony_ci        return;
488094332d3Sopenharmony_ci    };
489094332d3Sopenharmony_ci    producer->SetCallback(callback);
490094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
491094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
492094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
493094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
494094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
495094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
496094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
497094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
498094332d3Sopenharmony_ci    cameraBase->streamInfos.push_back(cameraBase->streamInfo);
499094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(cameraBase->streamInfos);
500094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->CreateStreams's RetCode = ";
501094332d3Sopenharmony_ci    std::cout << cameraBase->rc << std::endl;
502094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
503094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams success. " << std::endl;
504094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->AttachBufferQueue(cameraBase->streamInfo->streamId_, producer);
505094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->AttachBufferQueue's RetCode = ";
506094332d3Sopenharmony_ci    std::cout << cameraBase->rc << std::endl;
507094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
508094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for attach bufferQueue.
509094332d3Sopenharmony_ci    std::cout << "==========[test log] AttachBufferQueue success. " << std::endl;
510094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->DetachBufferQueue(cameraBase->streamInfo->streamId_);
511094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->DetachBufferQueue's RetCode = ";
512094332d3Sopenharmony_ci    std::cout << cameraBase->rc << std::endl;
513094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
514094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
515094332d3Sopenharmony_ci        std::cout << "==========[test log] DetachBufferQueue success. " << std::endl;
516094332d3Sopenharmony_ci    } else {
517094332d3Sopenharmony_ci        std::cout << "==========[test log] DetachBufferQueue fail, rc = " << cameraBase->rc << std::endl;
518094332d3Sopenharmony_ci    }
519094332d3Sopenharmony_ci    // release stream
520094332d3Sopenharmony_ci    cameraBase->streamIds = {DEFAULT_STREAM_ID};
521094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
522094332d3Sopenharmony_ci}
523094332d3Sopenharmony_ci
524094332d3Sopenharmony_ci/**
525094332d3Sopenharmony_ci  * @tc.name: DetachBufferQueue
526094332d3Sopenharmony_ci  * @tc.desc: DetachBufferQueue, streamID is not exist.
527094332d3Sopenharmony_ci  * @tc.level: Level2
528094332d3Sopenharmony_ci  * @tc.size: MediumTest
529094332d3Sopenharmony_ci  * @tc.type: Function
530094332d3Sopenharmony_ci  */
531094332d3Sopenharmony_ciTEST_F(UtestHdiFuncTest, camera_hdi_0221)
532094332d3Sopenharmony_ci{
533094332d3Sopenharmony_ci    std::cout << "==========[test log] DetachBufferQueue, streamID is not exist." << std::endl;
534094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
535094332d3Sopenharmony_ci    // Create data stream
536094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
537094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
538094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
539094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
540094332d3Sopenharmony_ci    }
541094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
542094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
543094332d3Sopenharmony_ci        return;
544094332d3Sopenharmony_ci    };
545094332d3Sopenharmony_ci    producer->SetCallback(callback);
546094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
547094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
548094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
549094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
550094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
551094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
552094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
553094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
554094332d3Sopenharmony_ci    cameraBase->streamInfos.push_back(cameraBase->streamInfo);
555094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(cameraBase->streamInfos);
556094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->CreateStreams's RetCode = ";
557094332d3Sopenharmony_ci    std::cout << cameraBase->rc << std::endl;
558094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
559094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams success. " << std::endl;
560094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->AttachBufferQueue(cameraBase->streamInfo->streamId_, producer);
561094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->AttachBufferQueue's RetCode = " << cameraBase->rc << std::endl;
562094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
563094332d3Sopenharmony_ci    std::cout << "==========[test log] AttachBufferQueue success. " << std::endl;
564094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for detach bufferQueue.
565094332d3Sopenharmony_ci
566094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->DetachBufferQueue(0);
567094332d3Sopenharmony_ci    std::cout << "==========[test log] streamOperator->DetachBufferQueue's RetCode = " << cameraBase->rc << std::endl;
568094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc != NO_ERROR);
569094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
570094332d3Sopenharmony_ci        std::cout << "==========[test log] DetachBufferQueue success. " << std::endl;
571094332d3Sopenharmony_ci    } else {
572094332d3Sopenharmony_ci        std::cout << "==========[test log] DetachBufferQueue fail, rc = " << cameraBase->rc << std::endl;
573094332d3Sopenharmony_ci    }
574094332d3Sopenharmony_ci    // release stream
575094332d3Sopenharmony_ci    cameraBase->streamIds = {DEFAULT_STREAM_ID};
576094332d3Sopenharmony_ci    cameraBase->StopStream(cameraBase->captureIds, cameraBase->streamIds);
577094332d3Sopenharmony_ci}
578