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 "image_system_properties.h"
17
18 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
19 #include <iostream>
20 #include <fstream>
21 #include <sstream>
22 #include <string>
23
24 #include <parameter.h>
25 #include <parameters.h>
26 #endif
27
28 extern "C" {
29 extern char* __progname;
30 }
31 namespace OHOS {
32 namespace Media {
33 #if !defined(_WIN32) && !defined(_APPLE) && !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
getCurrentProcessName()34 std::string getCurrentProcessName()
35 {
36 std::string processName;
37
38 std::ifstream cmdlineFile("/proc/self/cmdline");
39 if (cmdlineFile.is_open()) {
40 std::ostringstream oss;
41 oss << cmdlineFile.rdbuf();
42 cmdlineFile.close();
43
44 // Extract process name from the command line
45 std::string cmdline = oss.str();
46 size_t pos = cmdline.find_first_of('\0');
47 if (pos != std::string::npos) {
48 processName = cmdline.substr(0, pos);
49 }
50 }
51 return processName;
52 }
53 #endif
54
GetSkiaEnabled()55 bool ImageSystemProperties::GetSkiaEnabled()
56 {
57 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
58 return system::GetBoolParameter("persist.multimedia.image.skdecode.enabled", true);
59 #else
60 return true;
61 #endif
62 }
63
64 // surfacebuffer tmp switch, only used for test
GetSurfaceBufferEnabled()65 bool ImageSystemProperties::GetSurfaceBufferEnabled()
66 {
67 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
68 return system::GetBoolParameter("persist.multimedia.image.surfacebuffer.enabled", false);
69 #else
70 return false;
71 #endif
72 }
73
GetDmaEnabled()74 bool ImageSystemProperties::GetDmaEnabled()
75 {
76 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
77 return system::GetBoolParameter("persist.multimedia.image.dma.enabled", false);
78 #else
79 return false;
80 #endif
81 }
82
GetDecodeDmaEnabled()83 bool ImageSystemProperties::GetDecodeDmaEnabled()
84 {
85 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
86 return system::GetBoolParameter("persist.multimedia.image.decodeDma.enabled", false);
87 #else
88 return false;
89 #endif
90 }
91
GetAstcEnabled()92 bool ImageSystemProperties::GetAstcEnabled()
93 {
94 #if !defined(IOS_PLATFORM) && !defined(ANDROID_PLATFORM)
95 return system::GetBoolParameter("persist.multimedia.image.AstcZeroCopy.enabled", true);
96 #else
97 return false;
98 #endif
99 }
100
GetAntiAliasingEnabled()101 bool ImageSystemProperties::GetAntiAliasingEnabled()
102 {
103 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
104 return system::GetBoolParameter("persist.multimedia.image.AntiAliasing.enabled", true);
105 #else
106 return false;
107 #endif
108 }
109
GetDumpImageEnabled()110 bool ImageSystemProperties::GetDumpImageEnabled()
111 {
112 #if !defined(IOS_PLATFORM) && !defined(ANDROID_PLATFORM)
113 return system::GetBoolParameter("persist.multimedia.image.dumpimage.enabled", false);
114 #else
115 return false;
116 #endif
117 }
118
GetDumpPictureEnabled()119 bool ImageSystemProperties::GetDumpPictureEnabled()
120 {
121 #if !defined(CROSS_PLATFORM)
122 return system::GetBoolParameter("persist.multimedia.image.dumppicture.enabled", false);
123 #else
124 return false;
125 #endif
126 }
127
GetHardWareDecodeEnabled()128 bool ImageSystemProperties::GetHardWareDecodeEnabled()
129 {
130 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
131 return system::GetBoolParameter("persist.multimedia.image.hardwaredecode.enabled", false);
132 #else
133 return false;
134 #endif
135 }
136
GetHardWareEncodeEnabled()137 bool ImageSystemProperties::GetHardWareEncodeEnabled()
138 {
139 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
140 return system::GetBoolParameter("persist.multimedia.image.hardwareencode.enabled", true);
141 #else
142 return false;
143 #endif
144 }
145
GetHeifHardwareDecodeEnabled()146 bool ImageSystemProperties::GetHeifHardwareDecodeEnabled()
147 {
148 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
149 return system::GetBoolParameter("persist.multimedia.image.heifhardwaredecode.enabled", true);
150 #else
151 return false;
152 #endif
153 }
154
GetAstcHardWareEncodeEnabled()155 bool ImageSystemProperties::GetAstcHardWareEncodeEnabled()
156 {
157 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
158 return system::GetBoolParameter("persist.multimedia.image.AstcHardWareEncode.enabled", false);
159 #else
160 return false;
161 #endif
162 }
163
GetSutEncodeEnabled()164 bool ImageSystemProperties::GetSutEncodeEnabled()
165 {
166 #if !defined(IOS_PLATFORM) && !defined(ANDROID_PLATFORM)
167 return system::GetBoolParameter("persist.multimedia.image.SutEncode.enabled", true);
168 #else
169 return false;
170 #endif
171 }
172
GetMediaLibraryAstcEnabled()173 bool ImageSystemProperties::GetMediaLibraryAstcEnabled()
174 {
175 #if !defined(IOS_PLATFORM) &&!defined(ANDROID_PLATFORM)
176 return system::GetBoolParameter("persist.multimedia.image.GenAstc.enabled", true);
177 #else
178 return false;
179 #endif
180 }
181
GetSLRParallelEnabled()182 bool ImageSystemProperties::GetSLRParallelEnabled()
183 {
184 #if !defined(IOS_PLATFORM) && !defined(ANDROID_PLATFORM)
185 return system::GetBoolParameter("persist.multimedia.image.Parallel.endabled", true);
186 #else
187 return true;
188 #endif
189 }
190
GetGenThumbWithGpu()191 bool ImageSystemProperties::GetGenThumbWithGpu()
192 {
193 #if !defined(IOS_PLATFORM) && !defined(ANDROID_PLATFORM)
194 static bool ret = system::GetBoolParameter("persist.multimedia.image.GenThumbWithGpu.endabled", false);
195 return ret;
196 #else
197 return false;
198 #endif
199 }
200
GetSLRLaplacianEnabled()201 bool ImageSystemProperties::GetSLRLaplacianEnabled()
202 {
203 #if !defined(IOS_PLATFORM) && !defined(ANDROID_PLATFORM)
204 static bool ret = system::GetBoolParameter("persist.multimedia.image.PostProcLaplacian.endabled", false);
205 return ret;
206 #else
207 return false;
208 #endif
209 }
210 } // namespace Media
211 } // namespace OHOS
212