1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except 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_service_type_converter.h"
17 
18 namespace OHOS::Camera {
19 
ConvertStreamInfoHdiToVdi(const StreamInfo & src,VdiStreamInfo & dst)20 void ConvertStreamInfoHdiToVdi(const StreamInfo &src, VdiStreamInfo &dst)
21 {
22     dst.streamId_ = src.streamId_;
23     dst.width_ = src.width_;
24     dst.height_ = src.height_;
25     dst.format_ = src.format_;
26     dst.dataspace_ = src.dataspace_;
27     dst.intent_ = static_cast<VdiStreamIntent>(src.intent_);
28     dst.tunneledMode_ = src.tunneledMode_;
29     dst.bufferQueue_ = src.bufferQueue_;
30     dst.minFrameDuration_ = src.minFrameDuration_;
31     dst.encodeType_ = static_cast<VdiEncodeType>(src.encodeType_);
32 }
33 
ConvertStreamAttributeHdiToVdi(const StreamAttribute & src,VdiStreamAttribute & dst)34 void ConvertStreamAttributeHdiToVdi(const StreamAttribute &src, VdiStreamAttribute &dst)
35 {
36     dst.streamId_ = src.streamId_;
37     dst.width_ = src.width_;
38     dst.height_ = src.height_;
39     dst.overrideFormat_ = src.overrideFormat_;
40     dst.overrideDataspace_ = src.overrideDataspace_;
41     dst.producerUsage_ = src.producerUsage_;
42     dst.producerBufferCount_ = src.producerBufferCount_;
43     dst.maxBatchCaptureCount_ = src.maxBatchCaptureCount_;
44     dst.maxCaptureCount_ = src.maxCaptureCount_;
45 }
46 
ConvertCaptureInfoHdiToVdi(const CaptureInfo & src,VdiCaptureInfo & dst)47 void ConvertCaptureInfoHdiToVdi(const CaptureInfo &src, VdiCaptureInfo &dst)
48 {
49     std::vector<int32_t>().swap(dst.streamIds_);
50     for (auto streamId : src.streamIds_) {
51         dst.streamIds_.push_back(streamId);
52     }
53     std::vector<uint8_t>().swap(dst.captureSetting_);
54     for (auto capSetting : src.captureSetting_) {
55         dst.captureSetting_.push_back(capSetting);
56     }
57     dst.enableShutterCallback_ = src.enableShutterCallback_;
58 }
59 
ConvertCaptureEndedInfoHdiToVdi(const CaptureEndedInfo & src,VdiCaptureEndedInfo & dst)60 void ConvertCaptureEndedInfoHdiToVdi(const CaptureEndedInfo &src, VdiCaptureEndedInfo &dst)
61 {
62     dst.streamId_ = src.streamId_;
63     dst.frameCount_ = src.frameCount_;
64 }
65 
ConvertCaptureErrorInfoHdiToVdi(const CaptureErrorInfo & src,VdiCaptureErrorInfo & dst)66 void ConvertCaptureErrorInfoHdiToVdi(const CaptureErrorInfo &src, VdiCaptureErrorInfo &dst)
67 {
68     dst.streamId_ = src.streamId_;
69     dst.error_ = static_cast<VdiStreamError>(src.error_);
70 }
71 
ConvertStreamInfoVdiToHdi(const VdiStreamInfo & src,StreamInfo & dst)72 void ConvertStreamInfoVdiToHdi(const VdiStreamInfo &src, StreamInfo &dst)
73 {
74     dst.streamId_ = src.streamId_;
75     dst.width_ = src.width_;
76     dst.height_ = src.height_;
77     dst.format_ = src.format_;
78     dst.dataspace_ = src.dataspace_;
79     dst.intent_ = static_cast<StreamIntent>(src.intent_);
80     dst.tunneledMode_ = src.tunneledMode_;
81     dst.bufferQueue_ = src.bufferQueue_;
82     dst.minFrameDuration_ = src.minFrameDuration_;
83     dst.encodeType_ = static_cast<EncodeType>(src.encodeType_);
84 }
85 
ConvertStreamAttributeVdiToHdi(const VdiStreamAttribute & src,StreamAttribute & dst)86 void ConvertStreamAttributeVdiToHdi(const VdiStreamAttribute &src, StreamAttribute &dst)
87 {
88     dst.streamId_ = src.streamId_;
89     dst.width_ = src.width_;
90     dst.height_ = src.height_;
91     dst.overrideFormat_ = src.overrideFormat_;
92     dst.overrideDataspace_ = src.overrideDataspace_;
93     dst.producerUsage_ = src.producerUsage_;
94     dst.producerBufferCount_ = src.producerBufferCount_;
95     dst.maxBatchCaptureCount_ = src.maxBatchCaptureCount_;
96     dst.maxCaptureCount_ = src.maxCaptureCount_;
97 }
98 
ConvertCaptureInfoVdiToHdi(const VdiCaptureInfo & src,CaptureInfo & dst)99 void ConvertCaptureInfoVdiToHdi(const VdiCaptureInfo &src, CaptureInfo &dst)
100 {
101     std::vector<int32_t>().swap(dst.streamIds_);
102     for (auto streamId : src.streamIds_) {
103         dst.streamIds_.push_back(streamId);
104     }
105     std::vector<uint8_t>().swap(dst.captureSetting_);
106     for (auto capSetting : src.captureSetting_) {
107         dst.captureSetting_.push_back(capSetting);
108     }
109     dst.enableShutterCallback_ = src.enableShutterCallback_;
110 }
111 
ConvertCaptureEndedInfoVdiToHdi(const VdiCaptureEndedInfo & src,CaptureEndedInfo & dst)112 void ConvertCaptureEndedInfoVdiToHdi(const VdiCaptureEndedInfo &src, CaptureEndedInfo &dst)
113 {
114     dst.streamId_ = src.streamId_;
115     dst.frameCount_ = src.frameCount_;
116 }
117 
ConvertCaptureErrorInfoVdiToHdi(const VdiCaptureErrorInfo & src,CaptureErrorInfo & dst)118 void ConvertCaptureErrorInfoVdiToHdi(const VdiCaptureErrorInfo &src, CaptureErrorInfo &dst)
119 {
120     dst.streamId_ = src.streamId_;
121     dst.error_ = static_cast<StreamError>(src.error_);
122 }
123 
124 } // end namespace OHOS::Camera
125