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 "hdi_common_v1_3.h"
17 #include "camera.h"
18 #include "video_key_info.h"
19
20 namespace OHOS::Camera {
21 HdiCommonV1_3::StreamResultCallback HdiCommonV1_3::streamResultCallback_ = 0;
22
Init()23 void HdiCommonV1_3::Init()
24 {
25 uint32_t mainVer;
26 uint32_t minVer;
27 int32_t ret;
28 if (serviceV1_3 == nullptr) {
29 serviceV1_3 = OHOS::HDI::Camera::V1_3::ICameraHost::Get("camera_service", false);
30 if (serviceV1_3 == nullptr) {
31 printf("Init ICameraHost get failed serviceV1_3 nullptr\n");
32 CAMERA_LOGE("Init ICameraHost get failed serviceV1_3 nullptr");
33 return;
34 }
35 CAMERA_LOGI("V1_3::ICameraHost get success");
36 ret = serviceV1_3->GetVersion(mainVer, minVer);
37 if (ret != 0) {
38 printf("Init GetVersion failed, ret = %d\n", ret);
39 CAMERA_LOGE("Init GetVersion failed, ret = %{public}d", ret);
40 return;
41 }
42 CAMERA_LOGI("V1_3::ICameraHost get version success, %{public}d, %{public}d", mainVer, minVer);
43 }
44
45 hostCallback = new TestCameraHostCallback();
46 ret = serviceV1_3->SetCallback(hostCallback);
47 if (ret != 0) {
48 printf("Init SetCallback failed, ret = %d\n", ret);
49 CAMERA_LOGE("Init SetCallback failed, ret = %{public}d", ret);
50 }
51 }
52
DefferredVideoTestInit()53 int32_t HdiCommonV1_3::DefferredVideoTestInit()
54 {
55 constexpr const char* serviceName = "camera_video_process_service";
56 constexpr const int userId = 100;
57 int ret = 0;
58
59 // get VideoProcessService
60 videoProcessService_ = OHOS::HDI::Camera::V1_3::IVideoProcessService::Get(serviceName, false);
61 if (videoProcessService_ == nullptr) {
62 CAMERA_LOGE("IVideoProcessService::Get Fail, videoProcessService_ is nullptr");
63 printf("IVideoProcessService::Get Fail, videoProcessService_ is nullptr\n");
64 return -1;
65 }
66 videoProcessCallback_ = new OHOS::Camera::HdiCommonV1_3::TestVideoProcessCallback();
67 if (videoProcessCallback_ == nullptr) {
68 CAMERA_LOGE("DefferredVideoTestInit videoProcessCallback_ get failed videoProcessCallback_ nullptr");
69 printf("DefferredVideoTestInit videoProcessCallback_ get failed videoProcessCallback_ nullptr\n");
70 return -1;
71 }
72 ret = videoProcessService_->CreateVideoProcessSession(userId, videoProcessCallback_, videoProcessSession_);
73 if (ret != 0) {
74 CAMERA_LOGE("CreateVideoProcessSession failed, ret = %{public}d", ret);
75 printf("CreateVideoProcessSession failed, ret = %d\n", ret);
76 return -1;
77 }
78 if (videoProcessSession_ == nullptr) {
79 CAMERA_LOGE("CreateVideoProcessSession Fail, videoProcessSession_ is nullptr: %{public}d", ret);
80 printf("CreateVideoProcessSession Fail, videoProcessSession_ is nullptr: %d\r\n", ret);
81 return -1;
82 }
83 std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(itemCapacity, dataCapacity);
84 int32_t cameraUserId = 100;
85 meta->addEntry(OHOS_CAMERA_USER_ID, &cameraUserId, dataCount);
86 std::vector<uint8_t> metaVec;
87 MetadataUtils::ConvertMetadataToVec(meta, metaVec);
88 cameraDeviceV1_3->UpdateSettings(metaVec);
89 return ret;
90 }
91
Open(int cameraId)92 void HdiCommonV1_3::Open(int cameraId)
93 {
94 if (cameraDeviceV1_3 == nullptr) {
95 if (serviceV1_3 == nullptr) {
96 printf("Open failed serviceV1_3 nullptr\n");
97 CAMERA_LOGE("Open failed serviceV1_3 nullptr");
98 return;
99 }
100 serviceV1_3->GetCameraIds(cameraIds);
101 if (cameraIds.size() == 0) {
102 printf("Open GetCameraIds failed\n");
103 CAMERA_LOGE("Open GetCameraIds failed");
104 return;
105 }
106 GetCameraMetadata(cameraId);
107 deviceCallback = new OHOS::Camera::HdiCommon::DemoCameraDeviceCallback();
108 if (DEVICE_1 == cameraId) {
109 rc = serviceV1_3->OpenCamera_V1_3(cameraIds[1], deviceCallback, cameraDeviceV1_3);
110 } else {
111 rc = serviceV1_3->OpenCamera_V1_3(cameraIds[0], deviceCallback, cameraDeviceV1_3);
112 }
113 if (rc != HDI::Camera::V1_0::NO_ERROR || cameraDeviceV1_3 == nullptr) {
114 printf("Open OpenCamera_V1_3 failed, rc = %d\n", rc);
115 CAMERA_LOGE("Open OpenCamera_V1_3 failed, rc = %{public}d", rc);
116 } else {
117 CAMERA_LOGI("Open success");
118 }
119 }
120 }
121
OpenSecureCamera(int cameraId)122 void HdiCommonV1_3::OpenSecureCamera(int cameraId)
123 {
124 if (cameraDeviceV1_3 == nullptr) {
125 if (serviceV1_3 == nullptr) {
126 printf("OpenSecureCamera failed serviceV1_3 nullptr\n");
127 CAMERA_LOGE("OpenSecureCamera failed serviceV1_3 nullptr");
128 return;
129 }
130 serviceV1_3->GetCameraIds(cameraIds);
131 if (cameraIds.size() == 0) {
132 printf("OpenSecureCamera GetCameraIds failed\n");
133 CAMERA_LOGE("OpenSecureCamera GetCameraIds failed");
134 return;
135 }
136 GetCameraMetadata(cameraId);
137 deviceCallback = new OHOS::Camera::HdiCommon::DemoCameraDeviceCallback();
138 if (DEVICE_1 == cameraId) {
139 rc = serviceV1_3->OpenSecureCamera(cameraIds[1], deviceCallback, cameraDeviceV1_3);
140 } else {
141 rc = serviceV1_3->OpenSecureCamera(cameraIds[0], deviceCallback, cameraDeviceV1_3);
142 }
143 if (rc != HDI::Camera::V1_0::NO_ERROR || cameraDeviceV1_3 == nullptr) {
144 printf("Open OpenCamera_V1_3 failed, rc = %d\n", rc);
145 CAMERA_LOGE("Open OpenCamera_V1_3 failed, rc = %{public}d", rc);
146 } else {
147 CAMERA_LOGI("OpenSecureCamera success");
148 }
149 }
150 }
151
GetCameraMetadata(int cameraId)152 void HdiCommonV1_3::GetCameraMetadata(int cameraId)
153 {
154 if (DEVICE_1 == cameraId) {
155 rc = serviceV1_3->GetCameraAbility(cameraIds[1], abilityVec);
156 } else {
157 rc = serviceV1_3->GetCameraAbility(cameraIds[0], abilityVec);
158 }
159 if (rc != HDI::Camera::V1_0::NO_ERROR) {
160 printf("GetCameraAbility failed, rc = %d\n", rc);
161 CAMERA_LOGE("GetCameraAbility failed, rc = %{public}d", rc);
162 return;
163 }
164 MetadataUtils::ConvertVecToMetadata(abilityVec, ability);
165 }
166
Close()167 void HdiCommonV1_3::Close()
168 {
169 if (cameraDeviceV1_3 != nullptr) {
170 cameraDeviceV1_3->Close();
171 cameraDeviceV1_3 = nullptr;
172 }
173 }
174
DefaultMeta(std::shared_ptr<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1> & infos)175 void HdiCommonV1_3::DefaultMeta(
176 std::shared_ptr<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1> &infos)
177 {
178 infos->v1_0.streamId_ = streamIdMeta;
179 infos->v1_0.width_ = metaWidth;
180 infos->v1_0.height_ = metaHeight;
181 infos->v1_0.format_ = snapshotFormat;
182 infos->v1_0.dataspace_ = UT_DATA_SIZE;
183 infos->v1_0.intent_ = StreamIntent::VIDEO;
184 infos->v1_0.encodeType_ = OHOS::HDI::Camera::V1_0::ENCODE_TYPE_H265;
185 infos->v1_0.tunneledMode_ = UT_TUNNEL_MODE;
186 }
187
DefaultInfosMeta(std::shared_ptr<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1> & infos)188 void HdiCommonV1_3::DefaultInfosMeta(
189 std::shared_ptr<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1> &infos)
190 {
191 DefaultMeta(infos);
192 std::shared_ptr<StreamConsumer> consumer_meta = std::make_shared<StreamConsumer>();
193 infos->v1_0.bufferQueue_ = consumer_meta->CreateProducerSeq([this](void* addr, uint32_t size) {
194 DumpImageFile(streamIdMeta, "yuv", addr, size);
195 });
196 infos->v1_0.bufferQueue_->producer_->SetQueueSize(UT_DATA_SIZE);
197 consumerMap_[StreamIntent::PREVIEW] = consumer_meta;
198 }
199
DefaultInfosProfessionalCapture(std::shared_ptr<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1> & infos)200 void HdiCommonV1_3::DefaultInfosProfessionalCapture(
201 std::shared_ptr<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1> &infos)
202 {
203 DefaultCapture(infos);
204 std::shared_ptr<StreamConsumer> consumer_capture = std::make_shared<StreamConsumer>();
205 infos->v1_0.bufferQueue_ = consumer_capture->CreateProducerSeq([this](void* addr, uint32_t size) {
206 DumpImageFile(streamIdCapture, "yuv", addr, size);
207 });
208 infos->v1_0.bufferQueue_->producer_->SetQueueSize(UT_DATA_SIZE);
209 consumerMap_[StreamIntent::STILL_CAPTURE] = consumer_capture;
210 }
211
StartProfessionalStream(std::vector<StreamIntent> intents,uint8_t professionalMode)212 void HdiCommonV1_3::StartProfessionalStream(std::vector<StreamIntent> intents, uint8_t professionalMode)
213 {
214 streamOperatorCallbackV1_3 = new OHOS::Camera::HdiCommonV1_3::TestStreamOperatorCallbackV1_3();
215 uint32_t mainVersion = 1;
216 uint32_t minVersion = 0;
217 rc = cameraDeviceV1_3->GetStreamOperator_V1_3(streamOperatorCallbackV1_3, streamOperator_V1_3);
218 if (rc == HDI::Camera::V1_0::NO_ERROR) {
219 rc = streamOperator_V1_3->GetVersion(mainVersion, minVersion);
220 if (rc != HDI::Camera::V1_0::NO_ERROR) {
221 printf("streamOperator_V1_3 get version failed, rc = %d\n", rc);
222 CAMERA_LOGE("streamOperator_V1_3 get version failed, rc = %{public}d", rc);
223 }
224 CAMERA_LOGI("GetStreamOperator success");
225 } else {
226 printf("GetStreamOperator fail, rc = %d\n", rc);
227 CAMERA_LOGE("GetStreamOperator fail, rc = %{public}d", rc);
228 }
229 streamInfoPre = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
230 streamInfoVideo = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
231 streamInfoCapture = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
232 streamInfoAnalyze = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
233 for (auto& streamType : intents) {
234 if (streamType == StreamIntent::PREVIEW) {
235 DefaultInfosPreview(streamInfoPre);
236 streamInfos.push_back(*streamInfoPre);
237 } else if (streamType == StreamIntent::VIDEO) {
238 DefaultInfosVideo(streamInfoVideo);
239 streamInfos.push_back(*streamInfoVideo);
240 } else if (streamType == StreamIntent::ANALYZE) {
241 DefaultInfosAnalyze(streamInfoAnalyze);
242 streamInfos.push_back(*streamInfoAnalyze);
243 } else {
244 DefaultInfosProfessionalCapture(streamInfoCapture);
245 streamInfos.push_back(*streamInfoCapture);
246 }
247 }
248 rc = streamOperator_V1_3->CreateStreams_V1_1(streamInfos);
249 if (rc != HDI::Camera::V1_0::NO_ERROR) {
250 printf("check StartProfessionalStream: CreateStreams_V1_1 fail, rc = %d\n", rc);
251 CAMERA_LOGE("check StartProfessionalStream: CreateStreams_V1_1 fail, rc = %{public}d", rc);
252 }
253 rc = streamOperator_V1_3->CommitStreams_V1_1(
254 static_cast<OHOS::HDI::Camera::V1_1::OperationMode_V1_1>(professionalMode), abilityVec);
255 if (rc != HDI::Camera::V1_0::NO_ERROR) {
256 printf("check StartProfessionalStream: CommitStreams_V1_1 fail, rc = %d\n", rc);
257 CAMERA_LOGE("check StartProfessionalStream: CommitStreams_V1_1 fail, rc = %{public}d", rc);
258 }
259 sleep(1);
260 std::vector<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>().swap(streamInfos);
261 }
262
StartStream(std::vector<StreamIntent> intents,OHOS::HDI::Camera::V1_3::OperationMode mode)263 void HdiCommonV1_3::StartStream(std::vector<StreamIntent> intents, OHOS::HDI::Camera::V1_3::OperationMode mode)
264 {
265 streamOperatorCallbackV1_3 = new OHOS::Camera::HdiCommonV1_3::TestStreamOperatorCallbackV1_3();
266 uint32_t mainVersion = 1;
267 uint32_t minVersion = 0;
268 rc = cameraDeviceV1_3->GetStreamOperator_V1_3(streamOperatorCallbackV1_3, streamOperator_V1_3);
269 if (rc == HDI::Camera::V1_0::NO_ERROR) {
270 rc = streamOperator_V1_3->GetVersion(mainVersion, minVersion);
271 if (rc != HDI::Camera::V1_0::NO_ERROR) {
272 printf("streamOperator_V1_3 get version failed, rc = %d\n", rc);
273 CAMERA_LOGE("streamOperator_V1_3 get version failed, rc = %{public}d", rc);
274 }
275 CAMERA_LOGI("GetStreamOperator success");
276 } else {
277 printf("GetStreamOperator fail, rc = %d\n", rc);
278 CAMERA_LOGE("GetStreamOperator fail, rc = %{public}d", rc);
279 }
280 streamInfoPre = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
281 streamInfoVideo = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
282 streamInfoCapture = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
283 streamInfoAnalyze = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
284 for (auto& intent : intents) {
285 if (intent == StreamIntent::PREVIEW) {
286 DefaultInfosPreview(streamInfoPre);
287 streamInfos.push_back(*streamInfoPre);
288 } else if (intent == StreamIntent::VIDEO) {
289 DefaultInfosVideo(streamInfoVideo);
290 streamInfos.push_back(*streamInfoVideo);
291 } else if (intent == StreamIntent::ANALYZE) {
292 DefaultInfosAnalyze(streamInfoAnalyze);
293 streamInfos.push_back(*streamInfoAnalyze);
294 } else {
295 DefaultInfosCapture(streamInfoCapture);
296 streamInfos.push_back(*streamInfoCapture);
297 }
298 }
299 rc = streamOperator_V1_3->CreateStreams_V1_1(streamInfos);
300 if (rc != HDI::Camera::V1_0::NO_ERROR) {
301 printf("check StartStream: CreateStreams_V1_1 fail, rc = %d\n", rc);
302 CAMERA_LOGE("check StartStream: CreateStreams_V1_1 fail, rc = %{public}d", rc);
303 }
304 rc = streamOperator_V1_3->CommitStreams_V1_1(
305 static_cast<OHOS::HDI::Camera::V1_1::OperationMode_V1_1>(mode), abilityVec);
306 if (rc != HDI::Camera::V1_0::NO_ERROR) {
307 printf("check StartStream: CommitStreams_V1_1 fail, rc = %d\n", rc);
308 CAMERA_LOGE("check StartStream: CommitStreams_V1_1 fail, rc = %{public}d", rc);
309 }
310 sleep(1);
311 std::vector<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>().swap(streamInfos);
312 }
313
StartCapture(int streamId,int captureId,bool shutterCallback,bool isStreaming)314 void HdiCommonV1_3::StartCapture(int streamId, int captureId, bool shutterCallback, bool isStreaming)
315 {
316 captureInfo = std::make_shared<CaptureInfo>();
317 captureInfo->streamIds_ = {streamId};
318 captureInfo->captureSetting_ = abilityVec;
319 captureInfo->enableShutterCallback_ = shutterCallback;
320 if (streamOperator_V1_3 == nullptr) {
321 printf("StartCapture failed streamOperator_V1_3 nullptr\n");
322 CAMERA_LOGE("StartCapture failed streamOperator_V1_3 nullptr");
323 return;
324 }
325 rc = (OHOS::HDI::Camera::V1_0::CamRetCode)streamOperator_V1_3->Capture(captureId, *captureInfo, isStreaming);
326 if (rc != HDI::Camera::V1_0::NO_ERROR) {
327 printf("check Capture: Capture fail, rc = %d\n", rc);
328 CAMERA_LOGE("check Capture: Capture fail, rc = %{public}d", rc);
329 }
330 sleep(UT_SLEEP_TIME);
331 }
332
StopStream(std::vector<int> & captureIds,std::vector<int> & streamIds)333 void HdiCommonV1_3::StopStream(std::vector<int>& captureIds, std::vector<int>& streamIds)
334 {
335 if (captureIds.size() > 0) {
336 for (auto &captureId : captureIds) {
337 if (streamOperator_V1_3 == nullptr) {
338 printf("StopStream failed streamOperator_V1_3 nullptr\n");
339 CAMERA_LOGE("StopStream failed streamOperator_V1_3 nullptr");
340 return;
341 }
342 rc = streamOperator_V1_3->CancelCapture(captureId);
343 if (rc != HDI::Camera::V1_0::NO_ERROR) {
344 printf("CancelCapture fail, rc = %d, captureId = %d\n", rc, captureId);
345 CAMERA_LOGE("CancelCapture fail, rc = %{public}d, captureId = %{public}d", rc, captureId);
346 }
347 }
348 }
349 if (streamIds.size() > 0) {
350 if (streamOperator_V1_3 == nullptr) {
351 printf("StopStream failed streamOperator_V1_3 nullptr\n");
352 CAMERA_LOGE("StopStream failed streamOperator_V1_3 nullptr");
353 return;
354 }
355 rc = streamOperator_V1_3->ReleaseStreams(streamIds);
356 if (rc != HDI::Camera::V1_0::NO_ERROR) {
357 printf("check Capture: ReleaseStreams fail, rc = %d\n", rc);
358 CAMERA_LOGE("check Capture: ReleaseStreams fail, rc = %{public}d", rc);
359 }
360 }
361 }
362
OnCaptureStarted(int32_t captureId,const std::vector<int32_t> & streamId)363 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnCaptureStarted(
364 int32_t captureId, const std::vector<int32_t> &streamId)
365 {
366 for (auto it : streamId) {
367 CAMERA_LOGE("captureId: %{public}d, streamId: %{public}d", captureId, it);
368 }
369 return HDI::Camera::V1_0::NO_ERROR;
370 }
371
OnCaptureEnded(int32_t captureId,const std::vector<CaptureEndedInfo> & infos)372 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnCaptureEnded(int32_t captureId,
373 const std::vector<CaptureEndedInfo> &infos)
374 {
375 for (auto it : infos) {
376 CAMERA_LOGE("captureId: %{public}d, streamId: %{public}d, count: %{public}d", captureId, it.streamId_,
377 it.frameCount_);
378 }
379 return HDI::Camera::V1_0::NO_ERROR;
380 }
381
OnCaptureEndedExt(int32_t captureId,const std::vector<HDI::Camera::V1_3::CaptureEndedInfoExt> & infos)382 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnCaptureEndedExt(int32_t captureId,
383 const std::vector<HDI::Camera::V1_3::CaptureEndedInfoExt> &infos)
384 {
385 for (auto it : infos) {
386 CAMERA_LOGI("OnCaptureEndedExt captureId: %{public}d, streamId: %{public}d", captureId, it.streamId_);
387 }
388 return HDI::Camera::V1_0::NO_ERROR;
389 }
390
OnCaptureError(int32_t captureId,const std::vector<CaptureErrorInfo> & infos)391 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnCaptureError(int32_t captureId,
392 const std::vector<CaptureErrorInfo> &infos)
393 {
394 for (auto it : infos) {
395 CAMERA_LOGE("captureId: %{public}d, streamId: %{public}d, error: %{public}d", captureId, it.streamId_,
396 it.error_);
397 }
398 return HDI::Camera::V1_0::NO_ERROR;
399 }
400
OnFrameShutter(int32_t captureId,const std::vector<int32_t> & streamIds,uint64_t timestamp)401 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnFrameShutter(int32_t captureId,
402 const std::vector<int32_t> &streamIds, uint64_t timestamp)
403 {
404 (void)timestamp;
405 for (auto it : streamIds) {
406 CAMERA_LOGE("captureId: %{public}d, streamId: %{public}d", captureId, it);
407 }
408 return HDI::Camera::V1_0::NO_ERROR;
409 }
410
OnCaptureStarted_V1_2(int32_t captureId,const std::vector<HDI::Camera::V1_2::CaptureStartedInfo> & infos)411 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnCaptureStarted_V1_2(int32_t captureId,
412 const std::vector<HDI::Camera::V1_2::CaptureStartedInfo> &infos)
413 {
414 for (auto it : infos) {
415 CAMERA_LOGI("captureId: %{public}d, streamId: %{public}d", captureId, it.streamId_);
416 }
417 return HDI::Camera::V1_0::NO_ERROR;
418 }
419
OnCaptureReady(int32_t captureId,const std::vector<int32_t> & streamIds,uint64_t timestamp)420 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnCaptureReady(int32_t captureId,
421 const std::vector<int32_t> &streamIds, uint64_t timestamp)
422 {
423 (void)timestamp;
424 for (auto it : streamIds) {
425 CAMERA_LOGI("OnCaptureReady captureId: %{public}d, streamId: %{public}d", captureId, it);
426 }
427 return HDI::Camera::V1_0::NO_ERROR;
428 }
429
OnFrameShutterEnd(int32_t captureId,const std::vector<int32_t> & streamIds,uint64_t timestamp)430 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnFrameShutterEnd(int32_t captureId,
431 const std::vector<int32_t> &streamIds, uint64_t timestamp)
432 {
433 (void)timestamp;
434 for (auto it : streamIds) {
435 CAMERA_LOGI("OnFrameShutterEnd captureId: %{public}d, streamId: %{public}d", captureId, it);
436 }
437 return HDI::Camera::V1_0::NO_ERROR;
438 }
439
OnResult(int32_t streamId,const std::vector<uint8_t> & result)440 int32_t HdiCommonV1_3::TestStreamOperatorCallbackV1_3::OnResult(int32_t streamId, const std::vector<uint8_t> &result)
441 {
442 MetadataUtils::ConvertVecToMetadata(result, streamResultMeta);
443 if (HdiCommonV1_3::streamResultCallback_) {
444 HdiCommonV1_3::streamResultCallback_(streamId, streamResultMeta);
445 }
446 return HDI::Camera::V1_0::NO_ERROR;
447 }
448
OnStatusChanged(OHOS::HDI::Camera::V1_2::SessionStatus status)449 int32_t HdiCommonV1_3::TestVideoProcessCallback::OnStatusChanged(OHOS::HDI::Camera::V1_2::SessionStatus status)
450 {
451 CAMERA_LOGE("OnStatusChanged status: %{public}d", static_cast<int>(status));
452 return HDI::Camera::V1_0::NO_ERROR;
453 }
454
OnProcessDone(const std::string & videoId)455 int32_t HdiCommonV1_3::TestVideoProcessCallback::OnProcessDone(const std::string& videoId)
456 {
457 CAMERA_LOGE("OnProcessDone videoId: %{public}s", videoId.c_str());
458 return HDI::Camera::V1_0::NO_ERROR;
459 }
460
OnError(const std::string & videoId,OHOS::HDI::Camera::V1_2::ErrorCode errorCode)461 int32_t HdiCommonV1_3::TestVideoProcessCallback::OnError(
462 const std::string& videoId, OHOS::HDI::Camera::V1_2::ErrorCode errorCode)
463 {
464 CAMERA_LOGE("OnError videoId: %{public}s errorCode: %{public}d", videoId.c_str(), static_cast<int>(errorCode));
465 return HDI::Camera::V1_0::NO_ERROR;
466 }
467
468 } // OHOS::Camera